
MyBatis
文章平均质量分 59
orm框架大哥大
诗人不写诗
当你足够努力时,全世界都会给你让路
展开
-
PageHelper原理
所以,不要给list重新赋值,否则最后PageInfo无法从Page中拿到分页值。mybatis提供插件功能,PageHelper使用这个插件机制。原创 2024-02-01 21:15:38 · 586 阅读 · 0 评论 -
Spring是如何接管MyBatis的
这里的接管从使用的角度出发,不会漫无目的的分析源码,首先我们分析抽象类SqlSessionDaoSupport,这个类支持编程人员以DAO层方式来开发数据访问层,编程人员的DAO层实现只要继承这个类就可以获取到SqlSession,进而可以进行数据操作,需要了解的是,这个类是mybatis-spring包提供的,也就是说是和Spring耦合的,当我们单独使用MyBatis时,是没有这个类的,我们来...原创 2018-07-09 18:12:53 · 620 阅读 · 0 评论 -
MyBatis如何管理数据库连接
这里讲述的相关信息是单纯MyBatis相关的,不涉及Spring,代码是基于mybatis-3.4.6,MyBatis之所以能够配置第三方的连接池,主要得益于java在数据库连接上作的规范接口,如javax.sql.DataSource,这个接口只有两个方法:public interface DataSource extends CommonDataSource, Wrapper ...原创 2018-07-09 00:32:23 · 6113 阅读 · 0 评论 -
MyBatis中SqlSessionFactoryBean的作用
在使用Spring+MyBatis的环境下,我们需要配值一个SqlSessionFactoryBean来充当SqlSessionFactory,这里我们要搞清楚的就是为什么SqlSessionFactoryBean为什么能在Spring IOC容器中以SqlSessionFactory的类型保存并被获取。 我们来看看SqlSessionFactoryBean的定义是怎样的:...原创 2018-07-10 22:46:17 · 32001 阅读 · 2 评论 -
MyBatis Generator使用
这里讲述的是在Maven环境下如何使用,pom全配置<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://ma...原创 2018-07-31 22:46:13 · 152 阅读 · 0 评论 -
Mybatis传递参数规则
1、多个基本数据类型public User selectUser(String name,String area);对应的Mapper.xml<select * from user where name = #{0} and area = #{1}> </select>其中#{0} 代表第一个参数,#{1}代表第二个参数,依次类推或者public U...原创 2019-09-19 00:20:58 · 734 阅读 · 0 评论 -
Mybatis判断空字符串
先说结论,如果使用正确,是不会产生任何问题的。大家各种疑惑,全是使用不当产生的。先说正确的使用方式,一般判空的方式就是,非String类型使用obj != null即可,String通常要加一个空串的判断obj != null and obj != '',如果入参类型对应的判断方式使用正确,不会有问题。但是有很多做事不认真的人,会把这两个用反,虽然没报错,但是逻辑却不是预想中的,错误的使用例子就是...原创 2019-08-25 20:12:21 · 20373 阅读 · 3 评论 -
Mybatis使用collection导致分页总数过多
前言,一对多关系的查询且要嵌套结果并要分页的实现本身就是个麻烦的事情。在mybatis中使用collection标签进行自动封装对象时,分页总数查询是比结果多的,因为记录折叠是发生在Java代码,由mybatis实现,所以如果使用了分页插件,分页总数就会比实际多,解决办法是使用子查询,不要连表,或者不使用分页插件,手动查询分页总数。还有一种办法是使用group_concat()函数聚合结果...原创 2019-05-25 14:46:45 · 5060 阅读 · 0 评论 -
Mybatis之ResultMap和ResultType
在写MyBatis mapper xml文件时,对于返回的数据会映射到对象中,ResultMap和ResultType和mapUnderscoreToCamelCase都是控制这种映射关系的,因为数据库字段命名和实体类property name未必对应,所以需要手动控制这种映射关系,mapUnderscoreToCamelCase配置是让数据库下划线命名方式能对应成驼峰命名,如数据库字段名user...原创 2019-04-07 20:02:14 · 1840 阅读 · 0 评论 -
MyBatis动态SQL
MyBatis的动态SQL比IBatis要更加强大,而且标签数量更少,用更少的元素完成了更好的工作。先来介绍<trim>,他能对sql进行适当的“修剪”,通常搭配<prefix>、<prefixOverrides>、<suffix>、<suffixOverrides>,他们是搭配使用的,prefixOverrides在条件成立情况下会被p...原创 2018-08-01 00:06:16 · 161 阅读 · 0 评论 -
Spring事务-Spring管理MyBatis事务
在原生MySQL命令中,或是在IBatis中,你可能会发现有startTransaction()之类的API提供出来给编程人员使用,而在MyBatis中,是没有这样的API的,MyBatis将这个操作集成到openSession()中了:public interface SqlSessionFactory { SqlSession openSession() SqlSession ope...原创 2018-07-31 11:31:28 · 838 阅读 · 1 评论 -
JDBC|IBatis和MyBatis的批量操作
IBatis和MyBatis的差别还是挺大的,但是变化的类通常还有对应的类型和方法,过渡时改变的只是类型,但是对于批量处理这一块的变化却是非常大的,很多API直接废弃,也没有新的API对应,导致IBatis升级到MyBatis在批量处理上的代码修改力度很大。先来看看JDBC批量数据处理的套路,首先我们可以看看数据库是否支持批量更新这种操作:DatabaseMetaData.supports...原创 2018-07-30 00:41:50 · 698 阅读 · 0 评论 -
MyBatis Configuration类
MyBatis在启动时会取读取所有配置文件,然后加载到内存中,Configuration类就是承载整个配置的类,我们先来看看一个MyBatis的主配置文件<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" ...原创 2018-07-05 17:54:59 · 2039 阅读 · 0 评论