12-如何使用Genarator逆向工程
使用逆向工程,帮我们更快的建立pojo类、mapper接口及xml映射文件等,无需手写,替代了一部分的mybatis功能。
一、导入MyGenarator逆向工程项目

二、修改xml配置文件


三、执行代码
生成与自己项目结构相同的文件

四、将文件拷贝至自己项目下

五、使用
1.查询
1.1 无条件查询
/**
* 1.查询所有学生信息
*/
@Test
public void getStudent(){
//查询所有,查询条件
List<Student> studentList = studentMapper.selectByExample(null);
System.out.println(studentList);
}
执行结果:

1.2 单条件查询
/**
* 2.根据姓名查学生信息
*/
@Test
public void getStuByName(){
//添加条件
StudentExample exp = new StudentExample();
exp.createCriteria().andSnameEqualTo("静静");
List<Student> studentList = studentMapper.selectByExample(exp);
System.out.println(studentList);
}
执行结果:

1.3 多条件查询
/**
* 3.根据姓名,sid查学生信息
*/
@Test
public void getStuByNameSid(){
//添加条件
StudentExample exp = new StudentExample();
exp.createCriteria().andSnameEqualTo("大林子").andSidEqualTo(3);
List<Student> studentList = studentMapper.selectByExample(exp);
System.out.println(studentList);
}
执行结果:

2. 删除
2.1 根据主键删除
/**
* 根据主键删除
*/
@Test
public void deleteByKey(){
int i = studentMapper.deleteByPrimaryKey(10);
System.out.println(i);
sqlSession.commit();
sqlSession.close();
}
执行结果:

2.2 根据自定义条件删除
/**
* 根据自定义条件删除
*/
@Test
public void delete(){
StudentExample exp = new StudentExample();
//添加姓名条件
exp.createCriteria().andSnameEqualTo("阿飞");
int i = studentMapper.deleteByExample(exp);
System.out.println(i);
sqlSession.commit();
sqlSession.close();
}
执行结果:

3. 新增
3.1 新增一条数据(所有列)
/**
* 增加学生信息
*/
@Test
public void add(){
Student student = new Student();
//sid是主键,自增,可以不写
student.setSname("章子");
student.setAge(20);
student.setCid(3);
int i = studentMapper.insert(student);
System.out.println(i);
sqlSession.commit();
sqlSession.close();
}
执行结果:

3.2 根据列名新增一条数据(其余默认)
@Test
public void add2(){
Student student = new Student();
student.setSname("关晓彤");
student.setAge(18);
int i = studentMapper.insertSelective(student);
System.out.println(i);
sqlSession.commit();
sqlSession.close();
}
执行结果:

- 以上两者区别在于sql语句不同
4. 修改
4.1 根据条件修改信息(所有属性信息)
/**
* 根据条件修改
*/
@Test
public void update(){
Student student = new Student();
//主键不可省略(不可以修改为null)
student.setSid(15);
student.setAge(22);
StudentExample exp = new StudentExample();
exp.createCriteria().andSnameEqualTo("章子");
//将姓名为"章子"的信息修改为student
int i = studentMapper.updateByExample(student,exp);
System.out.println(i);
sqlSession.commit();
sqlSession.close();
}
执行结果:

- 主键不可省略
- 根据pojo类中所有的属性进行修改,没有定义的即修改为null
4.2 根据条件修改某列(修改固定列)
/**
* 根据条件修改某列
*/
@Test
public void update2(){
Student student = new Student();
student.setAge(22);
StudentExample exp = new StudentExample();
exp.createCriteria().andSnameEqualTo("老王");
//将姓名为"老王"的信息修改:修改年龄列
int i = studentMapper.updateByExampleSelective(student,exp);
System.out.println(i);
sqlSession.commit();
sqlSession.close();
}
执行结果:

4.3 根据主键修改信息(除主键外的所有属性信息)
/**
* 根据主键修改
*/
@Test
public void update3(){
Student student = new Student();
student.setSid(4);
student.setSname("岳岳");
//根据主键sid,修改这一条所有数据
int i = studentMapper.updateByPrimaryKey(student);
sqlSession.commit();
sqlSession.close();
}
执行结果:

4.4 根据主键修改某列(修改固定列)
/**
* 根据主键修改固定列
*/
@Test
public void update4(){
Student student = new Student();
student.setSid(8);
student.setCid(1);
//根据主键sid,修改固定列cid的值
int i = studentMapper.updateByPrimaryKeySelective(student);
System.out.println(i);
sqlSession.commit();
sqlSession.close();
}
执行结果:

