java_model_dao_自动生成_generator-mybatis-generator-1.3.2 基于maven插件
用mybatis原因很简单,易用,性能。是介于jdbc和hibernate之间的一个完美方案。
很简单:
1:配置pom
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test.database</groupId>
<artifactId>dao-core</artifactId>
<version>0.0.1-SNAPSHOT</version> <dependencies> <dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.1.1</version>
</dependency> <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
</dependency> <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<type>jar</type>
<scope>test</scope>
</dependency> </dependencies> <build>
<plugins>
<!-- mybits dao层 自动生成代码 插件 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
</build>
</project>
2: src/main/resources 下新建 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>
<!--classPathEntry:数据库的JDBC驱动 -->
<classPathEntry
location="D:\soft_源程序\DB\mysql\mysql-connector-java-5.1.19-bin.jar" /> <context id="MysqlTables" targetRuntime="MyBatis3"> <!-- 注意这里面的顺序确定的,不能随变更改 -->
<!-- 自定义的分页插件 <plugin type="com.deppon.foss.module.helloworld.shared.PaginationPlugin"/> --> <!-- 可选的(0 or 1) -->
<!-- 注释生成器 -->
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator> <!-- 必须的(1 required) -->
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/data?useUnicode=true&characterEncoding=UTF-8"
userId="root" password="123654">
</jdbcConnection> <!-- 可选的(0 or 1) -->
<!-- 类型转换器或者加类型解析器 -->
<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer true,把JDBC DECIMAL 和
NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver> <!-- 必须的(1 required) -->
<!-- java模型生成器 -->
<!-- targetProject:自动生成代码的位置 -->
<javaModelGenerator targetPackage="com.test.model"
targetProject="F:\Workspaces\workspace_eclipse\dao-core\src\main\java">
<!-- TODO enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="true" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator> <!-- 必须的(1 required) -->
<!-- map xml 生成器 -->
<sqlMapGenerator targetPackage="com.test.persistence"
targetProject="F:\Workspaces\workspace_eclipse\dao-core\src\main\resources">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator> <!-- 可选的(0 or 1) -->
<!-- mapper 或者就是dao接口生成器 -->
<javaClientGenerator targetPackage="com.test.dao"
targetProject="F:\Workspaces\workspace_eclipse\dao-core\src\main\java"
type="XMLMAPPER">
<property name="enableSubPackages" value="true" />
</javaClientGenerator> <!-- 必须的(1...N) -->
<!-- pojo 实体生成器 -->
<!-- tableName:用于自动生成代码的数据库表;domainObjectName:对应于数据库表的javaBean类名 -->
<!-- schema即为数据库名 可不写 -->
<table schema="data" tableName="tab_city" domainObjectName="CityModel"
enableInsert="true">
<!-- 忽略字段 可选的(0 or 1) -->
<!-- <ignoreColumn column="is_use" /> -->
<!--//无论字段是什么类型,生成的类属性都是varchar。 可选的(0 or 1) 测试无效 -->
<!-- <columnOverride column="city_code" jdbcType="VARCHAR" /> -->
</table> </context>
</generatorConfiguration>
3: 点击pom,run as maven bulid : mybatis-generator:generate 红色字最好自己手敲或者copy.
构建完后:

