目录
mybatis-02 mybatis的CRUD和其它基本操作
3 CRUD
select根据姓用户id查找用户的全部信息
insert
根据字段信息插入新的用户
根据对象插入新的用户
update根据用户对象更新
delete根据用户ID删除
4 使用map传参
5 模糊查询
再次强调!!!xml 文件中的 namespqce 中的包名要和 mapper 接口保持一致!
默认条件下除查询之外的操作都需要提交!!!可以手动在创建 sqlSession 的时候通过构造器修改成自动提交。
先来看看我们在 mapper 中编写的显而易见的一段 sql 的内容:
第一眼望去就看了我们的 sql 语句,嘻嘻。然后就是一些个赋值语句,对于这些被赋值的语句,最最最常见的有:
名称
意义
id
对应接口中的方法名
resultType
返回值类型(全限定)
parameterType
参数类型(全限定)
……
还可以使用<code>#{参数名}</code>的形式来直接使用参数,要注意,参数名可以是 pojo 类的 field,也可以是接口方法签名的参数。另外,出了查询之外的操作都需要通过 sqlSession 的 commit 进行提交,这么说有些模糊,咱们直接上代码:
xml 代码:
java 代码:
执行结果:
xml 文件:
这次的 id,name,pwd 都是从传入的 User 对象中获取的。
如果在这里遇到了插入数据库的字段为乱码的情况,请从两个方面检查:IDE 环境编码和 MySQL 编码。
还有一点就是 mybatis 不支持 id 重载,也就是一条 sql 只能对应一个 id,一个 id 只能对应一条 sql,而不能根据传入的参数类型等信息进行重载!
参数也是从传入的用户对象中获取。
假如实体类中的字段过多,可以考虑使用 map 传递局部参数。因为如果直接传递所有参数的话会显得非常臃肿,毕竟谁也不喜欢搁函数实参那里摆一堆没有 IDE 提示都不知道是啥的变量吧。
使用模糊查询时,要注意防止sql注入。下面两种方式都可行,且都是安全的,因为只要使用了#{}就可以防止sql注入了。