MyBatis
文章平均质量分 82
小灰灰-58
昨夜西风凋碧树,独上高楼,望尽天涯路。。
展开
-
Mybatis自定义TypeHandler
我们可以自己实现这个BigDecimal的类型转换器,比如我这里自定义了一个BigDecimal类型转换器,默认将查询的结果小数点后面的0去掉。这样,Mybatis就会在需要处理MyCustomType类型的字段时,使用我们自定义的TypeHandler进行类型转换。在Mybatis的配置文件中,我们需要注册自定义的TypeHandler。其实Mybatis默认提供了一些基本类型的类型转换器,我们可以参照这些类型转换器去自定义。然后在Mybatis数据源的配置类中,注入Handler的包扫描路径就可以了。原创 2024-05-01 11:42:58 · 651 阅读 · 1 评论 -
Mybatis一级缓存有时有而有时没有的问题
1.在Mybatis执行增加、修改或者删除操作时,会清空当前的sqlSession的缓存2.如果在执行一系列查询和更新操作时,虽然在中间的某个步骤可能执行了更新操作,清空过缓存,但是要注意是不是与之前的sqlSession不一样,如果不一样,那么原来sqlSession里的缓存还在,这种情况可以从调试日志中看到比如等日志。原创 2024-03-30 10:14:36 · 664 阅读 · 0 评论 -
从嵌套事务的日志看MyBatis的sqlSession生命周期
这里先执行一个查询,然后更新操作。查询的方法是一个事务A,后面执行更新操作的方法updateTest因为采用了声明式事务,会重新开启事务,这里记为是事务B。原创 2024-03-17 10:52:03 · 523 阅读 · 1 评论 -
MyBatis plus自动生成代码
这是官网中的说明:3.相关配置说明参考官网:MyBatis-Plus代码生成器配置#可选配置方法说明示例dbQuery(IDbQuery)数据库查询new MySqlQuery(),只在SQLQuery下生效schema(String)数据库 schema(部分数据库适用)mybatis-plustypeConvert(ITypeConvert)数据库类型转换器new MySqlTypeConvert(),只在SQLQuery下生效keyWords原创 2024-03-16 21:33:01 · 1043 阅读 · 0 评论 -
MyBatisPlus入门教程
MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window) 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。原创 2024-03-03 16:08:39 · 659 阅读 · 0 评论 -
MyBatis逆向工程——MyBatis基础之七
MyBatis的一个主要的特点就是需要程序员自己编写SQL,那么如果表太多的话,难免会很麻烦,所以MyBatis官方提供了一个逆向工程,可以针对单表自动生成MyBatis执行所需要的代码(包括mapper.xml,mapper.java,pojo)。一般在开发中,常用的逆向工程方式是通过数据库的表生成代码。原创 2024-01-01 15:03:58 · 736 阅读 · 0 评论 -
MyBatis缓存浅析——MyBatis基础之六
缓存是一种临时存储少量数据至内存或者是磁盘的一种技术.减少数据的加载次数,可以降低工作量,提高程序响应速度。缓存的重要性是不言而喻的。mybatis的缓存将相同查询条件的SQL语句执行一遍后所得到的结果存在内存或者某种缓存介质当中,当下次遇到一模一样的查询SQL时候不在执行SQL与数据库交互,而是直接从缓存中获取结果,减少服务器的压力;尤其是在查询越多、缓存命中率越高的情况下,使用缓存对性能的提高更明显。原创 2024-01-01 14:56:24 · 846 阅读 · 0 评论 -
MyBatis实现多表查询——MyBatis基础之五
resultMap中的常见属性属性描述property需要映射到JavaBean 的属性名称。javaTypeproperty的类型,一个完整的类名,或者是一个类型别名。如果你匹配的是一个JavaBean,那MyBatis 通常会自行检测到。column数据表的列名或者列别名。jdbcTypecolumn在数据库表中的类型。这个属性只在insert,update 或delete 的时候针对允许空的列有用。JDBC 需要这项,但MyBatis 不需要。原创 2024-01-01 12:57:53 · 782 阅读 · 0 评论 -
MyBatis常用动态SQL——MyBatis基础之四
经常遇到很多按照很多查询条件进行查询的情况,比如京东根据不同的条件筛选商品。其中经常出现很多条件不取值的情况,在后台应该如何完成最终的SQL语句呢?如果采用JDBC进行处理,需要根据条件是否取值进行SQL语句的拼接,一般情况下是使用StringBuilder类及其append方法实现,还是有些繁琐的。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。原创 2024-01-01 12:37:19 · 831 阅读 · 0 评论 -
MyBatis代理模式开发——MyBatis基础之三
前面已经使用MyBatis完成了对Emp表的CRUD操作,都是由SqlSession调用自身方法发送SQL命令并得到结果的,实现了MyBatis的入门。但是却存在如下在MyBatis中提供了另外一种成为**Mapper代理(或称为接口绑定)**的操作方式。在实际开发中也使用该方式。下面我们就是要Mapper代理的方式来实现对Emp表的CRUD操作吧,还有完成多个参数传递、模糊查询、自增主键回填等更多的技能实现。搭建好的项目框架如图所示,相比而言,增加了接口EmployeeMapper。原创 2024-01-01 11:31:36 · 797 阅读 · 0 评论 -
MyBatis普通模式开发——MyBatis基础之二
普通模式,也称为传统DAO模式,就是在传统DAO模式下,定义接口和实现类,如 interface EmpDao class EmpDaoImpl implements EmpDao. 在实现类中,用SQLSession对象调用 select insert delete update 等方法实现.目前极为少见.在传统模式下,我们需要知道SqlSession对象 实现CURD和 参数传递的处理。原创 2024-01-01 11:11:19 · 390 阅读 · 0 评论 -
MyBatis配置详解——MyBatis基础之一
在mybatis.cfg.xml中配置MyBatis所使用的具体日志实现。如果不指定将自动搜索。可能会搜到log4j,但是如果优先搜到了其他的日志实现呢,所以还是设置为好。这一来log4j就跑不了了。原创 2024-01-01 10:51:17 · 838 阅读 · 0 评论