4:项目中使用的话,需要建立 mybatis-config.xml 在 src/main/resources 下
<?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://localhost:3306/data" />
<property name="username" value="root" />
<property name="password" value="123654" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/test/persistence/CityModelMapper.xml" />
</mappers>
<!-- <typeAliases> <typeAlias type="com.hoo.entity.Account" alias="account"/>
</typeAliases> -->
</configuration>
5: 建立测试
5.1 java传统测试
TestDao.java
package com.test.dao; import java.io.IOException;
import java.io.Reader; 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 com.test.model.CityModel; public class TestDao {
public static void main(String[] args) {
SqlSession session = null;
String resource = "mybatis-config.xml";
Reader reader = null;
try {
reader = Resources.getResourceAsReader(resource);
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder()
.build(reader);
session = sessionFactory.openSession(); CityModelMapper cityModelMapper = session
.getMapper(CityModelMapper.class); // CityModel cityModel = new CityModel();
// cityModel.setId(7);
// cityModel.setCityName("test7");
// cityModel.setCityCode(2);
// cityModelMapper.insert(cityModel);
// session.commit();
// System.out.println("插入一个city name" + cityModel.getCityName());
CityModel cityModel = cityModelMapper.selectByPrimaryKey(4);
session.commit();
System.out.println(cityModel.getCityName());
cityModel.setCityName("testchange");
;
cityModelMapper.updateByPrimaryKey(cityModel);
session.commit();
System.out.println("update"); } catch (IOException e) {
e.printStackTrace();
} finally {
if (null != session)
session.close();
}
}
}
5.2 单元测试:
CityModelMapperTest.java
package com.test.dao; import static org.junit.Assert.fail; import java.io.Reader;
import java.util.List; import junit.framework.Assert; 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 org.junit.After;
import org.junit.Before;
import org.junit.Test; import com.test.model.CityModel;
import com.test.model.CityModelExample; public class CityModelMapperTest {
SqlSession session = null;
CityModelMapper cityModelMapper = null; @Before
public void setUp() throws Exception {
String resource = "mybatis-config.xml";
Reader reader = null;
reader = Resources.getResourceAsReader(resource);
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder()
.build(reader);
session = sessionFactory.openSession();
cityModelMapper = session.getMapper(CityModelMapper.class);
} @Test
public void testCountByExample() {
fail("Not yet implemented");
} @Test
public void testDeleteByExample() {
fail("Not yet implemented");
} @Test
public void testDeleteByPrimaryKey() { int flag = cityModelMapper.deleteByPrimaryKey(10);
session.commit();
System.out.println("返回值:" + flag);
System.out.println("删除一个city id " + 10);
Assert.assertTrue(flag > 0);
} @Test
public void testInsert() {
CityModel cityModel = new CityModel();
int i = 10;
cityModel.setId(i);
cityModel.setCityName("test" + i);
cityModel.setCityCode(i);
cityModelMapper.insert(cityModel);
session.commit();
System.out.println("插入一个city name" + cityModel.getCityName());
} @Test
public void testInsertSelective() {
fail("Not yet implemented");
} @Test
public void testSelectByExample() {
CityModelExample example = new CityModelExample();
example.setDistinct(false);
example.setOrderByClause("id");
example.createCriteria().andIdBetween(1, 3);
List<CityModel> cityList = cityModelMapper.selectByExample(example);
for (CityModel cityModel : cityList) {
System.out.println("id:" + cityModel.getId() + "\n" + "name:"
+ cityModel.getCityName() + "\n");
}
fail("Not yet implemented");
} @Test
public void testSelectByPrimaryKey() {
CityModel cityModel = cityModelMapper.selectByPrimaryKey(8);
System.out.println("查询到一个city" + cityModel.getCityName());
Assert.assertTrue(null != cityModel);
} @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() {
CityModel cityModel = new CityModel();
int i = 8;
cityModel.setId(i);
cityModel.setCityName("updaet" + i);
cityModel.setCityCode(i);
int flag = cityModelMapper.updateByPrimaryKey(cityModel);
session.commit();
System.out.println("返回值:" + flag);
System.out.println("update一个city id " + i);
Assert.assertTrue(flag > 0);
} @After
public void tearDown() throws Exception {
} }
6: 用到的sql
DROP TABLE IF EXISTS `tab_city`;
CREATE TABLE `tab_city` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`city_name` varchar(255) DEFAULT NULL COMMENT '城市名称',
`city_code` int(11) NOT NULL COMMENT '用三位数字表示 例如 001 代表朝阳',
`is_use` int(11) DEFAULT NULL COMMENT '是否有效',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='城市代码表';
完。
java_model_dao_自动生成_generator-mybatis-generator-1.3.2 基于maven插件的更多相关文章
- (二)一个很好用的自动生成工具——mybatis generator
mybatis generator-自动生成代码 准备材料: 一个文件夹,一个数据库的驱动包,mybatis-generator-core-1.3.5.jar,一条生成语句 如图:(我用的是derby ...
- 【mybatis源码学习】利用maven插件自动生成mybatis代码
[一]在要生成代码的项目模块的pom.xml文件中添加maven插件 <!--mybatis代码生成器--> <plugin> <groupId>org.mybat ...
- MyBatis Generator自动生成的配置及使用
注意:文件名不能有中文字符,不然不能自动生成 找到MyBatis Generator.rar\MyBatis Generator\eclipse里的features和plugins文件,把这两个文件复 ...
- spring boot集成mybatis(3) - mybatis generator 配置
Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...
- 【转】Intellij IDEA 14中使用MyBatis-generator 自动生成MyBatis代码
Intellij IDEA 14 作为Java IDE 神器,接触后发现,非常好用,对它爱不释手,打算离开eclipse和myeclipse,投入Intellij IDEA的怀抱. 然而在使用的过程中 ...
- Spring Boot (七)MyBatis代码自动生成和辅助插件
一.简介 1.1 MyBatis Generator介绍 MyBatis Generator 是MyBatis 官方出品的一款,用来自动生成MyBatis的 mapper.dao.entity 的框架 ...
- eclipse中mybatis自动生成插件使用
对于使用Mybatis的开发者来说, 使用mybatis generator来生成mapper 以及配置文件, 可以大大简化工作, mybatis generator有多种工作方式, eclipse插 ...
- mybatis generator为实体类生成自定义注释(读取数据库字段的注释添加到实体类,不修改源码)
我们都知道mybatis generator自动生成的注释没什么实际作用,而且还增加了代码量.如果能将注释从数据库中捞取到,不仅能很大程度上增加代码的可读性,而且减少了后期手动加注释的工作量. 1.首 ...
- 通过eclipse mybatis generater代码生成插件自动生成代码
Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件.通过在Ecl ...
随机推荐
- 采用objdump调试驱动程序
最近的一个推断调整nand是好是坏司机+测试程序,因此,与下面的调整过程.看来他也学到了一点知识.因此,关于备案. 这篇文章主要是讲述调式驱动的一个方法而已. 先来看看測试程序 #include &l ...
- 左右presentViewController经background黑问题
看效果图: 用例如以下代码,想弹出一个模态窗体,设置它的背景透明度为0.5,却发觉prsent后的背景色变为黑色的. ShareVC *share = [[ShareVC alloc] init]; ...
- 【Web探索之旅】第二部分第三课:框架和内容管理系统
内容简介 1.第二部分第三课:框架和内容管理系统 2.第二部分第四课预告:数据库 第二部分第三课:框架和内容管理系统 上一课我们介绍了服务器端的编程语言,有PHP,Java,Python,Ruby ...
- 使用Simple DNS plus 构建自己的DNS
1.下载并安装Simple DNS plus 2.界面例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2tfYm9zcw==/font/5a6L ...
- SRM 620 D2L3: RandomGraph, dp
称号:http://community.topcoder.com/stat? c=problem_statement&pm=13143&rd=15853 參考:http://apps. ...
- HYSBZ 2243 染色 (树链拆分)
主题链接~~> 做题情绪:这题思路好想.调试代码调试了好久.第一次写线段树区间合并. 解题思路: 树链剖分 + 线段树区间合并 线段树的端点记录左右区间的颜色.颜色数目.合并的时候就用区间合并的 ...
- [Android] App在三星某些机子上闪退:"不保留活动"
今天遇到用户反映应用总是闪退. 现象:在MainActivity后,只要进入任何主进程相关的二级界面,都会导致应用闪退(注:不是崩溃引起的,只是闪退) 分析:1.看log日志,退出前有抛出异常,但查看 ...
- 开源 自由 java CMS - FreeCMS2.0 举APP产生信息数据
项目地址:http://www.freeteam.cn/ 生成信息数据 生成当前管理网站下同意移动APP訪问的栏目的信息页面. 从左側管理菜单点击生成信息数据进入. 您能够选择须要生成的栏目,然后点击 ...
- 微通道产品经理Grover采访:美国的微通道设计
"'哥'在中国是一种尊称吗?哈哈.我们平时都叫张小龙'龙哥'." "是的.Dan哥,当你认为某个人牛逼的时候,你就能够叫他'哥'." 我对于Dan Grover ...
- 微服务API Gateway
翻译-微服务API Gateway 原文地址:http://microservices.io/patterns/apigateway.html,以下是使用google翻译对原文的翻译. 让我们想象一下 ...