mybatis学习总结

Mybatis第一天总结
1.Hibernate是orm框架,相比较mybatis,比较重量.适合用户小,并发低的系统.mybatis适合用户大,并发高的系统.
2.直接使用jdbc会频繁的创建和释放资源.可以使用连接池来解决这个问题.
3.Mybatis中使用配置文件来执行sql语句,其中#{}代表占位符,3{}代表拼接符(字符串原样拼接).当传入的参数类型是基本类型时.#{}中的值随意,3{}中的值必须时value.当传入为pojo类时,值为属性.属性.
4.注意使用3{}拼接符时可能会存在sql注入的问题(防止sql注入 一般=后使用#{} like后使用3{})
5.Mybatis调用数据库使用步骤
(1)使用核心配置文件创建sqlsessionfactory(线程安全的)
(2)创建opensession(线程不安全的)
(3)执行sql语句(注意selectOne和selectList)
(4)提交事务(自动开启事务,需要手动提交事务)
6.Mybatis配置文件中标签介绍
(1)Id sql语句唯一标识.在代码中执行sql语句时会用到.paramterType 传入参数指定的类型.result返回值的指定类型.
(2)当执行insert语句时要返回插入的主键值,这时可以在insert标签中使用selectkey标签,这里配置的语句使用的mysql中的函数,例如查询自增主键使用 select LAST_INSERT_ID().查询随机主键使用 select uuid().注意配置的order的配置应该是after还是before.selectkey中property的值是你把查询到的结果放入哪个属性中.resulttype为返回的类型.
7.原生dao的开发方法,即上述叙述的使用方法,需要有接口和实现类.
8.动态代理的开发方法,优点只需要写接口,不需要写实现类.规则如下
(1)映射文件中namespace的值要等于接口的全路径名称
(2)映射文件中sql语句id要等于接口的方法名称
(3)映射文件中传入参数类型要等于接口方法的传入参数类型
(4)映射文件中返回结果集的类型要等于方法的返回结果集类型
9.使用动态代理的方式调用sql语句
(1)先获取opensession,步骤和上面获取opensession一样
(2)使用getMapper方法获取接口对象
(3)使用接口对象调用接口中的方法
10.使用class属性引入接口到核心配置文件中的规则
(1)接口名称与配置文件名称一致
(2)接口和映射文件要放到同一个目录下
11.动态代理中返回的结果为list,则生成的实现类中自动调用selectList方法.
12.Sqlmapconfig.xml文件说明
(1)Properties标签可以用来引入配置文件.通过resource属性,之后使用${}来引入配置文件中的属性.
(2)Type Alases标签(别名标签) 可以使用包扫描的方式批量定义别名,package属性,值为包名,则类的别名等于类名,不区分大小写.
(3)Mapper标签 可以使用包扫描的方式批量引入mapper接口 值为包名.规则要求类名和映射文件名一致,放在同一目录下(即这个包下).
13.动态sql
(1)使用if标签进行条件拼接
(2)使用where标签
①自动添加where关键字(条件没有时则不添加)
②去掉第一个条件的and关键字(所以不需要平时使用的1=1)
(3)使用sql标签进行sql查询条件的封装,封装后可重用(使用include标签引入)
(4)使用foreach标签,循环拼接sql语句.
(5)使用set标签
①自动添加set关键字
②去掉最后一个逗号
14.关联查询
(1)单个对象的映射关系
①自动映射,mybatis会根据数据库中的字段名自动映射到同名的对象中的属性.很少使用这种方式.
②配置映射对应关系方式 使用resultmap标签.id子标签用来对应主键关系,result标签用来对应其他的映射关系.assciation标签用来配置单个对象映射的关系的配置.
(2)多个对象的映射关系
①使用resultmap标签,assciation标签换为collection标签即可.
15.整合mybatis和spring
(1)配置mybaits的会话工厂, 配置2个参数,数据源和mybatis的配置文件,整合后不需要关闭opensession,都有spring来管理
(2)整合后原生dao的方式需要实现类继承sqlsessiondaosupport父类
(3)动态代理的方式,可以单独配置bean(但基本不用),也可以使用包扫描的方式来批量配置.
①单独配置,MapperFactoryBean,需要配置2个属性mapperinterface和sqlsessionfactory
②使用包扫描的方式配置Mapperscanconfigure 多个包用英文逗号分割.调用时使用接口名称,首字母小写.
16.逆向工程,mybatis提供根据数据库生成pojo,单表的mapper等功能的工程,称为逆向工程.这个工程不能多次点击生成,多次点击后生成的文件使用后会不正常,导致服务不能执行,智能点击生成一次.一般的单表的查询条件相关的东西都会生成好,直接使用即可.很方便.
17.mybatis可以配置插件,例如分页插件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值