Mybatis逆向构建

MyBatis逆向构建工程

MyBatis

Mybatis是一款优秀的轻量级O/R mapping框架。就像Hibernate能够将Pojo和数据库表关联起来一样,mybatis能够将Pojo和sql关联映射起来。它的逆向工程能够根据数据库表生成POJO、DAO和mapper.xml,同时将这三者无缝联系起来。下面就先介绍它的逆向生成方式:

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>
    <!--数据库驱动jar -->
    <classPathEntry
        location="E:\mysql-connector-5.1.5.jar" />

    <context id="xxx" targetRuntime="MyBatis3">
        <!--去除注释 -->
        <commentGenerator>
            <property name="suppressAllComments" value="true" />
        </commentGenerator>

        <!--数据库连接 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
            connectionURL="jdbc:mysql://xxx:3306/xxx"
            userId="xxx"
            password="xxx">
        </jdbcConnection>
        <!--默认false Java type resolver will always use java.math.BigDecimal if
            the database column is of type DECIMAL or NUMERIC. -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!--生成实体类 指定包名 以及生成的地址 (可以自定义地址,但是路径不存在不会自动创建 使用Maven生成在target目录下,会自动创建) -->
        <javaModelGenerator targetPackage="com.mycompany.app.model"
            targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!--生成SQLMAP文件 -->
        <sqlMapGenerator targetPackage="com.mycompany.app.dao"
            targetProject="src/main/resources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

        <javaClientGenerator type="XMLMAPPER"
            targetPackage="com.mycompany.app.dao" targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

        <!--对应数据库表 mysql可以加入主键自增 字段命名 忽略某字段等 -->

        <table schema="test" tableName="train_tp" domainObjectName="TrainTp"
            enableCountByExample="true" enableUpdateByExample="true"
            enableDeleteByExample="true" enableSelectByExample="true"
            selectByExampleQueryId="true">
            <generatedKey column="ID" sqlStatement="mysql" identity="true" />
        </table>
    </context>
</generatorConfiguration>
  • 上述配置文件指明了mysql driver会用来连接database。classPathEntry指明了mysql-driver的加载路径。jdbcConnection 表明了连接参数。
  • JavaTypeResolver 不应该强制限定BigDecimal,这样mybatis就能够根据表字段的实际数据类型选择合适的java类(如:Short,Integer, Long)。
  • javaModelGenerator 应使用子路径,在本例中生成的POJO将会放在 com.mycompany.app.model下。为了避免数据库表字段的值中出现两端的空格,trimStrings应该使用,意味着setter方法中会调用String的trim对传入的参数进行处理。本例中table为train_tp,POJO名为TrainTp。
  • sqlMapGenerator 应使用子路径,在本例中生成的TrainTpMapper.xml文件将会放在com.mycompany.app.mapper 路径下。
  • javaClientGenerator 应使用子路径,在本例中生成的TrainTpMapper.java文件将会放在com.mycompany.app.mapper 路径下。
  • table对应着目标数据库表。generateKey 意味着mysql 的主键自增。

生成方法

mvn org.mybatis.generator:mybatis-generator-maven-plugin:1.3.0:generate

使用命令行,在工程目录pom所在的地方构建。

生成结果

注意:配置中将mapper.xml的targetProject定为了src/main/resources。但是,所在的com.mycompany.app.dao必须跟TrainTpMapper.java所在的路径一样:com.mycompany.app.dao。这样在以后spring和mybatis集成的时候才能找到。

使用方法

TrainTpExample:

如果删除一个信息:

public int deleteInfo(long user_id,long team_id){
        TrainTpExample ue = new TrainTpExample();
        ue.createCriteria()
                .andUserIdEqualTo(new BigDecimal(user_id))
                .andTeamIdEqualTo(new BigDecimal(team_id));
        return trainTpMapper.deleteByExample(ue);
    }

生成的Example类是用来集成各种条件进行操作的,createCriteria 用来生成各种条件。

trainTpMapper为调用接口,是TrainTpMapper类。

在spring和mybatis集成的时候即可使用@Resource或@Autowire进行直接声明。

