mybatis-plus 相关
这里有几个很全的教程:
https://www.cnblogs.com/okong/p/mybatis-plus-guide-one.html
mybtais-plus学习--BaseMapper提供的方法及SQL语句生成
1、实体继承 Model 如下
public class Test extends Model<Test> { // 静态属性会自动忽略
private static final long serialVersionUID = 1L; /** 主键 */
// 默认会找 id 为主键,特殊命名需要注解 @TableId
private Long id; private String type; ... @Override
protected Serializable pkVal() {
return id;
} }
2、使用方法如下:
import java.io.InputStream;
import java.util.List;
import java.util.Map; import org.apache.ibatis.jdbc.SQL;
import org.apache.ibatis.session.SqlSessionFactory; import com.baomidou.mybatisplus.MybatisSessionFactoryBuilder;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.test.mysql.TestMapper;
import com.baomidou.mybatisplus.test.mysql.entity.Test;
import com.baomidou.mybatisplus.toolkit.IdWorker;
import com.baomidou.mybatisplus.toolkit.TableInfoHelper; /**
* <p>
* ActiveRecord 测试
* </p>
*/
public class ActiveRecordTest { public static void main(String[] args) {
// 加载配置文件
InputStream in = TestMapper.class.getClassLoader().getResourceAsStream("mysql-config.xml");
MybatisSessionFactoryBuilder mf = new MybatisSessionFactoryBuilder();
SqlSessionFactory sqlSessionFactory = mf.build(in);
TableInfoHelper.initSqlSessionFactory(sqlSessionFactory);
sqlSessionFactory.openSession(false);
// 保存一条记录
Test t1 = new Test();
t1.setType("test10");
boolean rlt = t1.insert();
print(" ar save=" + rlt + ", id=" + t1.getId()); // 根据ID更新
t1.setType("t1023");
rlt = t1.updateById();
print(" ar updateById:" + rlt); // 更新 SQL
Test t11 = new Test();
t11.setType("123");
rlt = t11.update("id={0}", t1.getId());
print("update sql=" + rlt); // 查询 SQL
Test t10 = t1.selectOne("id={0}", t1.getId());
print("selectOne=" + t10.getType()); // 插入OR更新
t1.setType("t1021");
rlt = t1.insertOrUpdate();
print(" ar saveOrUpdate:" + rlt); // 根据ID查询
Test t2 = t1.selectById();
print(" t2 = " + t2.toString());
t2.setId(IdWorker.getId());
t2.insert(); // 查询所有
List<Test> tl = t2.selectAll();
for (Test t : tl) {
print("selectAll=" + t.toString());
} // 查询总记录数
print(" count=" + t2.selectCount(null)); // 翻页查询
Page<Test> page = new Page<Test>(0, 10);
page = t2.selectPage(page, null);
print(page.toString()); // 根据ID删除
rlt = t2.deleteById();
print("deleteById=" + rlt + ", id=" + t2.getId()); // 执行 SQL 查询总数
List<Map<String, Object>> ul = t2.sql().selectList(new SQL() {
{
SELECT("*");
FROM("test");
WHERE("type='t1021'");
}
}.toString());
System.err.println("selectList SQL:");
for (Map<String, Object> map : ul) {
System.err.println(map);
} // 根据ID查询
Test t20 = t2.selectById();
print("t2 删除后是否存在?" + (null != t20)); // 删除 SQL
rlt = t2.delete("type={0}", "t1021");
System.err.println("delete sql=" + rlt);
} /*
* 慢点打印
*/
private static void print(String text) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.err.println(text);
} }
mybatis-plus 相关的更多相关文章
- JAVA WEB快速入门之从编写一个基于SpringBoot+Mybatis快速创建的REST API项目了解SpringBoot、SpringMVC REST API、Mybatis等相关知识
JAVA WEB快速入门系列之前的相关文章如下:(文章全部本人[梦在旅途原创],文中内容可能部份图片.代码参照网上资源) 第一篇:JAVA WEB快速入门之环境搭建 第二篇:JAVA WEB快速入门之 ...
- spring MyBatis的相关面试题
(相关面试题! 供参考!) 1.ORM框架有哪些? MyBatis:半自动化框架(不是纯ORM) 需要写动态SQL语句,实体类和SQL语句之间建立映射关系 Spring:轻量级框架, Java EE的 ...
- MySQL和mybatis查询相关
0.mybatis的xml文件头 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapp ...
- Spring Boot集成Mybatis注解相关
mybatis3开始支持java注解,使用java注解可以替代xml配置文件,简化代码.下面来看一下怎么在spring boot中使用mybatis注解. 1 使用mybatis注解需要的配置.如下面 ...
- Mybatis架构相关的知识
如上所示,这是一个简单的Mybaits执行流程. 我们其实可以看到,一直到第三步(Sqlsession)那么一步,这都是我们的程序里需要创建的.而之后的步骤才是底层完成的任务. 这里就有了一个引申的概 ...
- 8 Spring / Spring MVC / Mybatis 框架相关知识点
1)Spring 的 IOC 和 AOP 有了解吗? IOC:控制反转,不需要手动 new 对象,将其交给 Spring 容器,降低程序耦合度. AOP:面向切面编程,动态代理技术.
- 使用Mybatis Generator自动生成Mybatis相关代码
本文将简要介绍怎样利用Mybatis Generator自动生成Mybatis的相关代码: 一.构建一个环境: 1. 首先创建一个表: CREATE TABLE pet (name VARCHAR(2 ...
- Spring集成MyBatis
本文原创,原文地址为http://www.cnblogs.com/fengzheng/p/5045105.html 如果觉得Hibernate不够灵活,可以尝试用Mybatis.相比于Hibernat ...
- Mybatis整合Spring
根据官方的说法,在ibatis3,也就是Mybatis3问世之前,Spring3的开发工作就已经完成了,所以Spring3中还是没有对Mybatis3的支持.因此由Mybatis社区自己开发了一个My ...
- Mybatis与Spring整合,使用了maven管理项目,作为初学者觉得不错,转载下来
转载自:http://www.cnblogs.com/xdp-gacl/p/4271627.html 一.搭建开发环境 1.1.使用Maven创建Web项目 执行如下命令: mvn archetype ...
随机推荐
- JVM —— 类文件结构(下)
简介 Java虚拟机的指令由一个字节长度的.代表着某种特定操作含义的操作码(opcode)以及跟随其后的零至多个代表此操作所需参数的操作数(operand)所构成 虚拟机中许多指令并不包含操作数.只有 ...
- 20191011-构建我们公司自己的自动化接口测试框架-Util的TestDataHandler模块
TestDataHandler模块主要是做测试数据的处理,包括转换数据格式和变量参数处理转换数据格式函数: data是数据,data以$()的方式识别变量,如果请求的数据有变量,则将变量用global ...
- spring cloud微服务实践四
spring cloud的hystrix还有一个配搭的库hystrix-dashboard,它是hystrix的一款监控工具,能直观的显示hystrix响应信息,请求成功率等.但是hystrix-da ...
- JVM 内存溢出详解(栈溢出,堆溢出,持久代溢出、无法创建本地线程)
出处: http://www.jianshu.com/p/cd705f88cf2a 1.内存溢出和内存泄漏的区别 内存溢出 (Out Of Memory):是指程序在申请内存时,没有足够的内存空间供 ...
- scratch少儿编程第一季——02、scratch界面介绍
各位小伙伴大家好: 上期我们简单的介绍了Scratch的一些基本信息,和scratch软件的下载. 今天我们一起来了解一下Scratch的编程界面的介绍. 关于版本我考虑之后还是决定基于Scratch ...
- 【win10】 ffmpeg的安装
安装肯定要先下载,官方下载地址:http://www.ffmpeg.org/download.html 然后会进入这个页面. 然后根据你的操作系统选择 根据自己系统选择,我的系统是64位的所以下载的是 ...
- 怎样理解数组的空元素empty与undefined的区别
数组的空元素empty表示空位, 它不是一种数据类型, 而是由于人为修改arr.length 或者写入时多写了逗号造成的. var arr = [1,2,3,4,,,5]; arr.length; a ...
- Spring Boot 项目集成 Alibaba Druid
Druid 是一个非常好用的数据库连接池,但是他的好并不止体现在作为一个连接池加快数据访问性能上和连接管理上,他带有一个强大的监控工具:Druid Monitor.不仅可以监控数据源和慢查询,还可以监 ...
- java 框架-缓冲-Redis 1概述
https://www.jianshu.com/p/56999f2b8e3b Redis 概述 在我们日常的Java Web开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在 ...
- div上中下布局中间自适应
需求1: 头尾固定高度,中间自适应 1.上部(header)Div高度固定100px,宽度100%: 2.下部(footer)Div高度固定100px,宽度100%: 3.中部(middle)DIV高 ...