记录一下:mybatis配置

generator自动生成mybatis的xml配置、model、map等信息:
一、下载mybatis-generator-core-1.3.2.jar包。
网址:http://code.google.com/p/mybatis/downloads/list?can=3&q=Product%3DGenerator,下载mybatis-generator-core-1.3.2-bundle.zip,解压
找到lib下的须要jar包。
二、编写genertor的xml文件,名下:generator.xmlhtml

Xml代码java

<?xmlversion="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">mysql



<classPathEntrylocation="E:\oracle\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar"/>



<propertyname="suppressAllComments"value="true"/>


<jdbcConnectiondriverClass="oracle.jdbc.driver.OracleDriver"
connectionURL="jdbc:oracle:thin:@198.17.1.1:1521:ORCL"
userId="unuser"
password="password">



<propertyname="forceBigDecimals"value="false"/>


<javaModelGeneratortargetPackage="com.soft.model"targetProject="E:\WebWorkSpace\workspace_js\downAttachdemo\src">

<propertyname="enableSubPackages"value="true"/>

<propertyname="trimStrings"value="true"/>
spring

<sqlMapGeneratortargetPackage="sqlmap"targetProject="E:\WebWorkSpace\workspace_js\downAttachdemo\conf">
<propertyname="enableSubPackages"value="false"/>
sql

<javaClientGeneratortype="XMLMAPPER"targetPackage="com.soft.mapping"targetProject="E:\WebWorkSpace\workspace_js\downAttachdemo\src">
<propertyname="enableSubPackages"value="true"/>

数据库

table其余属性:
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false"
schema即为数据库名, tableName为对应的数据库表, domainObjectName是要生成的实体类,
若是想要mapper配置文件加入sql的where条件查询, 能够将enableCountByExample等设为true,
这样就会生成一个对应domainObjectName的Example类, enableCountByExample等设为false时,
就不会生成对应的Example类了.apache

若是table里边不配置property,默认字段都生成为类属性。
//忽略字段
//不管字段是什么类型,生成的类属性都是varchar。session

三、运行有四种:命令生成(最简单)、Java生成、ant生成、maven生成。这里说两种,有兴趣其他的能够在mybatis官网去学习。mybatis

1)、运行-》cmd->java - jar jar包的文件路径 -configfile generator.xml的文件路径 -overwrite 命令。
以下:
Java代码架构

java -jar E:\Websoft\mybaits\mybatis-generator-core-1.3.2\lib\mybatis-generator-core-1.3.2.jar -configfile E:\WebWorkSpace\workspace_js\downAttachdemo\src\com\mochasoft\down\generator.xml -overwrite

成功时输出:MyBatis Generator finished successfully.
2)、java运行关键代码:

Java代码

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

其实Java运行,细分能够分两种,还有一种能够去官网学习。

四、生成代码以后,根据本身的实际项目架构,能够对生成的代码进行适当的修改,如把数据库管理交有spring等等。

================
另一个文章

本文将简要介绍怎样利用Mybatis Generator自动生成Mybatis的相关代码:

1、构建一个环境:

  1. 首先建立一个表:

Sql代码 收藏代码
CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);

  1. 而后注入数据
    Sql代码 收藏代码
    insert into pet values('Fluffy', 'Harold', 'cat', 'f', '1993-02-04', null);
    insert into pet values('Claws', 'Gwen', 'cat', 'm', '1994-03-17', null);
    insert into pet values('Buffy', 'Harold', 'dog', 'f', '1989-05-13', null);
    insert into pet values('Fang', 'Benny', 'dog', 'm', '1990-08-27', null);
    insert into pet values('Bowser', 'Diane', 'dog', 'm', '1979-08-31', '1995-07-29');
    insert into pet values('Chirpy', 'Gwen', 'bird', 'f', '1998-09-11', null);
    insert into pet values('Whistler', 'Gwen', 'bird', null, '1997-12-09', null);
    insert into pet values('Slim', 'Benny', 'snake', 'm', '1996-04-29', null);

注:这里的sql例子来自 http://dev.mysql.com/doc/refman/5.5/en/creating-tables.html

  1. 在 Mybatis 主页 http://code.google.com/p/mybatis/ 上下载 Mybatis mybatis-generator-core [本文使用的是 1.3.0 版本]。固然运行 mybatis-generator 生成的代码还须要下载 mybatis 的 jar 包[本例使用的是 3.0.2 版本],和相关数据库的 jdbc [本文中使用的是MySql的jdbc] 。