mybatis官方文档:http://mybatis.github.io/generator/configreference/xmlconfig.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-06 06:39:23

Mybatis逆向构建的相关文章

Mybatis逆向生成

在已经有了数据库的表的时候,为了方便起见,我们可以逆向生成javabean,xml,dao接口等,当然,下载mybaits-generation的工具,我这里用的是eclipse插件,然后准备一 个xml文件,下面给出xml文件写法 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBa

mybatis逆向工程之maven使用步骤

Maven插件生成POJO.Mapper.Sql映射文件 1.加mbg核心包依赖: 1 <!--mybatis逆向工程依赖--> 2 <dependency> 3 <groupId>org.mybatis.generator</groupId> 4 <artifactId>mybatis-generator-core</artifactId> 5 <version>1.3.2</version> 6 </

spring security+mybatis+springMVC构建一个简单的项目

1.引用 spring security ,这是一种基于spring AOP和Servlet的过滤安全框架.它提供全面的安全性解决方案,同时在web请求级和方法的调用级处理身份确认和授权.在spring framework基础上,spring security充分利用了依赖注入(DI,Dependency Injection)和AOP技术. 下面就让我们用一个小的晓得项目来出初步了解Spring Security 的强大功能吧. 2.项目实战    1)项目的技术架构:maven+spring

[项目构建 六]babasport Mybatis逆向工程构建项目实例.

mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml.pojo等)有了sql表的结构后, 我们就可以利用逆向工程直接生成相应的Dao和JavaBean代码, 这样能够大大减少我们平时开发的工作量. 但是我还是觉得使用逆向工程局限性很大, 例如我们的逆向工程main方法只能执行一次, 如果再次执行就会继续生成相应的Dao和JavaBean, 除非我们把之前生成的全都删除. 这样对

基于Maven + SSM (Spring、SpringMVC、Mybatis)构建一个简单的测试项目

最近在公司实习期间的培训交流中有机会接触到SSM,然后自己花费1周的时间投入学习.谈不上深刻理解其中原理,所以没有涉及理论知识,只是浅层次的学习如何使用,在此将学习过程记录整理出来,一方面自己备用:另一方面,分享出来和做技术的各位讨论交流. 现阶段的我还做不到知行合一,所以决定先学会用,然后再去深究原理.若有不足以及错误之处,望多多包涵.指教,谢谢. 废话不多说,直接开干! 1.开发环境搭建 推荐博客地址: MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建 2.Maven W

mybatis 逆向代码生成配置

第一步:先安装mybatis-generator插件; 第二步:创建maven项目, 在src/main/resources下创建generatorConfig.xml 第三步:配置generatorConfig.xml,具体配置如下: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD M

springmvc mybatis shiro构建cms系统

开发语言: java.ios.android 部署平台: linux.window jdk版本:JDK1.7以上版本 开发工具: eclipse.idea等 服务器中间件:Tomcat 6.7.Jboss 7.WebLogic 10.WebSphere 8 框架支持: springmvc.mybatis.shiro.restful.redis.sso单点登录 通用管理: 用户管理.角色管理.权限管理.动态菜单.数据字典管理.机构管理.区域管理.日志管理.日志监控.代码生成工具. 1.用户管理:用

mybatis逆向工程之maven工程

maven工程与动态web工程存在差异,不过大体是相同的 注意:运行成功后记得refresh刷新下,否则看不到 一.在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.

springmvc mybatis shiro构建cms+UC浏览器文章相关功能

最近公司在模拟UC浏览器做一个简单的cms系统,主要针对于企业内部的文章浏览需求,这边考虑用户大多用mobile浏览文章内容,故使用原生的ios和android进行开发,后面也会集成html5. 1. 使用前后端分离解决方案(服务化的方式) 2. 文章分为普通类型.视频类型.图文类型 3. 浏览详情 4. 相关文章 5. 文章浏览统计 6. 个性化频道 7. 文章评论 8. 用户登录.注册.第三方登录 9. 我的收藏 10. 文章分享到微信.qq 这边功能就不一一列了,直接上图: 到此结束,后期