Mybatis
关于Mybatis学习的一些知识啊
「已注销」
手握神剑让希望完美绽放!
展开
-
一级缓存--二级缓存详解
一级缓存 由于一级缓存的作用域是SqlSession内部,但是SqlSession的生命周期非常短暂,所以一级缓存对于查询效率的提升很有限.而要提升效率,需要使用二级缓存. 二级缓存 1.开启全局开关2.添加标签3.实现序列化接口注解:没有使用二级缓存的时候,也可以存值.不过存值的方式是将对象的每一个属性拆成字段传输.而...原创 2019-12-29 16:15:36 · 170 阅读 · 0 评论 -
使用Mybatis实现多表多对多删除实例(含代码及解释)
多对多删除实例(删除学生及关系)项目目录结构(maven):多对多删除学生灵魂之处解析:StudentMapper.xml(所有表id都设置了自动递增)创建表t_stu:创建表t_teacher:创建关系表t_stu_tea:在Maven配置文件pom.xml中添加所需要的依赖:<?xml version="1....原创 2019-12-28 21:01:18 · 2390 阅读 · 1 评论 -
使用Mybatis实现多表多对多查询实例(额外SQL方式以及关联查询方式含代码及解释)
多对多查询实例(查询学生)多对多查询的时候,一定不要忘了关系表,不管增删改查都不要忘了关系表项目目录结构(maven):多对多查询生灵魂之处解析:关联查询StudentMapper.xml额外SQL查询StudentMapper.xml额外SQL查询TeacherMapper.xml(所有表id都设置了自动递增)创建表t_stu:...原创 2019-12-28 20:44:30 · 800 阅读 · 0 评论 -
使用Mybatis实现多表多对多保存实例(含代码及解释)
多对多保存实例(保存学生)项目目录结构(maven):多对多保存学生灵魂之处解析:StudentMapper.xml不保存主键的运行结果:新增学生的id为0,tea_id应该是正常的,只是因为我之前代码写错了,主要看学生id会为0;(所有表id都设置了自动递增)创建表t_stu:创建表t_teacher:创建关系表t_stu...原创 2019-12-28 19:22:06 · 2097 阅读 · 0 评论 -
一对多查询之额外SQL语句中的延迟加载详解
额外SQL查询的问题:当使用额外SQL语句查询只查询部门的编号和名字时时,会出现以下情况每查询一个部门都会额外发送一条SQL语句.但是我们只想查询部门的编号和名字,不想查询部门员工,每查询一个部门都发送一条SQL语句.这极大的降低了程序的性能.所以延迟加载出现了,当我们只想查询部门的编号和名字的时候,通过延迟加载的设置,可以使程序不再去查询部门中员工的信息.延迟加载的设置:...原创 2019-12-28 17:41:22 · 395 阅读 · 0 评论 -
使用mabatis完成一对多查询时的易错点
1.在resources中新建目录的时候,中间是/,这样会建一个三级目录,但如果中间是点,就会创建出一个名为com.xiongluoluo.mapper的文件夹.(但是在java文件夹里面可以直接写点,就是创建一个三级目录)2.封装获取SqlSession工具类的时候,注意Resources是org.apache.ibatis.io包下的.3.注意这里不能写注释,编译不报错,但是会...原创 2019-12-28 17:05:51 · 121 阅读 · 0 评论 -
一对多关联查询两个表id相同报错的解决方式
报错信息:(一对多查询时报的错误,虽然能查到,但是却一直报错,不能输出结果)org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2 at org.apache.ibatis.sessio...原创 2019-12-28 16:41:31 · 989 阅读 · 1 评论 -
使用Mybatis实现多表一对多查询实例之关联查询方式(含代码及解释)
一对多查询之关联查询实例项目目录结构(maven):一对多查询关联查询方式灵魂之处解析:DepartmentMapper.xml创建表t_dept:(一方)创建表t_emp:(多方)在Maven配置文件pom.xml中添加所需要的依赖:<?xml version="1.0" encoding="UTF-8"?><p...原创 2019-12-28 16:51:54 · 703 阅读 · 1 评论 -
使用Mybatis实现多表一对多查询实例之额外SQL查询方式(含代码及解释)
一对多查询之额外SQL查询实例项目目录结构(maven):一对多查询额外SQL查询方式灵魂之处解析:DepartmentMapper.xmlEmployeeMapper.xml注意:创建表t_dept:(一方)创建表t_emp:(多方)在Maven配置文件pom.xml中添加所需要的依赖:<?xml version="...原创 2019-12-28 15:25:18 · 1391 阅读 · 1 评论 -
一行注释引发的惨案!!!
背景:今天用mybatis做一对多查询实例的时候,出现了以下报错信息.核对了老师的代码,还是感觉自己写的没问题.终于,最后发现竟然是因为一行注释........报错信息:java.lang.ExceptionInInitializerError at com.xiongluoluo.service.impl.DepartmentServiceImpl.findDepartmen...原创 2019-12-28 11:49:15 · 139 阅读 · 0 评论 -
泛型的概念以及泛型类--泛型方法--泛型接口--泛型通配符的定义
泛型的概念定义广泛的类型,在定义一个类的时候,类型中有些方法参数、返回值类型不确定,就使用一个符号,来表示那些尚未确定的类型,这个符号,就称为泛型。使用对于有泛型的类型,在这些类型后面跟上尖括号,尖括号里面写上泛型的确定类型(在使用某个类创建对象时,已经可以确定这个具体的类型了,那么就直接写出具体类型)例如:List<Integer> al = new ArrayL...原创 2019-12-25 23:12:51 · 590 阅读 · 0 评论 -
Mybatis中日志文件的配置
1.pom.xml中添加依赖<!--日志包--><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency>&...原创 2019-12-22 21:11:01 · 283 阅读 · 0 评论 -
Mybatis入门案例-----使用IDEA 创建 maven java 项目,使用mapper接口实现增删改查(内含源码及详细解释)
题目使用IDEA 创建 MAVEN JAVA 项目根据下图 在mysql数据库中创建员工表(t_employee)创建实体类 Employee 并创建mapper接口(EmployeeMapper.java)以及测试类 对创建的mapper映射文件进行增删改查以及测试项目目录结构1.在数据库中创建表T_Employee(大小写无所谓)DROP TABL...原创 2019-12-22 20:54:08 · 1110 阅读 · 1 评论 -
Mybatis入门案例-----使用IDEA 创建 maven java 项目,通过mapper映射文件实现增删改查(内含源码及详细解释)
题目使用IDEA 创建 MAVEN JAVA 项目根据下图 在mysql数据库中创建员工表(t_employee)创建实体类 Employee 并创建mapper映射文件(使用mybatis中的mapper映射文件)以及测试类 对创建的mapper映射文件进行增删改查以及测试项目目录结构1.在数据库中创建表T_Employee(大小写无所谓)DROP ...原创 2019-12-22 16:43:41 · 950 阅读 · 0 评论 -
sqlSession的selectOne方法返回值不用强转详解
今天在写代码的时候,发现一个问题就是当使用快捷键自动生成的时候slqSession.selectOne方法的返回值是Object类型Object o = sqlSession.selectOne("test.selectEmployeeById", 7);而我写代码的时候直接写Employee,没有强转也没报错.Employee employee = sqlSession.sele...转载 2019-12-22 15:25:15 · 4426 阅读 · 2 评论 -
Mybatis的Xml映射文件中,不同Xml映射文件,id是否可以重复详解
Mybatis的Xml映射文件中,不同Xml映射文件,id是否可以重复?不同的Xml映射文件,如果配置了namespace,那么id可以重复;如果没有配置namespace,那么id不能重复.(不管是什么id,即使不是同种类型,譬如说查询的id跟更新的id不一样也不行.反正就是所有id都不能重复,因为id就是一个标识)个人批注:问题的意思应该是在不使用mapper接口编程的时候,...原创 2019-12-22 10:12:55 · 9167 阅读 · 0 评论