![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
框架-Mybatis
litengbin
这个作者很懒,什么都没留下…
展开
-
Mybatis其他-二级缓存
Mybatis二级缓存是SessionFactory,如果两次查询基于同一个SessionFactory,那么就从二级缓存中取数据,而不用到数据库里去取了。基于前一个知识点对一级缓存知识点进行改造,以支持二级缓存观察无二级缓存启动二级缓存11行新增一个段配置,以支持二级缓存<!DOCTYPE configurationPUBLIC "-//mybatis转载 2018-02-09 01:06:06 · 164 阅读 · 0 评论 -
Mybatis动态SQL-bind标签
bind标签bind标签就像是再做一次字符串拼接,方便后续使用如本例,在模糊查询的基础上,把模糊查询改为bind标签。<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -转载 2018-02-07 03:43:27 · 1874 阅读 · 0 评论 -
Mybatis注解-通过注解方式实现CRUD
把XML方式的CRUD修改为注解方式本知识点把 XML方式的CRUD 修改为注解方式Mapper接口新增加接口CategoryMapper ,并在接口中声明的方法上,加上注解对比配置文件Category.xml,其实就是把SQL语句从XML挪到了注解上来package com.how2java.mapper; import java.util.List; impo转载 2018-02-07 03:43:36 · 448 阅读 · 0 评论 -
Mybatis注解-使用注解实现一对多
基于XML方式的一对多进行本知识点在XML方式的一对多的基础上,进行修改,以实现注解方式的一对多CategoryMapper新增加CategoryMapper接口,查询所有Category@Select注解获取Category类本身@Select(" select * from category_ ")@Results 通过@Result和@Many中调用ProductMa转载 2018-02-08 12:29:32 · 893 阅读 · 0 评论 -
Mybatis注解-使用注解实现多对一
基于XML方式的多对一进行本知识点在XML方式的多对一的基础上,进行修改,以实现注解方式的多对一CategoryMapper新增CategoryMapper接口,提供get方法package com.how2java.mapper; import org.apache.ibatis.annotations.Select; import com.how2java.poj转载 2018-02-08 12:32:21 · 382 阅读 · 0 评论 -
Mybatis注解-注解方式的多对多查询
基于XML方式的多对多进行本知识点在基于XML方式的多对多的基础上,改造成为注解的方式ProductMapper新增一个ProductMapper接口,提供 get方法package com.how2java.mapper; import org.apache.ibatis.annotations.Select; import com.how2java.pojo.Pro转载 2018-02-08 12:32:34 · 1887 阅读 · 0 评论 -
Mybatis注解-注解方式的动态SQL语句
基于手写SQL语句的注解CRUD把手写SQL语句的注解CRUD,修改为动态SQL语句方式。CategoryDynaSqlProvider新增CategoryDynaSqlProvider,提供CRUD对应的SQL语句。这里的SQL语句使用SQL类的方式构建,在 关于SQL类中有更加详细的讲解。package com.how2java; import org.apache转载 2018-02-08 12:32:55 · 9556 阅读 · 2 评论 -
Mybatis其他-开启LOG4J显示执行的SQL语句
开启日志有时候需要打印日志,知道mybatis执行了什么样的SQL语句,以便进行调试。这时,就需要开启日志,而mybatis自身是没有带日志的,使用的都是第三方日志,这里讲解如何开启log4j日志功能。jar为了开启log4j,需要使用对应的log4j-1.2.17.jar,并保存在e:\project\mybatis\lib目录下导入到项目把log4j的jar包导转载 2018-02-08 12:33:12 · 1073 阅读 · 0 评论 -
Mybatis其他-事务管理
JDBC方式确保12行是另一个值是MANAGED,是交由容器管理,如weblogic等,不在本知识点讨论。<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">转载 2018-02-08 12:33:24 · 290 阅读 · 0 评论 -
Mybatis其他-延迟加载
基于注解方式的一对多基于注解方式的一对多 来学习延迟加载的配置办法加上日志为了观察到延迟加载前后,SQL语句的变化,加上日志只查询分类,不获取产品把27,28,29注释掉,只获取分类,不获取产品,执行后发现,获取产品的SQL语句也执行了package com.how2java; import java.io.IOException;import java.转载 2018-02-08 12:33:36 · 229 阅读 · 0 评论 -
Mybatis其他-分页
增加100条catgory数据为了观察分页查询的效果,把分类表里的数据都删除掉,然后新增100个数据package com.how2java; import java.io.IOException;import java.io.InputStream;import java.util.List; import org.apache.ibatis.io.Resource转载 2018-02-08 12:33:53 · 235 阅读 · 0 评论 -
Mybatis其他-PageHelper
PageHelper介绍PageHelper是一款犀利的Mybatis分页插件,使用了这个插件之后,分页开发起来更加简单容易。本知识点讲解如何使用该插件jar包因为是第三方插件,所以需要额外的jar包,pagehelper-5.1.0-beta2.jar,jsqlparser-1.0.jar数据设置为100条为了观察分页查询的效果,把分类表里的数据都删除掉,然后新增转载 2018-02-08 12:34:05 · 218 阅读 · 0 评论 -
Mybatis动态SQL-foreach标签
foreach标签 SELECT * FROM product_ WHERE ID in <foreach item="item" index="index" collection="list" open="(" separator="," close=")"> #{item} foreach标签通常用于in 这样的语法转载 2018-02-07 03:43:12 · 329 阅读 · 0 评论 -
Mybatis动态SQL-choose when otherwise标签
if elseMybatis里面没有else标签,但是可以使用when otherwise标签来达到这样的效果。 SELECT * FROM product_ and name like concat('%',#{name},'%') and price > #{price}转载 2018-02-07 03:43:04 · 837 阅读 · 1 评论 -
Mybatis其他-整合C3P0数据库连接池
本知识点演示单纯的Mybatis整合C3P0数据库连接池,不是SSM的那种整合方式下载JAR包c3p0-0.9.1.2.jar导入项目把jar包导入到项目中,导包办法:右键 project->properties->java build path->libaries->add external jars新建类C3P0DataSourceFactoryMybati转载 2018-02-09 01:06:18 · 606 阅读 · 0 评论 -
Mybatis其他-查询总数
新增加方法统计总数没什么特别的,就是一条普通的查询SQL语句@Select(" select count(*) from category_ ") public int count(); package com.how2java.mapper; import java.util.List; import org.apache.ibatis.annotations.D转载 2018-02-09 01:06:38 · 5118 阅读 · 0 评论 -
Mybatis其他-Generator逆向工程
简介Mybatis Generator是一个用于Mybatis逆向工程的工具。 前面学习的方式都是先有pojo, mapper, xml, 然后再创建表。用逆向工程的方式,首先保证数据库里有表,然后通过Mybatis Generator生成pojo, mapper和xml。 可以节约大家的时间,提高开发效率,降低出错几率jar需要额外的Mybatis Generator转载 2018-02-09 01:06:59 · 206 阅读 · 0 评论 -
Mybatis基础-入门教程
平时我们都用JDBC访问数据库,除了需要自己写SQL之外,还必须操作Connection, Statment, ResultSet 这些其实只是手段的辅助类。 不仅如此,访问不同的表,还会写很多雷同的代码,显得繁琐和枯燥。 那么用了Mybatis之后,只需要自己提供SQL语句,其他的工作,诸如建立连接,Statement, JDBC相关异常处理等等都交给Mybatis去做了,那些重复性的工转载 2018-02-06 00:12:51 · 204 阅读 · 0 评论 -
Mybatis基础-CRUD
配置文件Category.xml首先一次性修改配置文件Category.xml,提供CRUD对应的sql语句。每个SQL如何使用在后续对应操作里一一讲解。<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"转载 2018-02-06 00:13:02 · 196 阅读 · 0 评论 -
Mybatis基础-多条件查询和模糊查询实例
模糊查询1. 修改Category.xml,提供listCategoryByName查询语句select * from category_ where name like concat('%',#{0},'%')concat('%',#{0},'%') 这是mysql的写法如果是oracle,写法是select * from category_ where name转载 2018-02-07 03:41:34 · 1660 阅读 · 0 评论 -
Mybatis基础-一对多
Product实体类普通的一个pojopackage com.how2java.pojo; public class Product { private int id; private String name; private float price; public int getId() { return id; }转载 2018-02-07 03:41:59 · 170 阅读 · 0 评论 -
Mybatis基础-多对一
修改Product.java为Product增加category属性package com.how2java.pojo; public class Product { private int id; private String name; private float price; private Category category;转载 2018-02-07 03:42:08 · 142 阅读 · 0 评论 -
Mybatis基础-多对多
定义多对多关系本知识点是居于多对一的基础上进行。在学习之前首先要理清楚多对多的关系,这里以订单Order和产品Product为例:一张订单里 可以包含多种产品一种产品 可以出现在多张订单里这就是多对多关系为了维系多对多关系,必须要一个中间表。 在这里我们使用订单项(OrderItem)表来作为中间表本知识点讲解如何查询多对多关系,建立多对多关系,删除多对多关系。转载 2018-02-07 03:42:20 · 202 阅读 · 0 评论 -
Mybatis动态SQL-if标签
执行不同的条件限定,需要准备两条sql语句假设需要对Product执行两条sql语句,一个是查询所有,一个是根据名称模糊查询。那么按照现在的方式,必须提供两条sql语句:listProduct和listProductByName然后在调用的时候,分别调用它们来执行。<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mappe转载 2018-02-07 03:42:35 · 423 阅读 · 0 评论 -
Mybatis动态SQL-where标签、set标签、trim标签
多条件的矛盾如果要进行多条件判断,就会写成这样: select * from product_ where name like concat('%',#{name},'%') and price > #{price} 这么写的问题是:当没有name参数,却有price参数的时候,执行的sql语句就会是:select * from pro转载 2018-02-07 03:42:50 · 445 阅读 · 0 评论 -
Mybatis其他-一级缓存
Mybatis的一级缓存在session上,只要通过session查过的数据,都会放在session上,下一次再查询相同id的数据,都直接冲缓存中取出来,而不用到数据库里去取了。在一个Session里查相同id的数据如图所示,在session1中查询两次id=1的Category对象。第一次会去数据库中取数据,但是第二次就不会访问数据库了,而是直接从session中取出来。转载 2018-02-08 12:34:19 · 232 阅读 · 0 评论