
MyBatis
life is ftc
会的越多,不会的越多!Life is Fantastic,愿我多年之后还是从前那个少年!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MyBatis原理(四):MyBatis中代理模式的运用
问题先来思考几个问题:为什么我们在mybatis中只需要写一个dao层接口就可以直接调用方法,返回数据库查询结果呢?一、JDK动态代理先说出答案,MyBatis是使用JDK动态代理来设计的:利用java.lang.reflect.Proxy对象实现,底层用到其实是反射。被代理对象必须实现接口(因为java类是单继承的,动态代理类在被创建后继承了Proxy类,所以目标对象必须实现接口,其实跟静态代理的条件差不多,只不过通过反射,很多东西可以动态执行,不需要手写) static Obje原创 2020-08-18 00:00:39 · 878 阅读 · 0 评论 -
MyBatis学习(三):MyBatis原理
阅读本文默认您对mybatis有一定的认识,所以在此一些概念性的东西就不贴了,以一个查询为例,复现MyBatis如何通过封装和动态代理调用底层JDBC代码,在此期间经历了什么。需要注意的点:对于mybatis使用的查询方式和类型的实现类,这里使用的是SimpleXXXXXX,不同的实现类有不同的实现方式 主要介绍使用sqlSession执行查询时,底层代码流转,使用mapper方法查询的放到动态代理中,因为底层也是使用的sqlSession。一、MyBatis如何执行一条sql?先来看看我们原创 2020-08-02 17:52:00 · 244 阅读 · 2 评论 -
Mybatis学习(一):入门
一、简介MyBatis前身是iBATIS,是一款优秀的支持自定义SQL查询、存储过程和高级映射的持久层框架。消除了几乎所有JDBC代码和参数的手动设置,以及结果集的检索。MyBatis可以使用XML或注解进行配置和映射,MyBatis通过将参数映射到配置的SQL形成最终执行的SQL语句,最后将执行结果映射成java对象返回。与其他ORM(对象关系映射)框架不同,MyBatis没有将java...原创 2019-03-17 17:59:48 · 280 阅读 · 0 评论 -
Mybatis学习(二):MyBatis代码生成器
使用mybatis代码生成器,须先在数据库中创建相应的表。一、导入依赖在pom.xml中加入如下依赖:<!--mybatis生成器--> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-gene...原创 2019-04-02 15:29:43 · 421 阅读 · 0 评论 -
mybatis报错:org.apache.ibatis.exceptions.PersistenceException
mybatis获取sqsession报错org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession.### Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Caus...原创 2019-04-14 16:39:36 · 729 阅读 · 0 评论 -
MyBatis学习:一、二级缓存
为什么要是用缓存使用缓存可以使应用更快的获取数据,避免频繁的数据库交互,尤其是在查询越多,缓存命中率越高的情况下,使用缓存的作用就很明显。mybatis缓存源码分析一、一级缓存也叫本地缓存。存在与sqlsession的生命周期中,在同一个sqlsession查询时,MyBatis会把执行的方法和参数通过算法生成缓存的键值,将键值和查询结果存储到Map对象中。如果同一个sqlsess...原创 2019-04-14 20:24:15 · 302 阅读 · 0 评论 -
Mybatis:update、delete、insert操作返回-2147482646
一、解决方案:产生此现象的原因是因为mybatis配置文件中的这样一个配置<!-- 配置一个可以执行批量的sqlSession --><bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg name="sqlSessionFactor...原创 2019-08-14 14:02:51 · 909 阅读 · 0 评论