mybatis逆向工程 转自http://blog.csdn.net/u012373815/article/details/47111995
来源:互联网 发布:印章生成器软件下载 编辑:程序博客网 时间:2024/06/03 16:16
什么是逆向工程
mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码
目录
使用方法
运行逆向工程
建议使用java程序方式,不依赖开发工具有java环境即可。
生成代码配置文件
1、 添加要生成的数据库表
2、 po文件所在包路径
3、 mapper文件所在包路径
配置文件如下:注意标红处
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEgeneratorConfiguration
PUBLIC "-//mybatis.org//DTDMyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<contextid="testTables"targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是: false:否 -->
<propertyname="suppressAllComments"value="true"/>
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnectiondriverClass="com.MySQL.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mybatis"userId="root"
password="mysql">
</jdbcConnection>
<!--<jdbcConnection driverClass="Oracle.jdbc.OracleDriver"
connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg"
userId="yycg"
password="yycg">
</jdbcConnection> -->
<!-- 默认false,把JDBC DECIMAL和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL和
NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<propertyname="forceBigDecimals"value="false"/>
</javaTypeResolver>
<!-- targetProject:生成PO类的位置 -->
<javaModelGeneratortargetPackage="cn.hpu.ssm.po"
targetProject=".\src">
<!--enableSubPackages:是否让schema作为包的后缀 -->
<propertyname="enableSubPackages"value="false"/>
<!-- 从数据库返回的值被清理前后的空格 -->
<propertyname="trimStrings"value="true"/>
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGeneratortargetPackage="cn.hpu.ssm.mapper"
targetProject=".\src">
<!--enableSubPackages:是否让schema作为包的后缀 -->
<propertyname="enableSubPackages"value="false"/>
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGeneratortype="XMLMAPPER"
targetPackage="cn.hpu.ssm.mapper"
targetProject=".\src">
<!--enableSubPackages:是否让schema作为包的后缀 -->
<propertyname="enableSubPackages"value="false"/>
</javaClientGenerator>
<!-- 指定数据库表 -->
<table tableName="items"></table>
<table tableName="orders"></table>
<table tableName="orderdetail"></table>
<table tableName="user"></table>
</context>
</generatorConfiguration>
1.3.3 执行生成程序
Public void generator()throws Exception{
List<String>warnings = newArrayList<String>();
boolean overwrite =true;
FileconfigFile = newFile("generatorConfig.xml");
ConfigurationParsercp = newConfigurationParser(warnings);
Configurationconfig = cp.parseConfiguration(configFile);
DefaultShellCallbackcallback = new DefaultShellCallback(overwrite);
MyBatisGeneratormyBatisGenerator = new MyBatisGenerator(config,
callback,warnings);
myBatisGenerator.generate(null);
}
Public static voidmain(String[] args)throws Exception {
try {
GeneratorSqlmapgeneratorSqlmap = new GeneratorSqlmap();
generatorSqlmap.generator();
}catch(Exception e) {
e.printStackTrace();
}
}
刷新程序目录结构生成后的代码:
1.3.4 使用生成的代码
需要将生成工程中所生成的代码拷贝到自己的工程中。
测试ItemsMapper中的方法
//自定义条件查询
@Test
public void testSelectByExample() {
ItemsExampleitemsExample = newItemsExample();
//通过criteria构造查询条件
ItemsExample.Criteriacriteria = itemsExample.createCriteria();
criteria.andNameEqualTo("笔记本3");
//可能返回多条记录
List<Items>list = itemsMapper.selectByExample(itemsExample);
System.out.println(list);
}
//根据主键查询
@Test
public voidtestSelectByPrimaryKey() {
Itemsitems = itemsMapper.selectByPrimaryKey(1);
System.out.println(items);
}
//插入
@Test
public void testInsert() {
//构造 items对象
Itemsitems = newItems();
items.setName("手机");
items.setPrice(999f);
itemsMapper.insert(items);
}
//更新数据
@Test
public void testUpdateByPrimaryKey() {
//对所有字段进行更新,需要先查询出来再更新
Items items = itemsMapper.selectByPrimaryKey(1);
items.setName("水杯");
itemsMapper.updateByPrimaryKey(items);
//如果传入字段不空为才更新,在批量更新中使用此方法,不需要先查询再更新
//itemsMapper.updateByPrimaryKeySelective(record);
}
- mybatis逆向工程 转自http://blog.csdn.net/u012373815/article/details/47111995
- 转自 http://blog.csdn.net/coollofty/article/details/8058859
- 转自http://blog.csdn.net/rookieding/article/details/7639898
- 转自http://blog.csdn.net/mazhaojuan/article/details/7660657
- 转自: http://blog.csdn.net/ahuier/article/details/8982516
- 转自: http://blog.csdn.net/xiaxiaorui2003/article/details/3838631
- 转自 http://blog.csdn.net/gnehcuoz/article/details/52686824
- 转自 http://blog.csdn.net/g_brightboy/article/details/14229139
- 转载自http://blog.csdn.net/fei20072050104/article/details/21785565
- 转载自:http://blog.csdn.net/lmj623565791/article/details/24015867
- 转载自 http://blog.csdn.net/racehorse/article/details/6593719
- 转载自http://blog.csdn.net/zhengzhihust/article/details/44151785
- 转载自http://blog.csdn.net/huxu981598436/article/details/51626569
- 转载自http://blog.csdn.net/lwyygydx/article/details/41870377
- 转载自:http://blog.csdn.net/go_hyp/article/details/53693058
- 转载自 http://blog.csdn.net/bieleyang/article/details/76973220
- 转载自http://blog.csdn.net/wwww1988600/article/details/7309070
- IServerContext转自 http://blog.csdn.net/limina/article/details/4228227
- 算法导论 练习题 6.1-7
- STL适配器之queue
- 修改访问死路径问题
- SQL查询之case when then的用法
- bzoj3744: Gty的妹子序列
- mybatis逆向工程 转自http://blog.csdn.net/u012373815/article/details/47111995
- [亲测经验分享] ubuntu16.04 + cuda8.0安装配置
- 小波的秘密7_图像处理应用:图像压缩
- 1970-01-01 08:00:00 时间由来
- SetWindowPos函数详解及CenterWindow()的用法
- ESB v6.5.1,ESB6.5.1studio导出的ecd部署包,通过Governor部署到Linux系统的服务器上,提示“目标文件类型不合法”。
- 批量梯度下降算法BGD,小批量梯度下降法MBGD,随机梯度下降算法SGD的比较
- 小波的秘密8_图像处理应用:图像降噪
- Android 发送验证码倒计时常用的两种办法