Mybatis上路_05-使用命令行自动生成

1.数据准备:

        mysql5.5 

1)建库:

CREATE DATABASE DB_MYBATIS CHAR SET UTF8;
USE DB_MYBATIS;

2)建表:
CREATE TABLE TB_GENERATOR(
	id INT PRIMARY KEY AUTO_INCREMENT,
	name VARCHAR(60) ,
	notes VARCHAR(200) 
);

3)预设数据:

INSERT INTO TB_GENERATOR VALUES (1, "eminem1", "notes1");
INSERT INTO TB_GENERATOR VALUES (2, "eminem2", "notes2");

2.编写Generator执行配置文件:  

generatorConfigation.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>
	<!-- 数据库驱动包 -->
	<classPathEntry location="mysql-connector-java-5.1.22-bin.jar" />

	<!-- 环境配置 **************************************************
		id="自定义的配置名称"
		targetRuntime="MyBatis版本" -->
	<context id="MySqlTables" targetRuntime="MyBatis3" >
	
		<!-- 数据库  ===============================================
			driverClass="驱动"
			connectionURL="数据库url"
			userId="用户"
			password="密码" -->
		<jdbcConnection 
			driverClass="com.mysql.jdbc.Driver"	
			connectionURL="jdbc:mysql://127.0.0.1:3306/db_mybatis"   
			userId="root" 
			password="root">	 
		</jdbcConnection>

		<!-- Java数据类型分离器,数据类型转换 =====================
			property 属性
				name="强迫双精度"
				value="不" -->
		<javaTypeResolver>
			<property name="forceBigDecimals" value="false" />
		</javaTypeResolver>

		<!-- Java模型生成器 =======================================
			targetPackage="生成文件的目标路径"
			targetProject="已存在的项目包"
				enableSubPackages-可以省略对应约束名,true-是的,可以省略tb_generator 
				trimString-验证字符串,true-是的 -->
		<javaModelGenerator 
				targetPackage="test.model"
				targetProject="\cn\cvu">
			<property name="enableSubPackages" value="false" />
			<property name="trimStrings" value="true" />
		</javaModelGenerator>

		<!-- sql映射文件生成器 ======================================= 
			targetPackage="生成文件的目标路径"
			targetProject="已存在的项目包"
				enableSubPackages-可以省略对应约束名,true-是的,可以省略tb_generator -->
		<sqlMapGenerator 
				targetPackage="test.xml"
				targetProject="\cn\cvu">
			<property name="enableSubPackages" value="false" />
		</sqlMapGenerator>

		<!-- java委托对象DAO生成器,接口 ============================= 
			type=""
			targetPackage="生成文件的目标路径"
			targetProject="已存在的项目包"
				enableSubPackages-可以省略对应约束名,true-是的,可以省略tb_generator -->
		<javaClientGenerator 
				type="XMLMAPPER"
				targetPackage="test.dao" 
				targetProject="\cn\cvu">
			<property name="enableSubPackages" value="false" />
		</javaClientGenerator>
		
		<!-- 表单,已存在,根据此表生成其它文件 =======================
			tableName="已有的表单名称"
			domainObjetctName="对应生成的文件名前缀" -->
		<table tableName="tb_generator" domainObjectName="Eminem">
			<!-- useActualColumnNames-使用真实列名 , 
				 true-嗯。如果false,则由columnOverride节点控制  -->
			<property name="useActualColumnNames" value="true" />
			
			<!-- 标识列 
				column="列名" sqlStatement="某种数据库语言" identity="作为主键" -->
			<generatedKey column="id" sqlStatement="MySql" identity="true" />
			
			<!-- 覆盖项,当上面的property name="useActualColumnNames" value="true"时。  
				column="被覆盖值的列名" property="用来覆盖的对应的java类的属性" -->
			<columnOverride column="name" property="generName" />

		</table>
		
	</context>
</generatorConfiguration>

3.搭建执行环境:

        1)创建项目包:

                    

        2)准备文件:

                    

4.执行命令行语句:

        C:\> java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfigation.xml 

        如果增加“ -overwrite ”参数会覆盖原有文件。事实上原有文件会被重命名。


5.查看生成的文件:

6.查看文件内容:

        MyEclipse中新建空web项目,将“cn”包放入“src”内。

        1) cn/cvu/dao/EminemMapper.java 

                (1)修改自动生成的包路径。如果没有注解类包,可以注释图中第4行代码。

                2)然后将图中两行代码中的注解删除。

        2cn/cvu/model/Eminem.java 

                修改包路径。

 

        3) cn/cvu/model/EminemExample.java 

                修改包路径。

        4cn/cvu/xml/EminemMapper.xml 

                修改映射文件路径:







7.测试,使用生成的文件查询:

        1)导入MyBatisjar包:

                mybatis-3.2.2.jar  
                mybatis-generator-core-1.3.2.jar 
                mysql-connector-java-5.1.22-bin.jar 
                

        2)创建MyBatisxml配置文件:

                             

                上面我们注释掉了自动生成的注解代码,在src新建一个xml配置文件,mybatisConfigation.xml

<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE configuration  
   PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url" value="jdbc:mysql://127.0.0.1:3306/db_mybatis" />
				<property name="username" value="root" />
				<property name="password" value="root" />
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<!-- 引入MBG生成器创建的映射文件 -->
		<mapper resource="cn/cvu/test/xml/EminemMapper.xml" />
	</mappers>
</configuration>

        3Java测试代码:

                创建测试类cn.cvu.test.dotest.TestGenerateWithXML 

                 

package cn.cvu.test.dotest;

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.SqlSessionFactoryBuilder;
import org.junit.Test;
import cn.cvu.test.dao.EminemMapper;
import cn.cvu.test.model.Eminem;
import cn.cvu.test.model.EminemExample;
import cn.cvu.test.model.EminemExample.Criteria;

public class TestGenerateWithXML {

	@Test
	public void testQuery() throws Exception {
		// 创建SQL会话: 
		Reader reader = Resources.getResourceAsReader("mybatisConfigation.xml");
		SqlSession session = new SqlSessionFactoryBuilder().build(reader).openSession();

		// 创建查询实例: 
		EminemExample eminemExample = new EminemExample();

		// 获取映射实体: 
		EminemMapper mapper = session.getMapper(EminemMapper.class);
		
		// 利用实体通过实例查询全部条目
		List<Eminem> eminems = mapper.selectByExample(eminemExample);
		System.out.println("ID \t\t name \t\t notes \n");
		for (Eminem eminem : eminems) {
				System.out.println(eminem.getId()+
								"\t\t"+eminem.getGenerName()+
								"\t\t"+eminem.getNotes());
		}
		session.close();
	}
}

                      

- end 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值