12-如何使用Genarator逆向工程的更多相关文章
- node.js & read argv
node.js & read argv https://nodejs.org/docs/latest/api/process.html https://flaviocopes.com/node ...
- python 各模块
01 关于本书 02 代码约定 03 关于例子 04 如何联系我们 1 核心模块 11 介绍 111 内建函数和异常 112 操作系统接口模块 113 类型支持模块 114 正则表达式 115 语言支 ...
- Python Standard Library
Python Standard Library "We'd like to pretend that 'Fredrik' is a role, but even hundreds of vo ...
- 在mybatis中写sql语句的一些体会
本文会使用一个案例,就mybatis的一些基础语法进行讲解.案例中使用到的数据库表和对象如下: article表:这个表存放的是文章的基础信息 -- ------------------------- ...
- 从 Java 代码逆向工程生成 UML 类图和序列图
from:http://blog.itpub.net/14780914/viewspace-588975/ 本文面向于那些软件架构师,设计师和开发人员,他们想使用 IBM® Rational® Sof ...
- PowerDesigner建模应用(一)逆向工程,配置数据源并导出PDM文件
物理数据模型(Physical Data Model)PDM,提供了系统初始设计所需要的基础元素,以及相关元素之间的关系:数据库的物理设计阶段必须在此基础上进行详细的后台设计,包括数据库的存储过程.操 ...
- powerdesigner逆向工程 oracle
我们已经有了数据库,希望使用powerdesigner工具生成pdm文件. 本文使用的版本是 15.0 1, File-->Reverse Engineer-->Database... ...
- Hibernate【查询、连接池、逆向工程】
前言 在Hibernate的第二篇中只是简单地说了Hibernate的几种查询方式....到目前为止,我们都是使用一些简单的主键查询阿...使用HQL查询所有的数据....本博文主要讲解Hiberna ...
- Java逆向工程SpringBoot + Mybatis Generator + MySQL
Java逆向工程SpringBoot+ Mybatis Generator + MySQL Meven pop.xml文件添加引用: <dependency> <groupId> ...
- java框架之MyBatis(2)-进阶&整合Spring&逆向工程
进阶内容 准备 jdbc.url=jdbc:mysql://192.168.208.192:3306/test?characterEncoding=utf-8 jdbc.driver=com.mysq ...
随机推荐
- JS篇(003)-请用 js 去除字符串空格?
答案:replace 正则匹配方法.str.trim()方法.JQ 方法:$.trim(str)方法 解析: 方法一:replace 正则匹配方法 去除字符串内所有的空格:str = str.repl ...
- Spring Boot 启动时自动执行代码的几种方式
来源:https://mp.weixin.qq.com/s/xHAYFaNBRys3iokdJmhzHA 前言 java自身的启动时加载方式 Spring启动时加载方式 代码测试 总结 1.前言 目前 ...
- spring-nfjh
Spring Xml 文件报红第一时间检查set .get .构造方法 准备工作 JDK 最低版本17 设置Maven 见[王鹤老师的笔记] 本套Spring教程与其他Spring教程的区别可总结为以 ...
- POJ--2689-C++
题意很简单就是让你求给定区间的素数,然后用一个循环求出相距最远的相邻素数数和最近的素数以及相距最近的相邻素数 难点在与数据很大,所以不可能直接对区间的每一个数进行素数判断.但是,每个合数n都至少有一个 ...
- 简单的IP网络
企业网络架构:小型.扁平化设计,特点:设备少,网络复杂度低,用路由器加交换或路由器就可以实现. 大中型,分层设计,接入层汇聚层核心层,特点:设备众多,网络组建复杂度高.终端设备较多,偏平化设计不适合. ...
- windows elasticsearch 7.9.3安装
1.JDK,我用的是OPEN JDK https://jdk.java.net/ 通过CMD设定java环境变量设置 set java_home=C:\Program Files\java ...
- Arthas 查询服务器内存数据
1.打开Arthas所在位置 eg:/home 2.java -jar arthas-boot.jar 运行jar包 3.选择要执行的java jar包 eg : 1 4.执行查看命令vmtool - ...
- Optional类与使用==判断null有什么区别?使用Optional类有什么优势?
1.使用object==null的例子 2.null带来的问题 3.其他语言中null的处理(替代) 4.Java8的Optional类 4.1 这样做有什么好处呢? 4.2 引入Optional类的 ...
- https://计算机等级分类总结
4个等级: 一级:定位为满足人们在一般性工作中对计算机的应用,重点是操作能力的考核: 二级:定位为计算机程序员,可谓"计算机蓝领". 三级:定位为"开发工程师" ...
- 20220719 第七组 陈美娜 Java(this,封装,构造器概念)
1.关于构造器 如果说创建对象仅仅是为了调用这个类的方法,建议使用无参构造器 如果说创建对象的时候需要使用到对象的某个属性,可以使用构造器赋值 2.this关键字 this代表的是当前类的对象,thi ...