2、运行 mybatis-generator

  1. 要运行 generator ,须要给 generator 提供一个配置文件,指定其生成的数据库的相关信息。
    如下是一个示例:
    Xml代码 收藏代码

    <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">


<context id="DB2Tables" targetRuntime="MyBatis3">  

    <commentGenerator>  
        <property name="suppressDate" value="true" />  
    </commentGenerator>  

    <jdbcConnection driverClass="com.mysql.jdbc.Driver"  
        connectionURL="jdbc:mysql://localhost/test" userId="qgd" password="123456">  
    </jdbcConnection>  

    <javaTypeResolver>  
        <property name="forceBigDecimals" value="false" />  
    </javaTypeResolver>  

    <javaModelGenerator targetPackage="test.model"  
        targetProject="../src/main/java">  
        <property name="enableSubPackages" value="true" />  
        <property name="trimStrings" value="true" />  
    </javaModelGenerator>  

    <sqlMapGenerator targetPackage="test.dao"  
        targetProject="../src/main/java">  
        <property name="enableSubPackages" value="true" />  
    </sqlMapGenerator>  

    <javaClientGenerator type="XMLMAPPER"  
        targetPackage="test.dao" targetProject="../src/main/java">  
        <property name="enableSubPackages" value="true" />  
    </javaClientGenerator>  

    <table tableName="pet" domainObjectName="Pet">  
    </table>  

</context>

这个配置文件提供了 mybatis-generator所须要的参数信息:
* 其中classPathEntry 是引用的jdbc的类路径,这里将jdbc jar和generator的jar包放在一块儿了;
* commentGenerator 是用来除去时间信息的,这在配合相似subversion的代码管理工具时使用颇有效,由于能够减小没有必要的注释迁入;
* jdbcConnection是指定的jdbc的链接信息;
* javaTypeResolver式类型转换的信息,这里并无用到;
* javaModelGenerator是模型的生成信息,这里将指定这些Java model类的生成路径;
* sqlMapGenerator是mybatis 的sqlMapper XML文件的生成信息,包括生成路径等;
* javaClientGenerator是应用接口的生成信息;
* table是用户指定的被生成相关信息的表,它必须在指定的jdbc链接中已经被创建。

  1. mybatis-generator 有多种运行方式,最简单的就是命令行的方式,只须要指定相应的配置文件的路径便可:
    Java代码 收藏代码
    java -jar mybatis-generator-core-1.3.0.jar -configfile ../src/main/resource/config.xml -overwrite

运行后生成的代码包括模型类 test.model.Pet 和 test.model.PetExample , test.dao.PetMapper 接口以及其相对应的 xml 映射文件,在这里就不在赘述了。

3、使用 mybatis-generator 生成的代码

  1. 如今咱们要利用这些生成的代码,首先咱们须要一个关于全部映射的配置文件。须要咱们手写以下:【不知道为何generator没有选择自动生成这个文件,毕竟这些信息generator均可以获得】
    Xml代码 收藏代码

    <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">















  2. 另外还要使用而后咱们还须要一个Main示例方法来调用这些已生成的代码:
    Java代码 收藏代码
    package test;

import java.io.Reader;
import java.util.List;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import test.dao.PetMapper;
import test.model.Pet;
import test.model.PetExample;

public class Test {

public static void main(String[] args) throws Exception {  
    String resource = "MapperConfig.xml";  
    Reader reader = Resources.getResourceAsReader(resource);  
    SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);  
    SqlSession sqlSession = sqlMapper.openSession();  

    PetExample pet = new PetExample();  
    pet.or().andDeathIsNotNull();  
    try {  
        PetMapper mapper = sqlSession.getMapper(PetMapper.class);  
        List<Pet> allRecords = mapper.selectByExample(pet);  
        for (Pet s : allRecords)  
            System.out.println(s);  
    } finally {  
        sqlSession.close();  
    }  
}

}

这样就能够打印出相应的查询结果信息了。

4、小结

该示例的完整的Eclipse工程见附件mybatis-generator-usage.zip,其中已经包含了示例须要使用的jar包。

本文中只是用到了mybatis-generator 的一部分功能,mybatis-generator 生成代码的方式还包括ant或Maven脚本,或者直接使用java API生成;另外经过修改配置文件,generator还能够指定表的生成细节,并能够添加插件。其功能文档在generator的分发包的doc文件夹下有更详细的介绍。

这里使用的表示没有主键的表,针对有一个主键或多个主键的表,mybatis-generator的生成的内容也有所不一样,感兴趣的读者能够自行试验一下。 mybatis-generator-usage.zip (1.6 MB)

相关文章
相关标签/搜索