1      逆向工程

1.1  什么是逆向工程

mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.Java,mapper.xml、po..)

该工程源码已上传我的资源页   http://download.csdn.NET/detail/u012373815/8941137

数据库到java 代码

企业实际开发中,常用的逆向工程方式:

由于数据库的表生成java代码。

1.2  逆向工程

目录

1.3  使用方法(会用)

1.3.1    运行逆向工程

建议使用java程序方式,不依赖开发工具有java环境即可。

1.3.2    生成代码配置文件

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 的逆向工程的更多相关文章

  1. mybatis的逆向工程

    mybatis的逆向工程是很大的减少了程序员对代码的编写工作,由于mybatis是半自动的sql语句使用,我们在项目中一般都是采用逆向工程来生成mybatis的文件,mapper接口相当于我们平常所说 ...

  2. Mybatis(七) mybatis的逆向工程的配置详解

    还是觉得看书学习有意思~嘿嘿.今天把mybatis给结束掉. --WH 一.什么是逆向工程? 简单点说,就是通过数据库中的单表,自动生成java代码. Mybatis官方提供了逆向工程,可以针对单表自 ...

  3. Mybatis【逆向工程,缓存,代理】知识要点

    前言 本文主要讲解Mybatis的以下知识点: Mybatis缓存 一级缓存 二级缓存 与Ehcache整合 Mapper代理 使用Mapper代理就不用写实现类了 逆向工程 自动生成代码 Mybat ...

  4. Mybatis学习(七)————— mybatis的逆向工程的配置详解

    一.什么是逆向工程? 简单点说,就是通过数据库中的单表,自动生成java代码. Mybatis官方提供了逆向工程,可以针对单表自动生成mybatis代码(mapper.java\mapper.xml\ ...

  5. SpringBoot+Mybatis+Generator 逆向工程使用(二)

    Mybatis-Genarator 逆向工程使用 个人开发环境 java环境:Jdk1.8.0_60 编译器:IntelliJ IDEA 2017.1.4 mysql驱动:mysql-connecto ...

  6. 【MyBatis学习15】MyBatis的逆向工程生成代码

    1. 什么是逆向工程 mybatis的一个主要的特点就是需要程序员自己编写sql,那么如果表太多的话,难免会很麻烦,所以mybatis官方提供了一个逆向工程,可以针对单表自动生成mybatis执行所需 ...

  7. 创建mybatis的逆向工程

    1.mybatis的逆向工程(我使用的是maven仓库创建) 工作原理:反向工程(通过数据库中的表和字段信息去生成对应的增删改查方法) 其实就是一个自动生成工具 生成实体类(pojo)和映射文件(ma ...

  8. Mybatis的逆向工程以及Example的实例函数及详解

    Mybatis-generator是Mybatis的逆向工程  (根据数据库中的表生成java代码) Mybatis的逆向工程会生成实例及实例对应的example,example用于添加条件,相当于w ...

  9. Mybatis Generator逆向工程的使用

    一.在 idea 中使用 mybatis generator 逆向工程 1.在IDEA上创建maven工程. 2.在pom.xml中配置MyBatis逆向工程插件 <!--MyBatis自动生成 ...

  10. MyBatis框架——逆向工程

    什么是逆向工程? 逆向工程师MyBatis提供的一种自动化配置方案,针对数据表自动生成MyBatis所需的各种资源,包括实体类.Mapper接口.Mapper.xml,但是逆向工程的缺陷在于只能针对单 ...

随机推荐

  1. win10常用的运行命令

    WIN+R调出命令框: 1.calc:启动计算器 2.appwiz.cpl:程序和功能 3.certmgr.msc:证书管理实用程序 4.charmap:启动字符映射表 5.chkdsk.exe:Ch ...

  2. 无法启动 IIS Express Web 服务器

    问题描述:我用的是vs2015,有时候打开自己的项目,点击调试运行,会失败,弹出窗口,告诉我,无法启动 IIS Express Web 服务器,我就纳闷了,刚才还好好,怎么这会就不行了,各种试,都不行 ...

  3. PhysicsBasedAnimation学习记录

    一.前言 1.概述 Google I/O'17推出了许多新的特性,在动画这一块又有新的API供开发者使用,在动画API中引入了DynamicAnimation,开发者可以使用新的API创建更加动态化的 ...

  4. 二维坐标点排序(JavaScript)

    今天给大家分享下最近web项目中出现的一个技术难点问题--坐标排序: 如下图所示,要求在前端页面上按顺序将下面5个模块的坐标依次保存至数据库 现在已知信息如下: 1.每个模块分别为一个div 2.每个 ...

  5. LoadRunner压力测试之Unique Number参数类型、Random Number参数类型浅析

    前几天工作需要用LoadRunner进行压力测试,期间对手机号进行参数化设置. 当时选用了<Value>137{Random_quhao}{Unique_weiyi}</Value& ...

  6. docker~通过vs2017的Dockerfile来生成镜像

    回到目录 Dockerfile这个东西我们之前是介绍过,它方便,快捷,易用,而在vs2017中也对docker进行了支持,而生成docker image的方式就是有用Dockerfile为基础的,在添 ...

  7. JavaScript垃圾收集-标记清除和引用计数

    JavaScript具有自动垃圾收集机制,执行环境会负责管理代码执行过程中使用的内存. 垃圾收集机制原理:垃圾收集器会按照固定的时间间隔(或代码执行中预定的收集时间), 周期性地执行这一操作:找出那些 ...

  8. (转)log4j(六)——log4j.properties简单配置样例说明

    一:测试环境与log4j(一)——为什么要使用log4j?一样,这里不再重述 1 老规矩,先来个栗子,然后再聊聊感受 (1)使用配文件的方式,是不是感觉非常的清爽,如果不在程序中读取配置文件就更加的清 ...

  9. Java解析OFFICE(word,excel,powerpoint)以及PDF的实现方案及开发中的点滴分享

    Java解析OFFICE(word,excel,powerpoint)以及PDF的实现方案及开发中的点滴分享 在此,先分享下写此文前的经历与感受,我所有的感觉浓缩到一个字,那就是:"坑&qu ...

  10. 微信小程序开发基础知识总结

    微信小程序在无论在功能.文档及相关支持方面,都是优于前面几种微信账号类型,它提供了很多原生程序才有的接口,使得我们的小程序在很多方面突破H5页面应用的限制,更加接近原生程序的功能,因此微信小程序具有很 ...