mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml、po..)
该工程源码已上传我的资源页 http://download.csdn.net/detail/u012373815/8941137
数据库到java 代码
企业实际开发中,常用的逆向工程方式:
由于数据库的表生成java代码。
目录
建议使用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>
<propertyname="suppressAllComments"value="true"/>
commentGenerator>
<jdbcConnectiondriverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mybatis"userId="root"
password="mysql">
jdbcConnection>
<javaTypeResolver>
<propertyname="forceBigDecimals"value="false"/>
javaTypeResolver>
<javaModelGeneratortargetPackage="cn.hpu.ssm.po"
targetProject=".\src">
<propertyname="enableSubPackages"value="false"/>
<propertyname="trimStrings"value="true"/>
javaModelGenerator>
<sqlMapGeneratortargetPackage="cn.hpu.ssm.mapper"
targetProject=".\src">
<propertyname="enableSubPackages"value="false"/>
sqlMapGenerator>
<javaClientGeneratortype="XMLMAPPER"
targetPackage="cn.hpu.ssm.mapper"
targetProject=".\src">
<propertyname="enableSubPackages"value="false"/>
javaClientGenerator>
"items">
"orders">
"orderdetail">
"user">
context>
generatorConfiguration>
Public void generator()throws Exception{
List
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();
}
}
刷新程序目录结构生成后的代码:
需要将生成工程中所生成的代码拷贝到自己的工程中。
测试ItemsMapper中的方法
//自定义条件查询
@Test
public void testSelectByExample() {
ItemsExampleitemsExample = newItemsExample();
//通过criteria构造查询条件
ItemsExample.Criteriacriteria = itemsExample.createCriteria();
criteria.andNameEqualTo("笔记本3");
//可能返回多条记录
List
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);
}
源码传资源了在我的资源页