王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

一、逆向工程1.1、概述

mybatis需要程序号自己编写的SQL。

mybatis官方提供了逆向工程,可以针对单表自动生成mybatis执行所需要的代码

(mapper,java,maper.xml,po...)

一般都是由数据库到java代码, 的生成过程

二、导入jar包2.1、mybatis-generator

三、配置xml3.1、generatorConfig.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration

PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"

"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><!--指定数据库jar包--><classPathEntrylocation="G:/jar/MySQL-connector-java-5.1.37-bin.jar"/><contextid="DB2Tables"targetRuntime="MyBatis3"><commentGenerator><!--是否去除自动生成的注释 true:是 : false:否--><PRopertyname="suppressAllComments"value="true"/></commentGenerator><!--JDBC连接配置,driver,url,user,passWord--><jdbcConnectiondriverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/mybatis?character=utf8"userId="root"password="root"></jdbcConnection><!--默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL

和 NUMERIC 类型解析为java.math.BigDecimal--><javaTypeResolver><propertyname="forceBigDecimals"value="false"/></javaTypeResolver><!--targetProject:生成PO类的位置--><javaModelGeneratortargetPackage="com.mybatis.po"targetProject=".\src"><propertyname="enableSubPackages"value="false"/><propertyname="trimStrings"value="true"/></javaModelGenerator><!--targetProject:mapper映射文件生成的位置--><sqlMapGeneratortargetPackage="com.pb.mybatis.mapping"targetProject=".\src"><!--enableSubPackages:是否让schema作为包的后缀--><propertyname="enableSubPackages"value="false"/><!--从数据库返回的值被清理前后的空格--><propertyname="trimStrings"value="true"/></sqlMapGenerator><!--targetPackage:mapper接口生成的位置--><javaClientGeneratortype="XMLMAPPER"targetPackage="com.pb.mybatis.mapper"targetProject=".\src"><!--enableSubPackages:是否让schema作为包的后缀--><propertyname="enableSubPackages"value="false"/></javaClientGenerator><!--指定要生成的表--><tabletableName="author"></table><tabletableName="blog"></table><tabletableName="posts"></table></context></generatorConfiguration>

四、运行java程序生成4.1、java程序

importjava.io.File;importjava.io.IOException;importjava.util.ArrayList;importjava.util.List;importorg.mybatis.generator.api.MyBatisGenerator;importorg.mybatis.generator.config.Configuration;importorg.mybatis.generator.config.xml.ConfigurationParser;importorg.mybatis.generator.exception.XMLParserException;importorg.mybatis.generator.internal.DefaultShellCallback;publicclassGeneratorSqlmap {publicvoidgenerator()throwsException{

List<String> warnings =newArrayList<String>();booleanoverwrite =true;//指定 逆向工程配置文件File configFile =newFile("generatorConfig.xml");

ConfigurationParser cp=newConfigurationParser(warnings);

Configuration config=cp.parseConfiguration(configFile);

DefaultShellCallback callback=newDefaultShellCallback(overwrite);

MyBatisGenerator myBatisGenerator=newMyBatisGenerator(config,

callback, warnings);

myBatisGenerator.generate(null);

}publicstaticvoidmain(String[] args)throwsException {try{

GeneratorSqlmap generatorSqlmap=newGeneratorSqlmap();

generatorSqlmap.generator();

}catch(Exception e) {

e.printStackTrace();

}

}

}

五、测试5.1、测试类

packagecom.pb.ssm.mapper;importstaticorg.junit.Assert.fail;importjava.util.Date;importjava.util.List;importjavax.crypto.Cipher;importorg.junit.Before;importorg.junit.Test;importorg.springframework.context.applicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;importcom.pb.ssm.po.Author;importcom.pb.ssm.po.AuthorExample;importcom.pb.ssm.po.AuthorExample.Criteria;publicclassAuthorMapperTest {privateApplicationContext applicationContext;privateAuthorMapper authorMapper;

@BeforepublicvoidsetUp()throwsException {

applicationContext=newClassPathXmlApplicationContext("ApplicationContext.xml");

authorMapper=(AuthorMapper) applicationContext.getBean("authorMapper");

}//根据条件查询记录数@TestpublicvoidtestCountByExample() {

AuthorExample example=newAuthorExample();//可以加条件,不加条件默认查询全部Criteria criteria=example.createCriteria();//加条件,介绍不是空的criteria.andAuthorBioIsNotNull();intnum=authorMapper.countByExample(example);

System.out.println("num="+num);

}//根据条件删除@TestpublicvoidtestDeleteByExample() {

AuthorExample example=newAuthorExample();//可以加条件,不加条件默认查询全部Criteria criteria=example.createCriteria();

criteria.andAuthorUsernameEqualTo("程序员");intnum=authorMapper.deleteByExample(example);

System.out.println("num="+num);

}//根据主键ID删除@TestpublicvoidtestDeleteByPrimaryKey() {intnum=authorMapper.deleteByPrimaryKey(18);

System.out.println("num="+num);

}//插入@TestpublicvoidtestInsert() {

Author author=newAuthor();

author.setAuthorUsername("再测试一下");

author.setAuthorPassword("admin123");

author.setAuthorEmail("admin1234@QQ.com");intnum=authorMapper.insert(author);

System.out.println("num="+num);//这个方法插入,默认不会把数据库自增加ID返回,如果需要,可以手动增加System.out.println("插入后的ID"+author.getAuthorId());

}//插入@TestpublicvoidtestInsertSelective() {

Author author=newAuthor();

author.setAuthorUsername("再测试一下");

author.setAuthorPassword("admin123");

author.setAuthorEmail("admin1234@qq.com");

author.setRegisterTime(newDate());intnum=authorMapper.insert(author);

System.out.println("num="+num);//这个方法插入,默认不会把数据库自增加ID返回,如果需要,可以手动增加System.out.println("插入后的ID"+author.getAuthorId());

}//自定义 条件查询@TestpublicvoidtestSelectByExample() {//声明一个对象AuthorExample authorExample=newAuthorExample();//创建criteria对象添加条件 and 连接Criteria criteria=authorExample.createCriteria();//需要手动加%criteria.andAuthorUsernameLike("%张三%");

List<Author> list=authorMapper.selectByExample(authorExample);

System.out.println(list.size());

}//根据主键ID查询@TestpublicvoidtestSelectByPrimaryKey() {

Author author= authorMapper.selectByPrimaryKey(6);

System.out.println(author.getAuthorUsername()+"..."+author.getAuthorBio());

}

@TestpublicvoidtestUpdateByExampleSelective() {

fail("Not yet implemented");

}

@TestpublicvoidtestUpdateByExample() {

fail("Not yet implemented");

}

@TestpublicvoidtestUpdateByPrimaryKeySelective() {

fail("Not yet implemented");

}

@TestpublicvoidtestUpdateByPrimaryKey() {

fail("Not yet implemented");

}

}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航