MyBatis

mybatis教程-快速启动

妖精的绣舞 提交于 2020-03-09 13:59:21
1、准备数据库表 1.1、创建数据库表 CREATE TABLE `student` ( `sid` int(11) NOT NULL AUTO_INCREMENT, `sname` varchar(100) DEFAULT NULL, `sage` int(11) DEFAULT NULL, `ssex` varchar(100) DEFAULT NULL, PRIMARY KEY (`sid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 1.2、插入测试数据 insert into student(sname,sage,ssex) values("joker",18,"男") 2、引入依赖 <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.3</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.19</version> </dependency> <dependency> <groupId>junit</groupId>

MyBatis模糊查询的五种方式

ⅰ亾dé卋堺 提交于 2020-03-09 13:42:33
模糊查询五种方式 更改参数 -- 查询参数更改为user.setName("%name%") select * from user where name like #{name} 使用%%进行拼接 (推荐使用) select * from user where name like "%" #{name}"%" 使用$进行拼接 select * from user where name like "%{name}%" 使用数据库函数进行拼接 (MySql的数据库函数 假如切换数据库则无法使用) select * from user where name like CONCAT ( "%" , #{name},"%") 更改别名 bind < bind name = "keywords" values = "'%'+new String (value)+'%'" / > select * from user where name like #{keywords} -- 此处的name对象实体类中的name < bind name = "keywords" values = "'%'+name+'%'" / > select * from user where name like #{keywords} 来源: CSDN 作者: 对,是我 链接: https://blog.csdn

Mybatis学习系列二 mapper动态代理方式的crud(MyBatis接口开发)

徘徊边缘 提交于 2020-03-09 13:17:35
具体实现的步骤: 1. 基础环境 mybatis.jar 、 jdbc.jar 、conf.xml、 mapper.xml 2.(不同之处) 约定的目标:省略掉statement,即根据约定 直接可以定位出SQL语句 a. 接口 ,接口中的方法 必须遵循以下约定 * 1.方法名和mapper.xml文件中标签的id值相同 * 2.方法的输入参数 和 mapper.xml文件中标签的parameterType一致 (如果mapper.xml的标签中没有parameterType,则说明 该方法没有输入参数) * 3.方法的返回值 和 mapper.xml文件中标签的resultType类型一致 (无论查询结果是一个 还是多个(student, List<student>)mapper.xml标签中的resultType中 只写一个Student ; 如果没有resultType,则是void 除了以上约定, 要实现 接口中的方法 和Mapper.xml中SQL标签一一对应 还需要: namespace的值 就是接口的全类名 (接口-mapper.xml 一一对应) 匹配的过程:(约定的过程) 1 根据 接口名找到 mapper.xml文件 (根据的是 namespace = 接口全类名) 2 根据 接口的方法名 找到 mapper.xml 文件中的SQL标签 (方法名 =

Mybatis实现数据分页

血红的双手。 提交于 2020-03-09 08:10:50
在很多中情况下,前端许要进行分页的数据显示,当前端发送分页数据请求时,我们需要在数据库中取出该页的数据。利用mybatis实现分页请求主要有两种方法 1、利用mysql的分页语句 limit #{startIndex},#{pageSize} 这时我们需要在mapper配置文件中进行修改,如下: <select id="selectAll" parameterType="Map" resultType="Goods"> select * from theme limit #{startIndex},#{pageSize} </select> startIndex为该分页数据的起始索引下标,pageSize为每页的数据条数 另外Dao层也需要进行相应修改,调用时将startIndex和pageSize传到mapper的配置文件中,这里采用Hashmap键值对的方式,将两个值传入。 public List<Goods> getAll(int currentPage,int pageSize) throws IOException { SqlSession sqlSession = MybatisUtil.getSqlSession(); Map<String,Integer> map = new HashMap<String, Integer>(); map.put(

自定义MyBatis

血红的双手。 提交于 2020-03-09 06:54:17
自定义一个简单的查询所有功能,用到xml配置文件和注解两种方式. 先实现功能,再分析。 用户实体类 public class User implements Serializable { private Integer id ; private String username ; private Date birthday ; private String sex ; private String address ; public Integer getId ( ) { return id ; } public void setId ( Integer id ) { this . id = id ; } public String getUsername ( ) { return username ; } public void setUsername ( String username ) { this . username = username ; } public Date getBirthday ( ) { return birthday ; } public void setBirthday ( Date birthday ) { this . birthday = birthday ; } public String getSex ( ) { return sex ;

Mybatis笔记

冷暖自知 提交于 2020-03-09 06:51:28
###1. 关于插件PageHelper 在使用 PageHelper.offsetPage 时候,不分页的问题。 是因为这句话必须放在需要分页的数据库查询之前。 即 在使用这句话后,下一个且只有下一个数据查询会被分页。 因为这个问题今天查了好久,代码改了好多次。 //即 PageHelper . offsetPage ( pageIndex . getStart ( ) , pageIndex . getCount ( ) ) ; List < Category > cs = categoryService . getCategoryList ( ) ; 谨防放在某个Service里,一定要检查Service里是否第一个查询是目标对象。今天遇到的问题就是这样。 ReviewExample re = new ReviewExample ( ) ; if ( user != null && articleUser . getId ( ) == user . getId ( ) ) { re . createCriteria ( ) . andArticle_idEqualTo ( articleID ) ; } else { reviewExmpleByUser ( user , re ) ; List < ReviewExample . Criteria > rel = re .

mybatis持久层

为君一笑 提交于 2020-03-09 02:31:57
Mybayis介绍 Mybatis是由Apache的一个开源项目iBatis 2010年这个项目由 Apache software foundation迁移到 GoogleCode 并改名为Mybatis实质上Mybatis对ibatis进行了一些改进。 Mybatis作为优秀的持久层框架,它对jdbc操作数据库进行了封装,使开发者需要只关注Sql本身 不需要消耗多余经历去处理注册驱动关闭资源等等… 执行原理 (源码解读) 1.同Resources加载已配置好的mybatis-config.xml配置文件,Resouces是ibatis.io包下的一个类,用于读写文件,通过getResourcesAstream把指定的xml文件加载进来 将指定的xml解析为流的操作,可以见的Resources.getResourceAsStream返回值为Inputstream 输入流。 InputStream resourceAsStream = Resources . getResourceAsStream ( "mybatis-config.xml" ) ; 2 .将获取到的IO输入流放入SqlSessionFactoryBuilder().build(resourceAsStream

Mybatis分页插件一一PageHelper

为君一笑 提交于 2020-03-09 02:25:19
Mybatis分页插件一一PageHelper 介绍: com.github.pagehelper.PageHelper是一款好用的开源免费的Mybatis第三方物理分页插件;他的原理是利用mybatis拦截器,在查询数据库的时候,拦截下SQL,然后进行修改,从而实现分页(如果你硬是想知道原理,mybatis拦截器,学习过后你就知道什么回事了)。 优点 :无需你自己去封装以及关心sql分页等问题,使用很方便,前端取数据也很方便。 使用: 引入依赖: < ! -- 导入pagehelper相关依赖 -- > < dependency > < groupId > com . github . pagehelper < / groupId > < artifactId > pagehelper < / artifactId > < version > 5.1 .2 < / version > < / dependency > < ! -- 如果你的项目是springboot,需添加下面两个依赖 -- > < dependency > < groupId > com . github . pagehelper < / groupId > < artifactId > pagehelper - spring - boot - autoconfigure < / artifactId > <

MyBatis学习笔记

荒凉一梦 提交于 2020-03-09 00:22:35
MyBatis ORMapping:Object Relationship Mapping 对象关系映射 对象指面向对象 关系指关系型数据库 Java到MySQL的映射,开发者可以以面向对象的思想来管理数据库 如何使用 新建Maven工程,pom.xml <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.11</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.6</version> <scope>provided</scope> </dependency> </dependencies> <build> <resources> <resource> <directory>src/main/java

Mybatis入门配置

隐身守侯 提交于 2020-03-08 19:27:59
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。 理解MyBatis MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。 MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索。 MyBatis 可以使用简单的XML 或注解用于配置和原始映射,将接口和 Java 的 POJO( Plain Old Java Objects,普通的Java 对象)映射成数据库中的记录. Mybatis的功能架构分为三层: 1) API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。 2) 数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。 3) 基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。 在SpringBoot中集成Mybatis <1>在Pom中添加依赖