Home >Java >javaTutorial >Getting Started with MyBatis (7) ---Reverse Engineering

Getting Started with MyBatis (7) ---Reverse Engineering

黄舟
黄舟Original
2016-12-21 14:37:361539browse

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

Getting Started with MyBatis (7) ---Reverse Engineering

3. Configure xml

3.1, generatorConfig.xml

br/>PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"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


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("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();
       }
       
   }


Getting Started with MyBatis (7) ---Reverse Engineering

五、测试

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;

   @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 list=authorMapper.selectByExample(authorExample);
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");
}

}

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)!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn