1. Reverse Engineering
1.1, Overview
mybatis requires SQL written by the program number.
mybatis officially provides reverse engineering, which can automatically generate the code required for mybatis execution for a single table
(mapper, java, maper.xml, po...)
is generally generated from database to java code. Process
2. Import jar package
2.1, mybatis-generator
3. Configure xml
3.1, generatorConfig.xml
br/>PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" 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{ 五、测试 5.1、测试类 package com.pb.ssm.mapper;import static org.junit.Assert.fail;import java.util.Date;import java.util.List;import javax.crypto.Cipher;import org.junit.Before;import org.junit.Test;import org.springframework.context.applicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.pb.ssm.po.Author;import com.pb.ssm.po.AuthorExample;import com.pb.ssm.po.AuthorExample.Criteria;public class AuthorMapperTest { private ApplicationContext applicationContext; private AuthorMapper authorMapper; The above is the content of Getting Started with MyBatis (7)---Reverse Engineering. For more related content, please pay attention to PHP Chinese Net (www.php.cn)!
"http:// /mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
"
"
" " "
; --> & gt; l & lt;/jdbcoconnection & gt;
& lt;-default False, analyze JDBC Decimal and NUMERIC as Integer, as to True, JDBC Decimal
and Numeric Types are parsed into java.math. .Bigdecimal -& gt;
& lt ;javaTypeResolver>
;javaModelGenerator targetPackage=" com.mybatis.po "
targetproject =". src "& gt;
& lt; proprity name =" enableSubpackages "value =" false " /& gt;
& lt; rimstrings "value =" true " /& gt;
& lt; proprity name = "enablesubpackages" value = "false" /& gt;
& lt;! Before and after space- -> =" XMLMAPPER"
targetPackage="com.pb.mybatis.mapper" ages" value="false" />
" " ="blog">
" "
4. Run the java program to generate
4.1, java program
List
File configFile = new File("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();
}
}
@Before public void setUp() throws Exception {
applicationContext=new ClassPathXmlApplicationContext("ApplicationContext.xml");
authorMapper=(AuthorMapper) applicationContext.getBean("authorMapper");
}
//根据条件查询记录数 @Test public void testCountByExample() {
AuthorExample example=new AuthorExample(); //可以加条件,不加条件默认查询全部
Criteria criteria=example.createCriteria(); //加条件,介绍不是空的 criteria.andAuthorBioIsNotNull(); int num=authorMapper.countByExample(example);
System.out.println("num="+num);
}
//根据条件删除 @Test public void testDeleteByExample() {
AuthorExample example=new AuthorExample(); //可以加条件,不加条件默认查询全部
Criteria criteria=example.createCriteria();
criteria.andAuthorUsernameEqualTo("程序员"); int num=authorMapper.deleteByExample(example);
System.out.println("num="+num);
}
//根据主键ID删除 @Test public void testDeleteByPrimaryKey() { int num=authorMapper.deleteByPrimaryKey(18);
System.out.println("num="+num);
} //插入 @Test public void testInsert() {
Author author=new Author();
author.setAuthorUsername("再测试一下");
author.setAuthorPassword("admin123");
author.setAuthorEmail("admin1234@QQ.com");
int num=authorMapper.insert(author);
System.out.println("num="+num); //这个方法插入,默认不会把数据库自增加ID返回,如果需要,可以手动增加
System.out.println("插入后的ID"+author.getAuthorId());
} //插入 @Test public void testInsertSelective() {
Author author=new Author();
author.setAuthorUsername("再测试一下");
author.setAuthorPassword("admin123");
author.setAuthorEmail("admin1234@qq.com");
author.setRegisterTime(new Date());
int num=authorMapper.insert(author);
System.out.println("num="+num); //这个方法插入,默认不会把数据库自增加ID返回,如果需要,可以手动增加
System.out.println("插入后的ID"+author.getAuthorId());
} //自定义 条件查询 @Test public void testSelectByExample() { //声明一个对象
AuthorExample authorExample=new AuthorExample(); //创建criteria对象添加条件 and 连接
Criteria criteria=authorExample.createCriteria(); //需要手动加%
criteria.andAuthorUsernameLike("%张三%");
List
System.out.println(list.size());
}
//Query based on primary key ID @Test public void testSelectByPrimaryKey() {
Author author= Mapper. selectByPrimaryKey(6);
System.out.println(author.getAuthorUsername()+"..."+author.getAuthorBio());
}
@Test public void testUpdateByExampleSelective() {
fail("Not yet implemented ");
}
@Test public void testUpdateByExample() {
fail("Not yet implemented");
}
@Test public void testUpdateByPrimaryKeySelective() {
fail( "Not yet implemented");
}
@Test public void testUpdateByPrimaryKey() {
fail("Not yet implemented");
}
}