mybatis动态SQL和generator自动生成代码
mybatis动态SQL
1. 导入依赖pom.xml
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.icis
mybatis03
1.0-SNAPSHOT
4.3.9.RELEASE
4.13
5.1.39
1.0.9
org.springframework
spring-context
${spring.version}
org.springframework
spring-aspects
${spring.version}
junit
junit
${junit.version}
org.springframework
spring-test
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-tx
${spring.version}
mysql
mysql-connector-java
${mysql.version}
com.alibaba
druid
${druid.version}
org.mybatis
mybatis
3.4.0
mysql
mysql-connector-java
5.1.26
log4j
log4j
1.2.17
org.mybatis.generator
mybatis-generator-maven-plugin
1.3.2
src/main/resources/generatorConfig.xml
true
true
Generate MyBatis Artifacts
generate
org.mybatis.generator
mybatis-generator-core
1.3.2
2. 新建接口EmpDao.java
package com.icis.dao;
import com.icis.pojo.Empl;
import org.apache.ibatis.annotations.Insert;
import java.util.List;
public interface EmpDao {
Empl getEmpById(Integer empId);
// Integer empId;
// String empName;
// Double empSalary;
// Date empIntime;
// Integer empDeptId;
@Insert("INSERT INTO emp(emp_id, emp_name, emp_salary, emp_intime, emp_dept_id) VALUES (NULL, #{empName}, #{empSalary}, #{empIntime}, #{empDeptId})")
Integer insertEmpByEmp(Empl empl);
List getAllEmp(Empl empl);
//批量添加数据
Integer batchInsertEmp(List list);
//批量删除
Integer batchDeleteEmpById(List list);
}
4. 新建EmpDao.xml
1. 使用where拼接
-- 使用拼接动态sql
SELECT * FROM emp
AND empName LIKE #{empName}
AND empSex = #{empSex}
2. 动态批量删除 delete
DELETE FROM emp WHERE emp_id
#{id}
3. sql片段引入
select * from
emp WHERE emp_id=#{empId}
4. 动态sql循环遍历list插入
select * from
emp WHERE emp_id=#{empId}
/p>
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-- 使用拼接动态sql
SELECT * FROM emp
AND empName LIKE #{empName}
AND empSex = #{empSex}
DELETE FROM emp WHERE emp_id
#{id}
select * from
emp WHERE emp_id=#{empId}
INSERT into emp VALUES
(null, #{emp.empName}, #{emp.empSalary}, #{emp.empIntime}, #{emp.empDeptId}, #{emp.empSex})
使用mybatis_generator自动生成mapper
1. 引入maven依赖
org.mybatis.generator
mybatis-generator-core
1.3.2
完整pom.xml如下
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.icis
mybatis03
1.0-SNAPSHOT
4.3.9.RELEASE
4.13
5.1.39
1.0.9
org.springframework
spring-context
${spring.version}
org.springframework
spring-aspects
${spring.version}
junit
junit
${junit.version}
org.springframework
spring-test
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-tx
${spring.version}
mysql
mysql-connector-java
${mysql.version}
com.alibaba
druid
${druid.version}
org.mybatis
mybatis
3.4.0
mysql
mysql-connector-java
5.1.26
log4j
log4j
1.2.17
org.mybatis.generator
mybatis-generator-core
1.3.2
org.mybatis.generator
mybatis-generator-maven-plugin
1.3.2
src/main/resources/generatorConfig.xml
true
true
Generate MyBatis Artifacts
generate
org.mybatis.generator
mybatis-generator-core
1.3.2
2. 新建配置文件generatorConfig.xml并修改输出目录和目标表
/p>
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
connectionURL="jdbc:mysql://localhost:3306/db4" userId="root"
password="root">
targetProject="C:\Users\majiao\Desktop\majiao">
targetProject="C:\Users\majiao\Desktop\majiao">
targetPackage="com.icis.mapper"
targetProject="C:\Users\majiao\Desktop\majiao">
3. 新建java文件GeneratorSqlmap.java编译运行
即可在输出目录看见mapper
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;
public class GeneratorSqlmap {
public void generator() throws Exception{
List warnings = new ArrayList();
boolean overwrite = true;
//指定 逆向工程配置文件
File configFile = new File("G:\\Xubuntu_Work_Space\\From_Xubuntu\\codeTest_2019_2_21\\IDEA\\Maven_Pojos\\mybatis03自动生成dao层\\src\\main\\resources\\generatorConfig.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
callback, warnings);
myBatisGenerator.generate(null);
}
public static void main(String[] args) throws Exception {
try {
GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
generatorSqlmap.generator();
} catch (Exception e) {
e.printStackTrace();
}
}
}
4. 把生成的实体类和mapper.xml复制到对应目录即可