mybati3.2.7 配Mysql哪个武装突袭3版本不匹配

相关文章推荐
1.新建一个Java Project,将所需要的jar包从网上下载下来,然后添加到项目依赖中,如下:
说明一下:
mybatis : 就不用说了,我们用的就是他
mysql-connecto...
参考(1)使用IDEA创建javaweb项目
(2)MyBatis学习笔记(一)入门(重点)
(3)IntelliJ IDEA手动配置连接MySQL数据库
(4)IntelliJ IDEA单元测...
Mybatis简单使用示例
经过前两篇文章《Mybatis入门》和《Mybatis配置》的介绍,我们对Mybatis有了一定的了解,下面就接合一个实例学习案例,来巩固一下我们前面学习的知识。
环境搭建...
上学的时候,一个老师讲了个故事,这个故事的大意是,我们有很多种方式去削苹果,第一种方式,使用指甲刀,第二种方式,使用机床,第三种方式,使用手摇的那种削平果小工具。我们当然都能够完成这个简单的需求,但是...
Mybatis入门概述及第一个Mybatis实例实现增删改查
一、Mybatis介绍
  MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBa...
他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)&>&spring3.2.5+springmvc3.2.5+mybatis3.2.2+junit4.4+mysql
spring3.2.5+springmvc3.2.5+mybatis3.2.2+junit4.4+mysql
上传大小:22.19MB
下载搭建即可用,本人没积分了,把自己最新搭建的框架上传共享,搭建过程中遇到什么问题,可以找我。
综合评分:0(0位用户评分)
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, _username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click",'.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有0条
上传者:huwen_hua
上传时间:积分/C币:3
上传者:zhouhongyan123
上传时间:积分/C币:3
上传者:apologythenthen
上传时间:积分/C币:5
上传时间:积分/C币:3
上传时间:积分/C币:3
上传者:qqparadise
上传时间:积分/C币:3
上传者:markeliu
上传时间:积分/C币:3
上传者:qmln
上传时间:积分/C币:5
上传时间:积分/C币:3
上传者:chongzi321
上传时间:积分/C币:3
上传者:jin
上传时间:积分/C币:3
上传者:kid2000
上传时间:积分/C币:3
上传者:weichengzhen
上传时间:积分/C币:3
上传时间:积分/C币:3
上传者:mac_zy
上传时间:积分/C币:3
上传时间:积分/C币:3
上传者:hing2008
上传时间:积分/C币:3
上传者:hing2008
上传时间:积分/C币:3
上传时间:积分/C币:3
上传者:scudehua
上传时间:积分/C币:3
审核通过送C币
iText7实战工程
Spring、SpringMVC、Spring-Security等类库jar包及源码合集
创建者:chenchunlin526
java开发各种工具的安装教程
创建者:qq_
上传者其他资源上传者专辑
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
扫码关注并点击右下角获取下载码
输入下载码
为了良好体验,不建议使用迅雷下载
spring3.2.5+springmvc3.2.5+mybatis3.2.2+junit4.4+mysql
会员到期时间:
剩余下载个数:
剩余C币:593
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
(仅够下载10个资源)
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励5下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
spring3.2.5+springmvc3.2.5+mybatis3.2.2+junit4.4+mysql相关文章推荐
注解,存储过程
1.无输入和输出参数的存储过程
我写了一个比较简单的,需要注意的是Oracle无参存储过程不能写括号
CREATE OR REPLACE Procedure cascadeoperation
mysql存储过程1.存储过程简介我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储...
存储过程SQL如下:
CREATE PROCEDURE `saveTender`(IN brwId
VARCHAR(26),IN money VARCHAR(26),IN userid
如何使用Mybaits调用数据库中的存储过程,下面以Oracle数据库的为例:
1.在数据库中创建以下的存储过程:
create or replace procedure ...
记两一下工作中用到的mybatis调用存储过程,这边用到的mybatis是3.2.2版本,oracle 10g。
一、返回一个值的存储过程,如下:
CREATE OR REPLACE PROCEDUR...
存储过程在程序开发中我们经常用到。存储过程具有安全,高效,运行速度快等特点,在mybatis中我们也可以调用存储过程。这一节我们看看怎么使用。接下来的例子是根据分类ID查询当前分类下所有商品的数量。...
mybatis调用存储过程及返回值获取
存储过程的返回结果直接放在 传入参数的map中(paramCusKey)
调用前{INPARA=CUSTOMER_KEY=545}
要求:查询得到男性或女性的数量, 如果传入的是0就女性否则是男性
create table p_user(
id int primary key auto_increment,
存储过程示例:
create or replace procedure Fsp_Plan_CheckPrj(v_grantno
varchar2, v_deptcode number,
他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)mybatis(10)
1&&&&&&mybatis入门程序
1.1&&&&&&&&需求
&&&&&&&& 实现用户查询:
&&&&&&&&&&&&&&&&&& 根据用户id(主键)查询用户信息(单条记录)
&&&&&&&&&&&&&&&&&& 根据用户名称模糊查询用户信息(多条记录)
&&&&&&&& 用户添加
&&&&&&&& 用户删除
&&&&&&&& 用户修改
1.2&&&&&&&&环境准备
l&Jdk:1.7
l&Ide:eclipseindigo
l&Mybatis:3.2.7
l&数据库:MySQL 5X
1.2.1&&&&&下载mybatis
mybaits的代码由 & 管理,下载地址:
1.2.2&&&&&数据库脚本初始化
&&&&&&&& 通常需要提供初始化数据的数据库脚本。
1、& 执行sql_table.sql脚本,创建数据库表;
2、& 执行sql_data.sql初始化测试数据。
1.3&&&&&&&&工程搭建
1.3.1&&&&&工程结构图
1.3.2&&&&&导入jar包
&&&&&&&& 从mybatis管网下载(地址:/mybatis/mybatis-3/releases)
mybatis-3.2.7.pdf---操作手册 ;mybatis-3.2.7.jar--核心 jar包 ;依赖的jar包
1.3.3&&&&&log4j.properties(公用文件)--日志文件
Mybatis使用的日志包是log4j的,所以需要添加log4j.properties。
在classpath下创建log4j.properties如下:
文件内容可以从mybatis-3.2.7.pdf中拷贝
# Global logging configuration,建议开发环境中要用debug
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n&
日志级别在开发阶段设置成DEBUG,在生产阶段设置成INFO或者ERROR。
1.4&&&&&&&&编程步骤
1、& 创建PO类,根据需求创建;
2、& 创建全局配置文件SqlMapConfig.xml;
3、& 编写映射文件User.xml或UserMapper.xml;
4、& 加载映射文件,在SqlMapConfig.xml中进行加载;
5、& 编写测试程序,即编写Java代码,连接并操作数据库。
&&&&&&&& 思路:
a)&&&&&&&&读取配置文件;
b)&&&&&&&&通过SqlSessionFactoryBuilder创建SqlSessionFactory会话工厂。
c)&&&&&&&&通过SqlSessionFactory创建SqlSession。
d)&&&&&&&&调用SqlSession的操作数据库方法。
关闭SqlSession。
1.5&&&&&&&&代码实现
1.5.1&&&&&创建po类,(User.java)
1.5.2&&&&&SqlMapConfig.xml(全局配置文件)
在classpath下,创建SqlMapConfig.xml文件
SqlMapConfig.xml(文件头可以从mybatis-3.2.7.pdf文档的2.1.2小节中拷贝):
在config目录下,创建SqlMapConfig.xml文件,该名称不是固定不变的。
&&!DOCTYPE configuration
PUBLIC &-//mybatis.org//DTD Config 3.0//EN&
&http://mybatis.org/dtd/mybatis-3-config.dtd&&
&configuration&
&!-- 和spring整合后 environments配置将废除--&
&environments default=&development&&
&environment id=&development&&
&!-- 使用jdbc事务管理--&
&transactionManager type=&JDBC& /&
&!-- 数据库连接池--&
&dataSource type=&POOLED&&
&property name=&driver&value=&com.mysql.jdbc.Driver& /&
&property name=&url&value=&jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8&/&
&property name=&username&value=&root& /&
&property name=&password&value=&root& /&
&/dataSource&
&/environment&
&/environments&
&!-- 加载mapper.xml --&
&mapper resource=&sqlmap/User.xml&/&
&/mappers&
&/configuration&
1.5.3&&&&&需求开发—1.6
1.5.4&&&&&小结
1.5.4.1&&&&&&&#{}和${}
1.5.4.2&&&&&&&输入输出类型
1.5.4.3&&&&&&&selectOne和selectList
&&&&&&&& selectOne查询单个对象
用于查询单条记录,不能用于查询多条记录,否则异常:
: Expected one result (or null) to be returned by selectOne(), but found:4
&&&&&&&& selectList查询集合对象
1.6&&&&&&&&需求开发
1.6.1&&&&&根据用户ID查询用户信息
1.6.1.1&&&&&&&映射文件
在config目录下,创建User.xml(这种命名规范是由ibatis遗留下来)
1.6.1.2&&&&&&&在全局配置文件中加载映射文件
1.6.1.3&&&&&&&测试代码
1.6.2&&&&&根据用户名称模糊查询用户列表
1.6.2.1&&&&&&&映射文件
1.6.2.2&&&&&&&测试代码
// 测试根据username模糊查询用户得到(单条数据)
public void testFindUserByName() {
// 通过sqlSessionFactory创建sqlSession
SqlSessionsqlSession = sqlSessionFactory.openSession();
// 通过sqlSession操作数据库
// 第一个参数:statemrnt位置:namespace + statemrnt的id
// 第二个参数:传入的参数
List&User&user =
user= sqlSession.selectList(&test.findUserByName&, &%小明%&);
}catch(Exception e) {
e.printStackTrace();
// 关闭sqlSession
sqlSession.close();
System.out.println(user);
1.6.3&&&&&添加用户
1.6.3.1&&&&&&&映射文件
&&!-- 添加用户
parameterType:输入参数的类型,User对象包括 username,birthday,sex,address
#{}接收pojo数据,可以使用OGNL解析出pojo的属性值
#{username}表示从parameterType中获取pojo的属性值
&insert id=&insertUser& parameterType=&mybatis.po.User&&
&selectKey keyProperty=&id& order=&AFTER&resultType=&int&&
selectLAST_INSERT_ID()
&/selectKey&
INSERTINTO USER(username,birthday,sex,address)VALUES(#{username},#{birthday},#{sex},#{address})
1.6.3.2&&&&&&&测试代码
&// 插入数据
public void testInsertUser() {
// 通过sqlSessionFactory创建sqlSession
SqlSessionsqlSession = sqlSessionFactory.openSession();
//创建插入数据对象
Useruser = newUser();
user.setUsername(&小兰&);
user.setAddress(&四川内江&);
user.setBirthday(new Date());
user.setSex(&1&);
sqlSession.insert(&test.insertUser&,user);
//需要提交事务
}catch(Exception e) {
e.printStackTrace();
// 关闭sqlSession
sqlSession.close();
System.out.println(user);
1.6.3.3&&&&&&&主键返回之自增主键
&& selectKey:用于进行主键返回,定义了获取主键值的sql
&& order:设置selectKey中sql执行的顺序,相对于insert语句来说
&& keyProperty:将主键值设置到哪个属性
&& resultType:select LAST_INSERT_ID()的结果类型
1.6.3.4&&&&&&&主键返回值UUID
UUID函数是mysql的函数
1.使用mysql的uuid机制生成主键:
使用uuid生成主键的好处是不考虑数据库移植后主键冲突问题。
1.6.3.5&&&&&&&主键返回值序列--orcale
序列也就是sequence,它是Oracle的主键生成策略
1.6.4&&&&&用户删除和更新
1.6.4.1&&&&&&&映射文件
&!-- 用户删除 --&
&delete id=&deleteUser& parameterType=&int&&
deletefrom user where id=#{id}
&!-- 用户更新要求:传入的user对象中包括 id属性值 --&
&update id=&updateUser& parameterType=&mybatis.po.User&&
updateuser set
username=#{username},birthday=#{birthday},sex=#{sex},address=#{address}
whereid=#{id}
&/update&&
1.6.4.2&&&&&&&测试代码
// 测试根据id删除用户(得到单条记录)
public void testDeleteUser() {
// 通过sqlSessionFactory创建sqlSession
SqlSessionsqlSession = sqlSessionFactory.openSession();
// 通过sqlSession操作数据库
sqlSession.delete(&test.deleteUser&,24);
// 需要提交事务
}catch(Exception e) {
e.printStackTrace();
// 关闭sqlSession
sqlSession.close();
// 测试根据id更新用户(得到单条记录)
public void testUpdateUser() {
// 通过sqlSessionFactory创建sqlSession
SqlSessionsqlSession = sqlSessionFactory.openSession();
// 通过sqlSession操作数据库
// 创建更新数据对象,要求必须包括 id
Useruser = newUser();
user.setId(1);
user.setUsername(&燕青&);
user.setAddress(&河南郑州&);
// user.setBirthday(new Date());
user.setSex(&1&);
sqlSession.update(&test.updateUser&,user);
// 需要提交事务
}catch(Exception e) {
e.printStackTrace();
// 关闭sqlSession
sqlSession.close();
System.out.println(&用户的id=& + user.getId());
&源代码文件:&http://download.csdn.net/detail/qq_1948
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:34337次
积分:2904
积分:2904
排名:第13811名
原创:267篇
(37)(13)(32)(33)(2)(10)(3)(42)(35)(29)(22)(8)(1)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'2038人阅读
MyBatis框架(22)
我们通过写一个简单的MyBatis小项目来在实战中学习MyBatis
根据用户id(主键)查询用户信息
根据用户名称模糊查询用户信息
mybatis运行环境(jar包):
从/mybatis/mybatis-3/releases下载,3.2.7版本
lib下:依赖包
mybatis-3.2.7.jar:核心 包
mybatis-3.2.7.pdf,操作指南
加入mysql的驱动包
加入的所有jar包如图(可以在这里下载:)
2.创建log4j.properties
在src中放入日志配置文件
文件内容(拷贝自官方帮助文档)
# Global logging configuration
#在开发环境下日志级别要设成DEBUG,生产环境设为INFO或ERROR
log4j.rootLogger=DEBUG, stdout
# MyBatis logging configuration...
log4j.logger.org.mybatis.example.BlogMapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
接下来创建SqlMapConfig.xml等文件
配置好之后的整个工程结构为图
3.SqlMapConfig.xml
SqlMapConfig.xml内容如下
(由于没有整合Spring,暂时在environments中配数据库连接池dataSource,整合Spring之后将这一块删除就行了)
&?xml version=&1.0& encoding=&UTF-8&?&
&!DOCTYPE configuration
PUBLIC &-//mybatis.org//DTD Config 3.0//EN&
&http://mybatis.org/dtd/mybatis-3-config.dtd&&
&configuration&
&!-- 和spring整合后 environments配置将废除--&
&environments default=&development&&
&environment id=&development&&
&!-- 使用jdbc事务管理--&
&transactionManager type=&JDBC& /&
&!-- 数据库连接池--&
&dataSource type=&POOLED&&
&property name=&driver& value=&org.gjt.mm.mysql.Driver&/&
&property name=&url& value=&jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8&/&
&property name=&username& value=&root&/&
&property name=&password& value=&1234&/&
&/dataSource&
&/environment&
&/environments&
&/configuration&
4.创建PO(persistant object持久对象)类
在数据库中创建mtbatis数据库,创建user表,表详细内容为
id&int&、username&vachar&、birthday&Date&、sex&int&、address&vachar&
在cn.edu.hpu.mybatis.PO包下创建PO对象
User.java:
package cn.edu.hpu.mybatis.PO;
import java.util.D
public class User {
private S// 用户姓名
private S// 性别
private D// 生日
private S// 地址
public int getId() {
public void setId(int id) {
public String getUsername() {
public void setUsername(String username) {
this.username =
public String getSex() {
public void setSex(String sex) {
this.sex =
public Date getBirthday() {
public void setBirthday(Date birthday) {
this.birthday =
public String getAddress() {
public void setAddress(String address) {
this.address =
5.编写User.xml配置文件
我们来写User.xml(里面详细注释,就不多说了):
&?xml version=&1.0& encoding=&UTF-8&?&
&!DOCTYPE mapper
PUBLIC &-//mybatis.org//DTD Mapper 3.0//EN&
&http://mybatis.org/dtd/mybatis-3-mapper.dtd&&
&!-- namespace命名空间,作用就是对sql进行分类化管理,理解sql隔离
注意:使用mapper代理方法开发,namespace有特殊重要的作用 --&
&mapper namespace=&test&&
&!-- 在映射文件中配置很多sql语句 --&
&!-- 需求:通过id查询用户表的记录 --&
&!-- 通过select执行数据库查询,
id:标示映射文件中的sql,成为Statement的id
将sql语句封装到mappedStatement对象中,所以将id称为statement的id,
parameterType:指定输入参数的类型,
#{}标示一个占位符,
#{id}其中id表示接收输入参数的名称,如果输入参数是简单类型,那么#{}中的值可以任意。
resultType:指定sql输出结果的映射的java对象类型,
select指定resultType表示将单条记录映射成java对象--&
&select id=&findUserById& parameterType=&int& resultType=&cn.edu.hpu.mybatis.PO.User&&
SELECT * FROM USER WHERE id=#{id}
6.在SqlMapConfig.xml中加载映射文件(User.xml)
&!-- 加载映射文件 --&
&mapper resource=&sqlmap/User.xml&/&
&/mappers&
7.编写程序
(1)同归id查询用户
在cn.edu.hpu.mybatis.first包下编写测试样例MyBatisfirst.java
这里我们查询id为1的用户
package cn.edu.hpu.mybatis.
import java.io.IOE
import java.io.InputS
import org.apache.ibatis.io.R
import org.apache.ibatis.session.SqlS
import org.apache.ibatis.session.SqlSessionF
import org.apache.ibatis.session.SqlSessionFactoryB
import org.junit.T
import cn.edu.hpu.mybatis.PO.U
public class MyBatisfirst {
private SqlSession sqlSession=
//根据id查询用户信息,得到一条记录结果
public void findUserById(){
//mybatis配置文件
String resource=&SqlMapConfig.xml&;
//将配置文件加载成流
InputStream inputS
inputStream = Resources.getResourceAsStream(resource);
//创建会话工厂,传入mybatis配置文件的信息
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
//通过工厂得到sqlSession
sqlSession=sqlSessionFactory.openSession();
//通过SqlSession操作数据库
//第一个参数:映射文件中的statement的Id,等于=namespace+&.&+statement的Id
//第二个参数:指定和映射文件所匹配的parameterType类型的参数
//sqlSession.selectOne最终结果与你映射文件中所匹配的resultType类型
User user=sqlSession.selectOne(&test.findUserById&,1);//数据库id=1的字段username为&张三&
System.out.println(user.getUsername());
} catch (IOException e) {
e.printStackTrace();
//释放资源
sqlSession.close();
测试结果:张三
查看控制台Console输出的日志记录:
DEBUG [main] - Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.
DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
DEBUG [main] - Opening JDBC Connection
DEBUG [main] - Created connection .
DEBUG [main] - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.Connection@1c4f0f8]
DEBUG [main] - ==&
Preparing: SELECT * FROM USER WHERE id=?
DEBUG [main] - ==& Parameters: 1(Integer)
DEBUG [main] - &==
DEBUG [main] - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.Connection@1c4f0f8]
DEBUG [main] - Closing JDBC Connection [com.mysql.jdbc.Connection@1c4f0f8]
DEBUG [main] - Returned connection
to pool.很清晰的看到整个执行过程
(2)通过用户名模糊查询用户id
使用User.xml,添加根据用户名称模糊查询用户信息的sql语句。
&!-- ${}:表示拼接sql串,将接收到的参数内容不加任何修饰拼接在sql中。
使用${}拼接sql,引起sql注入。
${}中只能使用value--&
&select id=&findUserByUsername& parameterType=&java.lang.String&
resultType=&cn.edu.hpu.mybatis.PO.User&&
select * from user where username like '%${value}%'
测试方法:
//根据用户姓名模糊查询用户id,得到一个记录集合
public void findUserByName(){
//mybatis配置文件
String resource=&SqlMapConfig.xml&;
//将配置文件加载成流
InputStream inputS
inputStream = Resources.getResourceAsStream(resource);
//创建会话工厂,传入mybatis配置文件的信息
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
//通过工厂得到sqlSession
sqlSession=sqlSessionFactory.openSession();
//通过SqlSession操作数据库
//第一个参数:映射文件中的statement的Id,等于=namespace+&.&+statement的Id
//第二个参数:指定和映射文件所匹配的parameterType类型的参数
//sqlSession.selectOne最终结果与你映射文件中所匹配的resultType类型
List&User& users=sqlSession.selectList(&test.findUserByUsername&,&张三&);
//数据库一共有两个相关数据,&张三&和&张三丰&
for (int i = 0; i & users.size(); i++) {
User u=users.get(i);
System.out.println(u.getId()+&:&+u.getUsername());
} catch (IOException e) {
e.printStackTrace();
//释放资源
sqlSession.close();
测试结果:
输出的日志信息:
DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
DEBUG [main] - Opening JDBC Connection
DEBUG [main] - Created connection .
DEBUG [main] - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.Connection@1c8efd1]
DEBUG [main] - ==&
Preparing: select * from user where username like '%张三%'
DEBUG [main] - ==& Parameters:
DEBUG [main] - &==
DEBUG [main] - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.Connection@1c8efd1]
DEBUG [main] - Closing JDBC Connection [com.mysql.jdbc.Connection@1c8efd1]
DEBUG [main] - Returned connection
a.parameterType
在映射文件中通过parameterType指定输入参数的类型
b.resultType
在映射文件中通过resultType指定输出结果的类型
c.#{}和${}
#{}表示一个占位符号
${}表示一个拼接符号,会引起sql注入,所以不建议使用
d.selectOne和selectList
selectOne表示查询一条记录进行映射,使用selectList也可以使用,只不过只有一个对象
selectList表示查询出一个列表(参数记录)进行映射,不嗯能够使用selectOne查,不然会报下面的错:
org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2
转载请注明出处:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1260554次
积分:20832
积分:20832
排名:第425名
原创:844篇
转载:18篇
评论:552条
就职:聚项信息科技有限公司
职位:中级Java开发工程师
负责:上汽系统开发与维护
专业:软件工程12级
阅读:1566
阅读:4884
文章:14篇
阅读:52535
文章:19篇
阅读:11193
文章:12篇
阅读:8718
文章:16篇
阅读:14583
阅读:37736
阅读:7918
文章:35篇
阅读:73771
文章:27篇
阅读:25789
文章:24篇
阅读:27553
文章:81篇
阅读:264997
文章:87篇
阅读:137145
文章:21篇
阅读:25998
文章:51篇
阅读:51857
文章:37篇
阅读:64778
文章:31篇
阅读:62481
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'

我要回帖

更多关于 gns3 2.0搭配iou版本 的文章

 

随机推荐