![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mybatis
猪脚踏浪
这个作者很懒,什么都没留下…
展开
-
@GeneratedValue 四种标准用法为TABLE,SEQUENCE,IDENTITY,AUTO
一、JPA通用策略生成器 JPA提供四种标准用法,由@GeneratedValue的源代码: @Target({METHOD,FIELD}) @Retention(RUNTIME) public @interface GeneratedValue{ GenerationType strategy() default AUTO原创 2018-02-24 23:56:49 · 21864 阅读 · 2 评论 -
Mybatis 之 SqlSessionFactory
基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先定制的 Configuration 的实例构建出 SqlSessionFactory 的实例。一.原创 2017-08-24 00:55:00 · 1340 阅读 · 0 评论 -
Spring-MyBatis 之 MapperScannerConfigurer
如果有成百上千个Mapper接口,那我们也没有必要在 Spring 的配置文件中注册所有的映射器。相反,你可以使用一个 MapperScannerConfigurer , 它 将 会 查 找 类 路 径 下 的 映 射 器 并 自 动 将 它 们 创 建 成 MapperFactoryBean。要创建 MapperScannerConfigurer,可以在 Spring 的配置中添加如下代码:原创 2017-09-09 23:38:34 · 1203 阅读 · 0 评论 -
Spring-MyBatis 之 MapperFactoryBean
为了代替手工使用 SqlSessionDaoSupport 或 SqlSessionTemplate 编写数据访问对象 (DAO)的代码,MyBatis-Spring 提供了一个动态代理的实现:MapperFactoryBean。这个类 可以让你直接注入数据映射器接口到你的 service 层 bean 中。当使用映射器时,你仅仅如调 用你的 DAO 一样调用它们就可以了,但是你不需要编写任何 D原创 2017-09-09 14:03:19 · 1064 阅读 · 0 评论 -
Spring-MyBatis 之 SqlSessionFactoryBean
在基本的 MyBatis 中,session 工厂可以使用 SqlSessionFactoryBuilder 来创建。而在 MyBatis-Spring 中,则使用 SqlSessionFactoryBean 来替代。Spring 的 XML 配置文件: SqlSessionFactoryBean这个类实现了三个接口,一个是InitializingBean,原创 2017-09-09 16:27:15 · 1739 阅读 · 0 评论 -
mybatis的作用域(Scope)和生命周期
SqlSessionFactoryBuilder这个类可以被实例化、使用和丢弃,一旦创建了 SqlSessionFactory,就不再需要它了。因此 SqlSessionFactoryBuilder 实例的最佳作用域是方法作用域(也就是局部方法变量)。你可以重用 SqlSessionFactoryBuilder 来创建多个 SqlSessionFactory 实例,但是最好还是不要让其一直存在原创 2017-08-24 01:27:11 · 1284 阅读 · 0 评论 -
SqlSession 和 Mapper 到底执行了什么操作
操作1SqlSession session = sqlSessionFactory.openSession();try { Blog blog = (Blog) session.selectOne("org.mybatis.example.BlogMapper.selectBlog", 101);} finally { session.close();}操作2SqlSes原创 2017-08-24 01:24:14 · 1923 阅读 · 1 评论 -
MyBatis Generator之IntrospectedTable
org.mybatis.generator.api.IntrospectedTableIntrospectedTable是MBG提供的一个比较基础的扩展类,相当于可以重新定义一个runtime,同时,IntrospectedTable也是一个比较低级的扩展点,比较适合做低级的扩展,比如想使用FreeMarker或者Velocity来生成代码(这个也是我们后面想要的);如果你要通过继承I原创 2017-08-27 19:20:29 · 5025 阅读 · 0 评论 -
Mybatis 之 SqlSession
从 Mybatis 之 SqlSessionFactory http://blog.csdn.net/zsg88/article/details/77514475一文中,我们看到SqlSession在SqlSessionFactory的实现类DefaultSqlSessionFactory中被创建: private SqlSession openSessionFromDataSourc原创 2017-09-10 10:53:27 · 287 阅读 · 0 评论 -
Mybatis 之 构造Mapper (MapperProxy)
我们在代码中使用:UserMapper userMapper = sqlSession.getMapper(UserMapper.class);查看DefaultSqlSession的getMapper方法: @Override public T getMapper(Class type) { return configuration.getMapper(typ原创 2017-09-10 12:04:40 · 1437 阅读 · 0 评论 -
Mybatis xml 写sql如何判断集合的size
在mybtis的映射文件中判断集合大小 list.size 例子如下: if test="groupIds != null and groupIds.size>0"> and (group_id inforeach collection="groupIds" index="index" item="item" open="(" separator=","原创 2017-12-07 11:02:52 · 7759 阅读 · 0 评论 -
mybatis 打印SQL语句
方法一:在mybatis-config.xml中配置加一个settingxml version="1.0" encoding="UTF-8"?>DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-c原创 2017-11-27 13:43:10 · 4889 阅读 · 1 评论 -
使用MyBatis查询 返回类型为int,但是当查询结果为空NULL,报异常的解决方法
使用MyBatis查询 返回类型为int,但是当查询结果为空NULL,会报异常。例如: select id="getPersonRecordId" parameterType="java.lang.String" resultType="int"> select role_id from p_person_role where stffe_id = #{s原创 2017-10-28 23:19:44 · 5413 阅读 · 0 评论 -
Mybatis 之 ParameterHandler
在StatementHandler使用prepare()方法后,接下来就是使用ParameterHandler来设置参数,让我们看看它的定义:package org.apache.ibatis.executor.parameter;import java.sql.PreparedStatement;import java.sql.SQLException;/** * A par原创 2017-09-11 22:39:54 · 2972 阅读 · 0 评论 -
Mybatis 之 ResultSetHandler
在PreparedStatementHandler中的query()方法中,用ResultSetHandler来完成结果集的映射。public List query(Statement statement, ResultHandler resultHandler) throws SQLException { PreparedStatement ps = (PreparedSta原创 2017-09-26 21:57:06 · 1400 阅读 · 0 评论 -
Mybatis 之 StatementHandler
0原创 2017-09-11 00:19:07 · 649 阅读 · 0 评论 -
Mybatis 之 Executor
DefaultSqlSession是SqlSession的实现类。我们来看一个具体的实现方法:@Override public List selectList(String statement, Object parameter, RowBounds rowBounds) { try { MappedStatement ms = configuration.getMa原创 2017-09-10 16:32:56 · 393 阅读 · 0 评论 -
Mybatis 之 MapperMethod
从 Mybatis 之 构造Mapper (MapperProxy) http://blog.csdn.net/zsg88/article/details/77921009 一文中我们已经知道UserMapper userMapper = sqlSession.getMapper(UserMapper.class); 返回的其实是一个MapperProxy代理类org原创 2017-09-10 14:36:50 · 1405 阅读 · 0 评论 -
MyBatis Generator插件之SerializablePlugin
org.mybatis.generator.plugins.SerializablePlugin在generatorConfig.xml中加上配置:运行MBG,生成Userinfo类,我们发现和不加SerializablePlugin插件之前生成的类相比较区别如下:public class Userinfo implements Serializable { ......原创 2017-08-27 18:08:31 · 4914 阅读 · 1 评论 -
MyBatis Generator插件之MapperConfigPlugin
org.mybatis.generator.plugins.MapperConfigPlugin在generatorConfig.xml中加上配置: 这个插件的运行必须要配置targetPackage和targetProject两个参数,所以我们可以通过这个插件的代码阅读,学习到参数的使用,并且学到在MBG中对文件路径和package的使用;原创 2017-08-27 15:35:17 · 1379 阅读 · 0 评论 -
mybatis的 like模糊查询的安全写法
mysql like的写法: 一: like concat('%',#{param},'%') 二: like '%${param}%' 推荐使用第一种,可以避免sql注入。原创 2017-04-13 00:31:04 · 831 阅读 · 0 评论 -
mybatis xml中的大于、小于等转译字符
xml特殊符号转义写法 < > > <> & & ' ' " "也可以使用符号进行说明,将此类符号不进行解析原创 2017-04-13 00:28:44 · 1741 阅读 · 0 评论 -
一个通用的逗号分隔字符串转成各种数组的TypeHandler
package org.jstudioframework.mybatis.type;import org.apache.ibatis.type.BaseTypeHandler;import org.apache.ibatis.type.JdbcType;import java.lang.reflect.Array;import java.sql.CallableStatement;i原创 2017-03-13 13:35:20 · 4071 阅读 · 1 评论 -
mybatis xml中的数组
[Ljava.lang.Integer[Ljava.lang.Integer原创 2017-03-22 23:21:19 · 3318 阅读 · 0 评论 -
MyBatis的foreach语句
foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。foreach元素的属性主要有item,index,collection,open,separator,close。item表示集合中每一个元素进行迭代时的别名,index指定一个名字,用于表示在迭代过程中,每次迭代到的位置,open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔符,cl原创 2017-03-22 15:54:04 · 249 阅读 · 0 评论 -
Mybatis Generator配置说明
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><!-- 可以用于加载配置项或者配置文件,在整个配置文件中就可以使用$原创 2017-03-12 01:37:56 · 206 阅读 · 0 评论 -
MyBatis TypeHandler配置
MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,或从结果集中取出一个值时,都会用类型处理器将获取的值以合适的方式转换成 Java 类型。Mybatis默认为我们实现了许多TypeHandler, 当我们没有配置指定TypeHandler时,Mybatis会根据参数或者返回结果的不同,默认为我们选择合适的TypeHandler处理。我们怎么配置一个自定义Typ原创 2017-03-28 13:47:24 · 1885 阅读 · 0 评论 -
MyBatis中jdbcType和javaType的映射关系
JDBC Type Java Type CHAR String VARCHAR String LONGVARCHAR String NUMERIC java.math.BigDecimal DECIMAL java.math.BigDecim原创 2017-03-09 23:24:46 · 3548 阅读 · 0 评论 -
foreach 是传入参数是 Set<Long[]>时,数据循环都是同样数据的问题
if test="organizationJobIds!=null and organizationJobIds.size()!=0"> foreach collection="organizationJobIds" index="index" item="item"> or (organization_id = #{item[0]} and job_id = #{item原创 2016-02-25 04:12:32 · 1718 阅读 · 0 评论 -
mybatis #{…}与${…}差异小议
MyBatis官方文档http://code.google.com/p/mybatis/wiki/faq)对两者的描述是:#{…}是一个参数标记,而${…}只是简单的字符串替换。一般而言,为避免SQL注入攻击,传递参数应使用#{…}方式,因为这样MyBatis会处理好特殊字符转义的问题;但在SQL语句的某些地方,又不能使用#{…}方式。上述文档举出的例子是不能用这种方式指定表名,而根据我们的经验,原创 2017-04-13 23:31:20 · 336 阅读 · 0 评论 -
mybatis参数映射
mybatis参数映射(?)规则非@Param注解参数时可使用 #{参数位置[0..n-1]}或者 #{param[1..n]}如果参数类型是自定义对象(bean)时,只需加上.对象属性即可 #{参数位置[0..n-1].对象属性} #{param[1..n].对象属性}特别的,如果非注解参数只有一个时,可使用 #{任意字符}转载 2017-04-13 23:34:58 · 440 阅读 · 0 评论 -
MyBatis Generator 配置详解
MyBatis Generator中文文档MyBatis Generator中文文档地址:http://mbg.cndocs.tk/该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看中文版的文档的也会有一定的障碍,所以本章根据该中文文档以及实际应用,使用通俗的语言来讲解详细的配置。本文中所有节点的链接都是对应的中文文档地址,可以点击查看详细信转载 2017-08-27 11:40:46 · 290 阅读 · 0 评论 -
MyBatis Generator插件之ToStringPlugin
org.mybatis.generator.plugins.ToStringPlugin示例使用的DDL为:CREATE TABLE `userinfo` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`userName` varchar(255) DEFAULT NULL,`password` varchar(255) DEFAULT原创 2017-08-27 15:01:34 · 2130 阅读 · 0 评论 -
MyBatis Generator的内置插件
org.mybatis.generator.plugins.CachePlugin这个插件是一个挺有用的插件,用来生成在XML中的元素(这个插件只针对MyBatis3/MyBatis3Simple有效哈);很显然,这个插件需要一些配置,支持的配置属性有:cache_eviction,cache_flushInterval,cache_readOnly,cache_size,cache_ty原创 2017-08-27 11:17:48 · 1394 阅读 · 0 评论 -
MyBatis Generator Plugin 详解
MyBatis Generator可以用Plugin在生成Java和XML文件过程中修改或者添加内容;Plugin必须实现org.mybatis.generator.api.Plugin接口,MBG提供了一个适配器org.mybatis.generator.api.PluginAdapter,一般情况下只需要继承这个适配器即可。一。Plugin 的生命周期MBG初始化和生成的过程中原创 2017-08-27 10:54:53 · 1538 阅读 · 0 评论 -
MyBatis Generator关于注释的生成
mybatis Generator生成代码的时候在Mapper和mapper.xml文件中生成的一大堆注解。mybatis generator是提供了配置注解的能力,在generatorConfig.xml中加上配置: suppressDate是去掉生成日期那行注释;suppressAllComments是去掉所有的注解;comme原创 2017-08-27 12:08:30 · 4366 阅读 · 0 评论 -
Mybatis类型转换TypeHandler介绍
1.1 目录1.2 建立TypeHandler1.2.1 TypeHandler接口1.2.2 BaseTypeHandler抽象类1.3 注册TypeHandler1.4 Mybatis自动获取TypeHandler1.5 Mybatis中自动注册的TypeHandler 1转载 2017-03-13 13:30:54 · 704 阅读 · 0 评论 -
MyBatis中Like语句中使用bind标签
select id,sex,age,username,password from user where username LIKE #{pattern}原创 2017-05-12 13:34:20 · 5341 阅读 · 3 评论 -
MyBatis传入参数的问题
一、单个参数 1、基本数据类型 (1)直接使用 List tests(long id); select * from t_charge_rule t where t.id = #{id} #{}中的参数名与方法中的参数名一致 (2)使用注解 List tests(转载 2017-04-14 10:30:10 · 328 阅读 · 0 评论 -
org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()Ljava/lang/Integer
Intellij Idea 用maven整合spring和mybatis,启动web应用,点击网页包错误严重: Servlet.service() for servlet [spring] in context with path [] threw exception [Filtered request failed.] with root causejava.lang.AbstractMe原创 2017-04-14 10:21:32 · 822 阅读 · 0 评论