前言:IntelliJ IDEA 如果说IntelliJ IDEA是一款现代化智能开发工具的话,Eclipse则称得上是石器时代的东西了。其实笔者也是一枚从Eclipse转I...
前言:IntelliJ IDEA 如果说IntelliJ IDEA是一款现代化智能开发工具的话,Eclipse则称得上是石器时代的东西了。其实笔者也是一枚从Eclipse转I...
mapper.xml和mapper.java 通过MapperFactoryBean创建代理对象 此方法问题:需要针对每个mapper进行配置,麻烦。 通过MapperSca...
User.xml 在SqlMapConfig.xml中加载User.xml dao(实现类继承SqlSessionDaoSupport) dao接口实现类需要注入SqlSes...
整合思路 需要spring通过单例方式管理SqlSessionFactory。spring和mybatis整合生成代理对象,使用SqlSessionFactory生成SqlS...
ehcache是一个分布式缓存框架。 分布缓存 我们系统为了提高系统并发、性能,一般对系统进行分布式部署(集群部署方式)不使用分布缓存,缓存的数据在各个服务器单独存储,不方便...
二级缓存原理 首先开启mybatis的二级缓存。SqlSession1去查询用户id为1的用户信息,查询到用户信息会将查询数据存储到二级缓存中。如果SqlSession3去执...
什么是查询缓存 mybatis提供查询缓存,用于减轻数据压力,提供数据流性能。mybatis提供一级缓存,和二级缓存。 一级缓存是SqlSession级别的缓存。在操作数据库...
什么是延迟加载 resultMap可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备...
需求 查询用户及用户购买的商品信息 sql语句 查询主表是:用户表关联表:由于用户和商品没有直接关联,通过订单和订单明细进行关联,所有关联表:orders、orderdeta...
需求 查询订单及订单明细的信息。 sql语句 确定主查询表:订单表确定关联查询表:订单明细表在一对一查询基础上添加订单明细表关联即可。 分析 使用resultType将上边的...
需求 查询订单信息,关联查询创建订单的用户信息 resultType sql语句 确定查询的主表,订单表确定查询的关联表,用户表 创建pojo 将上边sql查询的结果映射到p...
向sql传递数组或list,mybatis使用foreach解析 需求 在用户查询列表和查询列表总数的statement中增加多个id输入查询。sql语句如下:SELECT ...
什么是动态sql mybatis核心对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活操作、组装。 需求 用户信息综合查询列表和用户信息查询列表总数这个两个sta...
resultType 使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。如果查询出来的列名和pojo中的属性名全部不一致,...
输入映射 通过parameterType指定输入参数的类型,类型可以是简单类型、hashmap、pojo的包装类型。 传递pojo的包装对象 需求 完成用户信息的综合查询,需...
mybatis的全局配置文件SqlMapperConfig.xml ,配置内容如下: properties(属性)settings(全局配置参数)typeAliases(类...
测试代码 代理对象内部调用selectOne或selectList 如果mappe方法返回单个pojo对象(非集合对象),代理对象内部通过selectOne查询数据库 如果m...
总结原始dao开发问题 dao接口实现类方法中存在大量模板方法,设想能否将这些代码提取出来,大大减轻程序员的工作量。 调用sqlsession方法时将Statement的id...
原始dao的开发方法(程序员需要写dao接口和dao实现类) dao接口 dao实现类 Test
SqlSession使用范围 SqlSessionFactoryBuilder 通过SqlSessionFactoryBuilder创建会话工厂将SqlSessionFact...