MyBatis
墨予
乐于学习一切技术 技巧
展开
-
MyBatis之 PageHelper 做分页操作
PageHelper 是一个 做分页的插件。大大减少了开发中做分页的工作量。只需要导入两个包 便可以进行 数据的分页操作。下面做一个简单的分页 实验。sql语句<select id="queryAll" resultType="org.cjr.entity.Person"> select * from Person </select>接口...原创 2020-01-16 19:16:29 · 138 阅读 · 0 评论 -
Mybatis 批量操作 的优化
如果我们要增加十万条数据 的时候 就面对着 执行速度 低 的问题,Mybatis 则为我们提供了 一个批量操作的方式 可以大大降低 我们的执行时间。 //增加 public static void addStudent() throws IOException { //加载配置文件 Reader reader = Resources.getResourceAsRe...原创 2020-01-14 09:42:44 · 1095 阅读 · 0 评论 -
MyBatis Plugin 拦截器
MyBatis自身提供了接口,支持在映射语句的某一点进行拦截做一些处理。所以在我们使用mybatis这个框架来做一些数据的持久化方面的操作的时候,有时候可能根据业务需要,在执行一次操作的过程中,做一些定制化操作。Mybatis自定义插件针对Mybatis四大对象(Executor、StatementHandler 、ParameterHandler 、ResultSetHandler )进行拦...原创 2020-01-14 09:22:43 · 329 阅读 · 0 评论 -
MyBatis 创建逆向工程,实现自动生成 mapper.java、mapper.xml、pojo…
xml模板文件<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/...原创 2020-01-12 14:43:31 · 251 阅读 · 1 评论 -
MyBatis 之 trim标签 实现模糊查询
当我们需要进行模糊查询时候 一般会遇到一些问题例如 sql 拼接时候 出现了 select * from student <if test="sname !=null and sname !=''"> and sname like '%${sname}%' </if> <if test="sage !=null and sag...原创 2020-01-12 10:49:17 · 547 阅读 · 0 评论 -
MyBatis 中@MapKey注解的使用
当我们需要将多个数据 存放在一个HashMap中的时候 我们就可以使用@MapKey注解。<select id="queryStudentsByHashMap" resultType="HashMap"> select sno "no", sname "name" from student </select>@MapKey("no") HashMap&...原创 2019-12-15 09:53:56 · 4142 阅读 · 0 评论 -
MyBatis 在Oracle中 报错Other类型的解决方案 jdbcTypeForNull
只要在mybatis-config.xml 中添加 这条 代码即可<settings><setting name="jdbcTypeForNull" value="NULL" /></settings>原创 2019-12-15 09:10:45 · 993 阅读 · 0 评论 -
MyBatis 实现自增长
添加数据时,针对id设主键,避免唯一约束,如何实现自动增长1.第一种方式:在oracle中.a、添加序列表create sequence seqincrement by 1 //自增1start with 1 //初始1b、在映射文件中找到insert元素输入以下内容,如:<insert id="insertStudentById" paramete...原创 2019-12-10 18:11:52 · 1059 阅读 · 0 评论 -
MyBatis 之Ehcache 二级缓存的配置 和 实现
Ehcache是一个成熟的缓存框架,你可以直接使用它来管理你的缓存。下面介绍 它与MyBatis的整合。第一步:jar包的配置第二步:写配置文件Ehcache.xml<?xml version="1.0" encoding="UTF-8"?><ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst...原创 2019-12-08 15:39:26 · 146 阅读 · 0 评论 -
MyBatis 一级缓存 二级缓存
缓存为了减轻数据库访问量;一级比二级多了一级一级缓存请求内存,没有的话在请求数据库;二级缓存请求内存,没有在请求二级缓存区,没有在请求数据库;实践:一、创建一个POJO Bean并序列化 由于二级缓存的数据不一定都是存储到内存中,它的存储介质多种多样,所以需要给缓存的对象执行序列化。(如果存储在内存中的话,实测不序列化也可以的。)public class St...原创 2019-12-06 19:13:20 · 60 阅读 · 0 评论 -
MyBatis 之 延迟加载/懒加载 的实现
1、需求:查询订单信息,有时候需要关联查出用户信息。 第一种方法:我们直接关联查询出所有订单和用户的信息select * from orders o ,user u where o.user_id = u.id; 分析: ①、这里我们一次查询出所有的信息,需要什么信息的时候直接从查询的结果中筛选。但是如果订单和用户表都比较大的时候,这种关联查询肯定比较耗时。 ...原创 2019-12-05 13:21:19 · 133 阅读 · 0 评论 -
MyBatis 之log4j 日志文件的配置
第一步:导入 Jar包第二步:config.xml中配置第三步:编写日志文件:DEBUG 处有四个等级DEBUG<INFO<WARN<ERROR 写debug就会显示所有信息。stdout 代表输出到控制台...原创 2019-12-05 13:06:29 · 525 阅读 · 0 评论 -
MyBatis 之 一对多 关联查询
MyBatis 中进行 一对多 关联查询的时候我们以以一个例子为例: 查询一个班级里的所有学生配置:<!-- 一对多 --> <select id="queryClassAndStudent" parameterType="int" resultMap="class_student_map"> select c.*,s.* fro...原创 2019-12-04 15:56:53 · 119 阅读 · 0 评论 -
MyBatis 一对一关联查询
当我们想要 多表查询的时候,例如 查 学生 的 学生卡 信息 我们有两种方法1. 让学生卡 继承 学生 的类<!-- 连接查询 一对一--> <select id="queryStudentByNoOO" parameterType="int" resultType="studentCard"> select s.*,c.* from student s...原创 2019-12-03 18:36:48 · 160 阅读 · 0 评论 -
MyBatis 动态sql
一、MyBatis动态语句分为4种元素:二、Mybatis动态sql语句使用方式、例子1、if元素,如下 <select id="selByName" resultType="yuan.yuanmybatis.entity.Account"> select id,name,created,updated from account where ...原创 2019-12-02 18:18:19 · 75 阅读 · 0 评论 -
MyBatis 查询 返回值为HashMap 类型 的数据。-- 也可以处理 (数据库表属性 和 变量名不一致的情况)
如果我们遇到 数据库表属性和 代码中的变量名不一致 的时候我们就可以使用Map来返回值例如我们数据库中 属性为ID 而我们的变量名为 no这时我们 按普通的查询就会出错;于是 便有和HashMap 来解决这一问题:xml中的配置<!-- 返回HashMap --> <select id="queryStudentByHashMap" resultT...原创 2019-12-01 19:29:40 · 1926 阅读 · 0 评论 -
Mybatis 使用HashMap 传参parameterType
parameterType指定HashMap传递输入参数,“#{}”和“${}”中自动识别Map的key,并替换参数SQL映射文件定义如下:传入的参数类型是HashMap <!--传递HashMap综合查询用户信息 --> <select id="selectUserByHashmap" parameterType="hashmap" resu...原创 2019-11-30 22:16:03 · 2712 阅读 · 0 评论 -
MyBatis ${} 和 #{}的区别 以及动态排序的实现
在我们操作MyBatis的时候,sql语句 输入参数时,需要用#{xx} 或 ${xx} 来传值例如查学生Id: <select id="queryStudentBySno" resultType="Student" parameterType="int"> select * from Student where id = #{id} </select>...原创 2019-11-30 11:00:00 · 449 阅读 · 0 评论 -
MyBatis 类型转换器
类型处理器(类型转换器)1.MyBatis自带一些常见的类型处理器int - number自定义MyBatis类型处理器java -数据库(jdbc类型)实体类Student : boolean stuSex true:男 false:女表student: number stuSex ...原创 2019-11-27 21:55:26 · 359 阅读 · 0 评论 -
MyBatis 起别名
全局配置文件中的标签:标签3: typeAliases 别名处理器 可以为java类型起别名 别名忽略大小写原来:<select id="getTeacherById" parameterType="integer" resultType="entity.Teacher">ctrl+左键就可以定位到该类 其实比较方便起了别名后就难找了注意:有个问题 type...原创 2019-11-27 21:16:52 · 880 阅读 · 0 评论 -
MyBatis 动态代理--解决namespace +id 的重复操作
在我们上一节 中实现crud的代码中,显然有一处的代码 感觉很啰嗦我们需要找xml中的namespace 又要 找其中的方法id 显然很麻烦。MyBatis就给我们提供了方法来解决这一问题:动态代理上面这就是动态代理,我们通过实现接口,然后就可以通过 点 来调用方法了,省去了 找namespace 和 id 的流程。下面我们来看看 操作流程。1.建一个接口类 ...原创 2019-11-26 13:43:27 · 1567 阅读 · 0 评论 -
MyBatis 实现 增删改查
今天来实现 mybatis 最基本的增删改查操作:依旧是 三步:1.config.xml 配置文件 2. mapper.xml 映射配置文件 3.测试首先1.config.xml 配置文件<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.or...原创 2019-11-25 13:13:10 · 103 阅读 · 0 评论 -
第一个MyBatis程序
开始学习MyBatis 今天记录一下第一个MyBatis程序第一步:配置Config.xml:数据库信息 和 加载映射文件:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://myba...原创 2019-11-24 11:17:51 · 144 阅读 · 0 评论