随笔分类 - mybatis
SSM三大框架之一
摘要:1. 在SqlMapconfig.xml中开启二级缓存支持 Mybatis默认开启了二级缓存,可以不用配置。 Mybatis官网: 2. 在持久层接口中使用注解配置二级缓存 3. 编写测试类 开启二级缓存后,数据库只进行了一次查询。
阅读全文
摘要:需求:使用注解方式实现,查询用户信息时,也要查询对应的账户列表。 一个用户具有多个账户信息,所以形成了用户(User)与账户(Account)之间的一对多关系。 1. User实体类中加入 2. 编写用户的持久层接口并使用注解配置 3. 编写账户的持久层接口并使用注解配置 4. 编写测试方法
阅读全文
摘要:复杂关系映射的注解说明 实体类属性和数据库表中列名不一致的时候,使用 注解。 举例: 下面详细介绍一下 注解的参数: 基于注解开发一对一的查询配置 1. 添加Account实体类 2. 编写Account账户的持久层接口并使用注解配置 3. 测试一对一关联及延迟加载
阅读全文
摘要:问题: 在一对多中,当我们有一个用户,它有100个账户。 在查询用户时,用户下的账户信息是,什么时候用,什么时候再查询。 在查询账户时,账户的所属用户信息应该是随着账户查询时再查询出来。 什么是延迟加载 延迟加载 在真正使用数据时才发起查询,不用的时候不查询。按需加载(懒加载) 立即加载 不管用不用
阅读全文
摘要:创建步骤: 1. 创建maven工程,什么都不选就ok,并导入坐标; 2. 编写User实体类,java目录下创建com.ben.domain包,创建User实体类 3. 使用注解方式编写持久层接口 4. 在resources文件夹中,创建Mybatis的主配置文件SqlMapConfig.xml;
阅读全文
摘要:Mybatis的缓存 缓存基本概念 缓存是存在于内存中的临时数据 为什么用缓存?减少和数据库的交互次数,提高执行效率。 什么地方用缓存? | 条件 | 情况 | | | | | 适用于缓存 | 经常查询并且不经常改变的,数据的正确与否对最终结果影响不大的 | | 不适用于缓存 | 经常改变的数据,数
阅读全文
摘要:多对多 需求: 用户和角色 一个用户可以有多个角色 一个角色可以赋予多个用户 分析: 1. User表和Role表具有多对多关系,需要使用中间表,中间表中包含各自的主键,在中间表中是外键; 2. 建立两个实体类:用户实体类中包含对角色的集合引用,角色实体类中包含对用户的集合引用; 3. 建立
阅读全文
摘要:一对多 需求: 查询所有用户信息及用户关联的账户信息。 分析: 用户信息和他的账户信息为一对多关系,并且查询过程中如果用户没有账户信息,此时也要将用户信息查询出来,我们想到了左外连接查询比较合适。 步骤: 1. 编写SQL语句; 查询到用户信息与其对应账户信息,如图所示。 2. User类中加入 ;
阅读全文
摘要:多表操作 举例说明 多对一: 用户和订单是一对多,一个用户可以下多个订单; 订单和用户是多对一,多个订单属于同一个用户。 一对一: 人和身份证号。一个人只能有一个身份证号,一个身份证号也只能被一个人所有。 多对多: 老师和学生之间。一个学生可以被多个老师教过,一个老师可以交多个学生。 开始之前 1.
阅读全文
摘要:(会用) if标签 ``标签的 test 属性中写的是对象的属性名, 映射配置文件 持久层接口 测试文件 where标签 为了简化上面 where 1=1 的条件拼装,我们可以采用``标签来简化开发。 作用 1. 自动向sql语句中添加where关键字 2. 去掉第一个条件的and关键字 映射配置文
阅读全文
摘要:Mybatis的连接池及事务 (了解,会用) Mybatis连接池 配置的位置 主配置文件SQLMapConfig.xml中的dataSource标签,type属性就是表示采用何种连接池方式。 type的取值 POOLED: 采用传统的javax.sql.DataSource规范中的连接池,myba
阅读全文
摘要:输入映射papameterType 传递简单类型 基本类型和String我们可以直接写类型名称,也可以使用包名.类名的方式。例如:java.lang.String 传递pojo对象 Mybatis使用ognl表达式解析对象字段的值、 {}或${}括号中的值为pojo属性名称。 OGNL表达式:Obj
阅读全文
摘要:配置的内容和顺序 properties(属性) property settings(全局配置参数) setting typeAliases(类型别名) typeAliase package typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) env
阅读全文
摘要:Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法。 目录结构: XML方式 创建步骤: 1. 创建maven工程,什么都不选就ok,并导入坐标; 2. 编写User实体类和
阅读全文
摘要:基于原始dao实现CRUD 需要程序员编写Dao接口和Dao实现类,即就是UserDao接口和UserDaoImpl实现类 原始Dao开发中存在以下问题: Dao方法体存在重复代码:通过SqlSessionFactory创建SqlSession,调用SqlSession的数据库操作方法 调用sqlS
阅读全文
摘要:Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。 2013年11月迁移到Github。MyBatis是一个优秀的持久层框架,它对
阅读全文