天天看点

mybatis-02 Mybatis的CRUD和其它基本操作

目录

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注入了。