标签:
我们通过写一个简单的MyBatis小项目来在实战中学习MyBatis,接着上一篇继续我们开始实现需求中的添加和删除用户功能
(1)向数据库中添加用户数据
使用User.xml,加入添加用户的sql语句。
输出的日志信息:
我们在刚刚的方法后面输出user的ID
b.非自增主键的返回
使用mysql的uuid()函数生成主键,需要修改表中id字段类型为string,长度设置成35位。
执行思路:
先通过uuid()查询到主键,将主键输入到sql语句中。
执行uuid()语句顺序相对于insert语句之前执行。
在刚刚的User.xml中这么写:
测试略
(3)删除和更新用户
映射文件User.xml中添加的语句:
更新测试代码:
小结:
a.parameterType
在映射文件中通过parameterType指定输入 参数的类型。
b.resultType
在映射文件中通过resultType指定输出结果的类型。
c.#{}和${}
#{}表示一个占位符号,#{}接收输入参数,类型可以是简单类型,pojo、hashmap。
如果接收简单类型,#{}中可以写成value或其它名称。
#{}接收pojo对象值,通过OGNL读取对象中的属性值,通过属性.属性.属性...的方式获取对象属性值。
${}表示一个拼接符号,会引用sql注入,所以不建议使用${}。
${}接收输入参数,类型可以是简单类型,pojo、hashmap。
如果接收简单类型,${}中只能写成value。
${}接收pojo对象值,通过OGNL读取对象中的属性值,通过属性.属性.属性...的方式获取对象属性值。
d.selectOne和selectList
selectOne表示查询出一条记录进行映射。如果使用selectOne可以实现使用selectList也可以实现(list中只有一个对象)。
selectList表示查询出一个列表(多条记录)进行映射。如果使用selectList查询多条记录,不能使用selectOne。
如果使用selectOne报错:
org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 4
企业进行技术选型,以低成本 高回报作为技术选型的原则,根据项目组的技术力量进行选择。
标签:
原文地址:http://blog.csdn.net/jinwufeiyang/article/details/51869414