![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mybatis
涂家豪
这个作者很懒,什么都没留下…
展开
-
看程序学mybatis 基础篇1- 入门
平时我们都用JDBC访问数据库,除了需要自己写SQL之外,还必须操作Connection, Statement, ResultSet 这些其实只是手段的辅助类。 不仅如此,访问不同的表,还会写很多雷同的代码,显得繁琐和枯燥。那么用了Mybatis之后,只需要自己提供SQL语句,其他的工作,诸如建立连接,Statement, JDBC相关异常处理等等都交给Mybatis去做了,那些重复性的工作My...原创 2019-07-03 09:57:46 · 110 阅读 · 0 评论 -
看程序学mybatis 注解4 - 使用注解实现多对多
步骤 1 : 基于XML方式的多对多进行在基于XML方式的多对多的基础上,改造成为注解的方式步骤 2 : 效果步骤 3 : ProductMapper新增一个ProductMapper接口,提供 get方法package com.how2java.mapper; import org.apache.ibatis.annotations.Select; import com.ho...原创 2019-07-04 17:30:43 · 99 阅读 · 0 评论 -
看程序学mybatis 注解5 - 注解方式的动态SQL语句
步骤 3 : 基于手写SQL语句的注解CRUD把手写SQL语句的注解CRUD,修改为动态SQL语句方式。步骤 4 : CategoryDynaSqlProvider新增CategoryDynaSqlProvider,提供CRUD对应的SQL语句。这里的SQL语句使用SQL类的方式构建package com.how2java; import org.apache.ibatis.jdbc...原创 2019-07-04 17:33:51 · 78 阅读 · 0 评论 -
看程序学mybatis 相关概念1 - 开启LOG4J显示执行的SQL语句
步骤 1 : 开启日志有时候需要打印日志,知道mybatis执行了什么样的SQL语句,以便进行调试。这时,就需要开启日志,而mybatis自身是没有带日志的,使用的都是第三方日志,这里讲解如何开启log4j日志功能。步骤 2 : jar为了开启log4j,需要使用对应的jar包,并保存在e:\project\mybatis\lib目录下步骤 3 : 导入到项目把log4j的jar包导...原创 2019-07-04 17:51:42 · 87 阅读 · 0 评论 -
看程序学mybatis 相关概念2 - 事务管理
步骤 1: JDBC方式确保12行是另一个值是MANAGED,是交由容器管理,如weblogic等,不在本知识点讨论。<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/...原创 2019-07-04 17:56:15 · 71 阅读 · 0 评论 -
看程序学mybatis 相关概念3 - 延迟加载
步骤 1 : 基于注解方式的一对多基于注解方式的一对多 来学习延迟加载的配置办法步骤 2 : 加上日志为了观察到延迟加载前后,SQL语句的变化,加上日志步骤 3 : 只查询分类,不获取产品把27,28,29注释掉,只获取分类,不获取产品,执行后发现,获取产品的SQL语句也执行了package com.how2java; import java.io.IOException;...原创 2019-07-04 18:01:03 · 70 阅读 · 0 评论 -
看程序学mybatis 相关概念4 - 分页
步骤 1 : 增加100条catgory数据为了观察分页查询的效果,把分类表里的数据都删除掉,然后新增100个数据package com.how2java; import java.io.IOException;import java.io.InputStream;import java.util.List; import org.apache.ibatis.io.Resou...原创 2019-07-04 18:06:00 · 76 阅读 · 0 评论 -
看程序学mybatis 相关概念5 - PAGEHELPER
步骤 1 : PageHelper介绍PageHelper是一款犀利的Mybatis分页插件,使用了这个插件之后,分页开发起来更加简单容易。步骤 2 : jar包因为是第三方插件,所以需要额外的jar包:pagehelper-5.1.0-beta2.jar,jsqlparser-1.0.jar步骤 3 : 数据设置为100条为了观察分页查询的效果,把分类表里的数据都删除掉,然后新增100...原创 2019-07-04 18:14:30 · 143 阅读 · 0 评论 -
看程序学mybatis 相关概念6 - 一级缓存
步骤 1 : 在一个Session里查相同id的数据如图所示,在session1中查询两次id=1的Category对象。第一次会去数据库中取数据,但是第二次就不会访问数据库了,而是直接从session中取出来。package com.how2java; import java.io.IOException;import java.io.InputStream; import o...原创 2019-07-24 12:23:33 · 71 阅读 · 0 评论 -
看程序学mybatis 相关概念7 - 二级缓存
步骤 1 : 基于前一个知识点对一级缓存知识点进行改造,以支持二级缓存步骤 2 : 观察无二级缓存步骤 3 : 启动二级缓存11行新增一个段配置,以支持二级缓存<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//...原创 2019-07-24 12:28:38 · 67 阅读 · 0 评论 -
看程序学mybatis 相关概念8 - 单纯的MYBATIS整合C3P0数据库连接池
步骤 1 : 下载JAR包下载c3p0的jar包步骤 2 : 导入项目把jar包导入到项目中,导包办法:右键 project->properties->java build path->libaries->add external jars步骤 3 : 新建类C3P0DataSourceFactoryMybatis使用C3P0有点怪怪的,需要自己写个类继承Unp...原创 2019-07-24 12:31:42 · 85 阅读 · 0 评论 -
看程序学mybatis 相关概念9 - 查询总数
步骤 1 : 新增加方法统计总数没什么特别的,就是一条普通的查询SQL语句@Select(" select count(*) from category_ ")public int count();package com.how2java.mapper; import java.util.List; import org.apache.ibatis.annotations.Del...原创 2019-07-24 12:33:50 · 75 阅读 · 0 评论 -
看程序学mybatis 注解3 - 使用注解实现多对一
步骤 1 : 基于XML方式的多对一进行在XML方式的多对一的基础上,进行修改,以实现注解方式的多对一步骤 2 : 多对一效果步骤 3 : CategoryMapper新增CategoryMapper接口,提供get方法package com.how2java.mapper; import org.apache.ibatis.annotations.Select; impor...原创 2019-07-04 17:27:05 · 81 阅读 · 0 评论 -
看程序学mybatis 注解2 - 使用注解实现一对多
步骤 1 : 基于XML方式的一对多进行本知识点在XML方式的一对多的基础上,进行修改,以实现注解方式的一对多步骤 2 : 效果可以看到一对多查询结果步骤 3 : CategoryMapper新增加CategoryMapper接口,查询所有Category@Select注解获取Category类本身@Select(" select * from category_ ")@Resu...原创 2019-07-04 17:21:52 · 139 阅读 · 0 评论 -
看程序学mybatis 基础篇2- CRUD
步骤 1: 在前一步的基础上进行通过Mybatis进行CRUD一套操作,建立在上一个知识点Mybatis 入门教程的基础上进行。步骤 2 : 配置文件Category.xml首先一次性修改配置文件Category.xml,提供CRUD对应的sql语句。每个SQL如何使用在后续对应操作里一一讲解。<?xml version="1.0" encoding="UTF-8"?>&l...原创 2019-07-03 12:16:53 · 94 阅读 · 0 评论 -
看程序学mybatis 基础篇3- MYBATIS 多条件查询和模糊查询实例
步骤 1 : 在前一步的基础上进行在Mybatis 入门教程的基础上进行。步骤 2 : 模糊查询修改Category.xml,提供listCategoryByName查询语句select * from category_ where name like concat(’%’,#{0},’%’)concat(’%’,#{0},’%’) 这是mysql的写法如果是oracle,写...原创 2019-07-03 12:24:29 · 184 阅读 · 0 评论 -
看程序学mybatis 基础篇4- 一对多
步骤 1 : 分类和产品的一对多关系在本知识点做分类和产品的一对多关系,建立在上Mybatis 入门教程的基础上进行。一个分类对应多个产品步骤 2 : 表结构分类表不变化,新增加产品表use how2java;create table product_(id int NOT NULL AUTO_INCREMENT,name varchar(30) DEFAULT NULL,pr...原创 2019-07-03 12:31:22 · 95 阅读 · 0 评论 -
看程序学mybatis 基础篇5- 多对一
步骤 1 : 多对一关系建立在一对多的基础上讲解多对一关系步骤 2 : 修改Product.java为Product增加category属性package com.how2java.pojo; public class Product { private int id; private String name; private float price; ...原创 2019-07-03 12:39:25 · 98 阅读 · 0 评论 -
看程序学mybatis 基础篇6- 多对多
步骤 1 : 定义多对多关系本知识点是基于多对一的基础上进行。在学习之前首先要理清楚多对多的关系,这里以订单Order和产品Product为例:一张订单里 可以包含多种产品一种产品 可以出现在多张订单里这就是多对多关系为了维系多对多关系,必须要一个中间表。 在这里我们使用订单项(OrderItem)表来作为中间表步骤 2 : 表结构create table order_ (id ...原创 2019-07-03 12:49:48 · 117 阅读 · 0 评论 -
看程序学mybatis 动态SQL1-动态SQL - MYBATIS IF 标签例子
步骤 1 : 基于前面的教程上进行这个知识点要对Product做不少的查询操作,所以基于 多对一 的基础上进行,因为在这个系列教程中,到那一步,才用到了Product这个类。步骤 2 : 执行不同的条件限定,需要准备两条sql语句假设需要对Product执行两条sql语句,一个是查询所有,一个是根据名称模糊查询。那么按照现在的方式,必须提供两条sql语句:listProduct和listP...原创 2019-07-04 12:36:22 · 136 阅读 · 0 评论 -
看程序学mybatis 动态SQL2-动态SQL - MYBATIS WHERE SET TRIM 标签例子
步骤 1 : 基于上一个知识点进行基于上一个知识点if 标签进行。步骤 2 : 多条件的矛盾如果要进行多条件判断,就会写成这样:select * from product_where name like concat(’%’,#{name},’%’) and price > #{price} 这么写的问题是:当没有name参数,却有price参数的时候,...原创 2019-07-04 12:48:12 · 100 阅读 · 0 评论 -
看程序学mybatis 动态SQL3-动态SQL - MYBATIS CHOOSE WHEN OTHERWISE 标签例子
Mybatis里面没有else标签,但是可以使用when otherwise标签来达到这样的效果。 SELECT * FROM product_ and name like concat('%',#{name},'%') and price > #{price} ...原创 2019-07-04 12:53:17 · 111 阅读 · 0 评论 -
看程序学mybatis 动态SQL4-动态SQL - MYBATIS foreach 标签例子
SELECT * FROM product_WHERE ID in#{item}foreach标签通常用于in 这样的语法里,参考 Oracle的in语法 。如例,如图查询出id等于1,3,5的数据出来。Product.xml:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "...原创 2019-07-04 12:56:42 · 91 阅读 · 0 评论 -
看程序学mybatis 动态SQL5-动态SQL - MYBATIS bind标签例子
bind标签就像是再做一次字符串拼接,方便后续使用如本例,在模糊查询的基础上,把模糊查询改为bind标签。Product.xml:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis...原创 2019-07-04 12:58:54 · 109 阅读 · 0 评论 -
看程序学mybatis 注解1 - 通过注解方式实现增删改查 CRUD
步骤 1 : 把XML方式的CRUD修改为注解方式本知识点把 XML方式的CRUD 修改为注解方式步骤 2 : Mapper接口新增加接口CategoryMapper ,并在接口中声明的方法上,加上注解对比配置文件Category.xml,其实就是把SQL语句从XML挪到了注解上来package com.how2java.mapper; import java.util.List;...原创 2019-07-04 13:05:28 · 119 阅读 · 0 评论 -
看程序学mybatis 相关概念10 - GENERATOR 用法
步骤 1 : 基于前面的知识点基于Mybatis 入门 这个知识点进行步骤 2 : jar需要额外的Mybatis Generator jar包(mybatis-generator-core-1.3.5.jar)下载后放在lib目录下,并导入项目导包办法:右键 project->properties->java build path->libaries->add ...原创 2019-07-24 12:37:47 · 96 阅读 · 0 评论