mybatis小结

JDBC不好用的地方:

  1. 结果集处理麻烦
  2. sql语句写在java类中,不利于维护
  3. 动态sql语句处理麻烦
  4. 配置数据源(连接池不方便)
  5. .....................

mybatis使用:

  1. 导入mybatis相关jar包
  2. 编写mybatis主配置文件(建议放在src下面)
  3. 编写dao层接口以及mapper映射文件(建议放在和dao层接口一致的位置)

mybatis优化:

  1. 命名空间必须是接口对应全路径,id必须是对应方法的名称,dao方法的参数只有一个,   实体类属性名称和表字段名称一致
  2. 提供jdbc.properties
  3. 让mybatis可以插入null
  4. 给实体类类型提供别名
  5. 提供log4j日志文件

接口代理开发:

  1. 命名空间必须是接口对应全路径,id必须是对应方法的名称
  2. 通过SqlSession让mybatis自动帮我们生成对应接口的实现类

mybatis级联查询:

一级二级缓存:

一级缓存:是mybatis默认提供的,mybatis会给每个sqlsession提供一个一级缓存空间,当我们使用该sqlsqlsession查询出结果的时候,mybatis会把结果放置在一级缓存中,当使用同一个sqlsession执行相同的sql语句的时候,直接从一级缓存中获取,当我们提交事务的时候一级缓存清空

二级缓存:需要我们手动开启,mybatis会给每个命名空间提供二级缓存空间,多个sqlsession只要操作的是同一个命名空间下的sql语句,那么多个sqlsession共享二级缓存空间,当一个sqlsession查寻这条sql语句会把执行结果放置在二级缓存中,第二个sqlsession查询的时候直接从二级缓存获取

1、在主配置文件中开启二级缓存

<setting name="cacheEnabled" value="true"/>

2、在命名空间中(映射文件中允许该命名空间二级缓存)

<cache></cache>

3、要缓存的对象实现序列化接口

public class User implements Serializable {

}

4、要想把查询结果放置在二级缓存中那么第一个sqlsession执行完成以后必须提交事务

redis:基于内存的key-value形式的非关系型数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值