
MyBatis
Java秦老师
让知识变得简简单单
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MyBatis懒加载
resultMap可以实现高级映射,即使用association和collection实现一对一、一对多的映射,association和collection具备懒加载的功能。懒加载可以提高数据库性能,MyBatis延迟加载的策略是先从单表查询然后再从关联表查询,这样可以大大提高数据库性能,单表查询要比关联查询多张表速度要快。 1、数据库设计 user用户表 orders订单表原创 2017-04-06 17:09:23 · 4554 阅读 · 0 评论 -
MyBatis输入类型parameterType#{}与${}的区别
#{} #{}实现的是想prepareStatement中的预处理语句中设计参数值,sql语句中#{}表示一个占位符即?。 使用占位符#{}可以有效的防止sql注入,在使用时不需要关心参数值的类型,MyBatis会自动进行java类型和jdbc类型的转换。 #{}可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,#{}括号中可以是value或是其他原创 2017-04-08 14:25:27 · 2016 阅读 · 1 评论 -
MyBatis动态拼接SQL
通过使用MyBatis提供的标签方法可以实现动态SQL拼接 1、if标签 <select id="findUser" parameterType="org.mybatis.demo.po.User" resultType="org.mybatis.demo.po.User"> select * from user where 1=1 and id=#{id} and原创 2017-04-08 14:28:51 · 2956 阅读 · 0 评论 -
MyBatis实现动态代理
实现原理 Mapper接口开发只需要程序员编写Mapper接口(相当于DAO接口),由MyBatis框架根据接口定义创建接口的动态代理对象。 Mapper接口开发需要遵循以下规范: Mapper.xml文件中的namespace与mapper接口的类路径相同 Mapper接口方法名和Mapper.xml中定义的每个statement的id相同 Mapper接口方法的输入参数类原创 2017-04-08 15:04:21 · 1559 阅读 · 0 评论 -
MyBatis高级映射(一对多查询)
1、需求 查询所有订单及订单下的明细信息,用户与订单为一对多关系,订单与订单明细为一对多关系 2、数据库结构 user用户表 orders订单表 orders订单表外键 orderdetail订单详情表 orderdetail订单详情表外键 3、SQL语句 4、开始编码 4.1、定义POJO User package or原创 2017-04-08 15:48:16 · 465 阅读 · 0 评论 -
MyBatis高级映射(一对一查询)
1、需求 查询所有用户创建的订单信息,关联用户信息 2、表结构 user用户表 orders订单表 orders订单表外键 3、SQL语句 4、开始编码 4.1、定义POJO User package org.mybatis.demo.po; import java.util.Date; public class User { //属性原创 2017-04-08 15:20:36 · 423 阅读 · 0 评论 -
MyBatis高级映射(多对多查询)
1、需求 查询用户及购买的商品信息 2、表结构 use用户表 orders订单表 orders订单表外键 orderdetail订单详情表(订单表和商品表的关联表) orderdetail订单详情表外键(订单表和商品表的关联表) items商品表 3、SQL语句 4、项目编码 4.1、Mapper.xml 定义re原创 2017-04-10 08:41:49 · 396 阅读 · 0 评论 -
MyBatis缓存技术(一级缓存、二级缓存)
1、MyBatis的缓存分类 一级缓存 一级缓存的作用域是一个SqlSession。MyBatis默认开启一级缓存。在同一个SqlSession中,执行相同的查询SQL,第一次会查询数据库,并写到缓存中;第二次直接从缓存中读取。当执行SQL时,两次查询中间发生了增、删、改的操作,则SqlSession的缓存会被清空。 二级缓存 二级缓存的作用域是一个namesp下的mapper映射文件内容原创 2017-04-10 15:59:10 · 961 阅读 · 0 评论