Mybatis
ldh_lyf
这个作者很懒,什么都没留下…
展开
-
Mybatis源码编译
源码下载:https://github.com/mybatis/mybatis-3.git按tags下载,下载需要的mybatis-parent:https://github.com/mybatis/parentmybatis压缩包解压,修改pom文件<parent> <groupId>org.mybatis</groupId> <artifactId>mybatis-parent</artifactId> .原创 2022-04-27 18:25:36 · 2382 阅读 · 0 评论 -
mybatis中判断等于字符串的条件怎么写
因为mybatis映射文件,是使用的ognl表达式,ognl是java语言(强类型语言),会把‘X’解析成字符,而不是字符串。所以比较字符串相等使用''是不正确的:<if test="name !=null and name != 'XXX'">要使用以下的比较方式:<if test='name !=null and name != "XXX"'>或<if test="name !=null and name != 'XXX'.toString()"&g原创 2020-11-07 19:45:25 · 3210 阅读 · 0 评论 -
mybatis向动态表名,动态属性表中插入数据,更新数据
1、在向动态表中插入数据后,要返回主键id,需要建实体类。(若是不需要返回主键,则不需要建实体类)package com.lyf.entitypublic class InsertMao{ //主建 private int id; //表名 private String tableName; //字段和字段值 private Map<String,String> params;}新增sql: <insert id="insertInfo" para.原创 2020-09-21 21:18:21 · 2424 阅读 · 1 评论 -
mybatis代码生成器配置文件解析
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-confi...原创 2020-04-18 13:09:53 · 203 阅读 · 0 评论 -
通用mapper generator 自动生成代码插件
专用代码生成器1.使用Java编码方式运行MBG使用这种方式,需要引入 MBG 的依赖,同时项目中应该已经有通用 Mapper 的依赖了。<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core --><dependency> <...原创 2018-07-08 08:51:46 · 7737 阅读 · 0 评论 -
mybatis多个入参,不同类型
当调用接口:public List<Message> getMessage(String company,List<Integer> types);userMapper.xml的书写应该为:<select id="getMessage" resultType="Message">SELECT * FROM op_message m...原创 2018-09-04 13:12:51 · 2053 阅读 · 0 评论 -
Mybatis动态标签
if 标签可用在许多类型的 SQL 语句中,我们以查询为例。首先看一个很普通的查询:<!-- 查询用户列表,like用户名称 --> <select id="getUserListLikeName" parameterType="User" resultMap="userResultMap"> SELECT * from user u WHER...原创 2018-08-03 15:37:52 · 431 阅读 · 0 评论 -
JdbcType类型和Java类型的对应关系和tinyint 问题
JDBC Type Java Type CHAR String VARCHAR String LONGVARCHAR String NUMERIC java.math.BigDecimal DECIMAL java.math.BigDecimal BIT boolean BOOLEAN boolean ...原创 2018-08-03 14:26:25 · 11320 阅读 · 0 评论 -
mybatis分页
在 MyBatis 配置 xml 中配置拦截器插件:<!-- plugins在配置文件中的位置必须符合要求,否则会报错,顺序如下: properties?, settings?, typeAliases?, typeHandlers?, objectFactory?,objectWrapperFactory?, plugins?, ...原创 2018-08-06 15:21:10 · 598 阅读 · 0 评论 -
mybatis拦截器之分页插件
拦截器的一个作用就是我们可以拦截某些方法的调用,我们可以选择在这些被拦截的方法执行前后加上某些逻辑,也可以在执行这些被拦截的方法时执行自己的逻辑而不再执行被拦截的方法。Mybatis拦截器设计的一个初衷就是为了供用户在某些时候可以实现自己的逻辑而不必去动Mybatis固有的逻辑。打个比方,对于Executor,Mybatis中有几种实现:BatchExecutor、ReuseExecutor、S...转载 2018-09-21 11:46:36 · 950 阅读 · 0 评论 -
mybatis中oracle实现分页效果
首先当我们需要通过xml格式处理sql语句时,经常会用到< ,<=,>,>=等符号,但是很容易引起xml格式的错误,这样会导致后台将xml字符串转换为xml文档时报错,从而导致程序错误。 这样的问题在iBatiS中或者自定义的xml处理sql的程序中经常需要我们来处理。其实很简单,我们只需作如下替换即可避免上述的错误:原符号 < <=...原创 2018-11-22 12:15:27 · 606 阅读 · 1 评论 -
mybatis xml中使用in的sql长度超过1000的解决办法
原来: 入参为List<String>WHERE name IS NOT NULL <if test="userids!=null and userids.size()>0" > AND DEVICE_ID in <foreach collection="user...原创 2019-04-16 13:48:22 · 3896 阅读 · 2 评论 -
mybatis查询当天,当周,当月时间格式转换和计算百分比
<![CDATA[ ]]>表示不需要转义时间格式转换:<if test="date eq 'Day' "> AND to_days(STR_TO_DATE(time,"%Y年%m月%d日 %H时%i分%s秒")) = to_days(now()) </if> <if test="date eq 'Wee...原创 2019-06-12 17:53:39 · 3214 阅读 · 0 评论 -
通用mapper数据库映射
数据库映射通用 Mapper 中,默认情况下是将实体类字段按照驼峰转下划线形式的表名列名进行转换。例如实体类的 userName 可以映射到表的 user_name 上。如果想要修改默认的转换方式,可以在后续的配置中,修改 style 全局配置。数据库映射主要涉及到一些注解和全局配置,这一节中会介绍所有注解,后面章节会有配置的介绍。通用 Mapper 默认使用了几个简单的...原创 2018-07-14 10:30:03 · 8985 阅读 · 5 评论 -
通用mapper枚举字段和typehandler
枚举类:public enum StateEnum { disabled, enabled,}MyBatis 提供的枚举处理器有 EnumOrdinalTypeHandler(数据库存的是枚举索引值,查询的时候根据索引值获取相对于的值)和EnumTypeHandler(数据库存的是枚举的值)这里打算用 MyBatis 提供的 EnumOrdinalTypeHandl...原创 2019-07-06 10:14:50 · 2366 阅读 · 0 评论 -
mybatis批量修改,新增和删除及新增主键类型问题
批量更新:一条sql语句来批量更新所有数据,下面直接看一下在mybatis中通常是怎么写的(去掉mybatis语法就是原生的sql语句了,所有就没单独说sql是怎么写的)<update id="updateBatch" parameterType="java.util.List"> update mydata_table set status= &...原创 2018-08-01 17:15:39 · 2076 阅读 · 0 评论 -
mybaits调用mysql存储函数和存储过程
//定义存储过程create or replace procedure pag_add(p1 varchar2,p2 varchar2,p3 out varchar2) as begin p3:=p1+p2; end;//定义存储函数DELIMITER $$CREATE FUNCTION fun_add(p1 INT ,p2 INT) RETU...原创 2018-07-21 10:42:33 · 901 阅读 · 0 评论 -
mybatis内的一些区别
#{}和${}#{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换。#{}可以有效防止sql注入。 #{}可以接收简单类型值或pojo属性值。 如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称。${}表示拼接sql串,通过${}可以将parameterType 传入的原创 2017-09-12 20:11:01 · 176 阅读 · 0 评论 -
mybatis和hibernate
Mybatis和hibernate不同,它不完全是一个ORM框架,因为MyBatis需要程序员自己编写Sql语句。mybatis可以通过XML或注解方式灵活配置要运行的sql语句,并将java对象和sql语句映射生成最终执行的sql,最后将sql执行的结果再映射生成java对象。 Mybatis学习门槛低,简单易学,程序员直接编写原生态sql,可严格控制sql执行性能,灵活度高,非常适合对原创 2017-09-12 20:09:00 · 293 阅读 · 0 评论 -
mybatis默认别名
别名映射的类型_byte byte _long long _short short _int int _integer int _double double _float原创 2017-09-12 19:59:36 · 3283 阅读 · 0 评论 -
mybatis开发模式
原始Dao开发方法需要程序员编写Dao接口和Dao实现类和mapper映射文件。(可以继承SqlSessionDaoSupport通过getSqlSession()获得sqlSession,也可以注入SqlSessionFactory)SqlSession的使用范围SqlSession中封装了对数据库的操作,如:查询、插入、更新、删除等。SqlSession通过SqlSessionFa原创 2017-09-12 19:52:27 · 285 阅读 · 0 评论 -
mybatis映射配置文件
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">test作区别时 使用原始Dao开发 使用Mapper代理开发 namespace: 对此接口进行绑定 --> id:findUser原创 2017-09-12 19:44:36 · 264 阅读 · 0 评论 -
mybatis核心配置文件
PUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> -->原创 2017-09-12 19:40:03 · 445 阅读 · 0 评论 -
mybatis
1、mybatis配置 SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息。mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。2、通过mybatis环境等配置信息构造SqlSessionFactory即会话工厂3、由会话工厂创建sqlSes原创 2017-09-12 19:35:46 · 170 阅读 · 0 评论 -
mybatis之基本语法和一对多等配置
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!-- 命名空间 test作区别时 使用原始Dao开发 使用Ma原创 2017-09-12 20:33:22 · 524 阅读 · 0 评论 -
mybatis和spring整合
applicationContext.xml配置 xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/原创 2017-09-12 20:16:47 · 166 阅读 · 0 评论 -
mybatis解决jdbc的问题
1、数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库连接池可解决此问题。解决:在SqlMapConfig.xml中配置数据连接池,使用连接池管理数据库链接。2、Sql语句写在代码中造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。解决:将Sql语句配置在XXXXmapper.xml文件中与java代码分离。3、向原创 2017-09-12 20:13:07 · 490 阅读 · 0 评论 -
通用mapper配置项
由于数据库存在各种各样的差异,因此有些时候要做一些必要的配置。此外通用 Mapper 还提供了一些控制参数和一些和主键策略相关的参数。 文档提供的参数基于 4.0 及以后的版本 有些参数仍然存在,但是由于不推荐使用,这里不会介绍(如 UUID)。提醒:看配置前,一定要看第二章的对象关系映射,否则不会明白这些参数的用途。参数的配置方式在第一章中,针对不同的集成环境都写了详细的文...原创 2018-07-09 20:08:19 · 5170 阅读 · 1 评论 -
通用mapper扩展通用接口和Example 用法
扩展通用接口selectAll 方法首先定义接口:@RegisterMapperpublic interface SelectAllMapper<T> { /** * 查询全部结果 * * @return */ @SelectProvider(type = MySelectProvider.class, method ...原创 2018-07-09 20:08:56 · 13413 阅读 · 0 评论 -
通用mapper主键策略
2.3 主键策略首先主键策略和数据库关系很大,有些数据库支持主键自增,而有些数据库只能通过序列来获得。新增的@KeySql 注解用于替换 @GeneratedValue 注解,因此 @KeySql 能以更简单方式实现原来的功能,下面的示例都先使用 @KeySql 进行配置,然后在使用 @GeneratedValue,大家可以自己选择。2.3.1 JDBC 支持通过 getGenerat...原创 2018-07-14 10:28:40 · 7610 阅读 · 1 评论