码迷,mamicode.com
首页 > 其他好文 > 详细

mybatis 通用CRUD的替换方法

时间:2015-04-22 14:07:17      阅读:304      评论:0      收藏:0      [点我收藏+]

标签:

 

    http://git.oschina.net/alexgaoyh/MutiModule-parent    

代码此次变更较大,使用了mybatis-generator-maven-plugin 插件,把之前多模块项目中的domain部分删除,将这一部分代码整合到persise部分,原因是使用mybatis-generator-maven-plugin插件的时候,能够自动生成实体类,减少代码移动相关的工作量。


    前一段时间使用maven多模块项目整合了spring mybatis部分,最近在处理通用CRUD方法的时候,遇到了一系列问题,特写文章记录一下:

    网络上有很多通用CRUD方法的解决方案,增加DAO接口部分,动态拼接sql……,本文并不对这些方法做过多的介绍。

    之前用过一段hibernate(强类型的ORM),最近再转入mybatis的时候,发现mybatis可以理解为半ORM,通过xml书写sql来满足业务需求,如果想使用通用的CRUD方法的话,很多解决方案注入性太强了,所以找了好久,觉得使用 mybatis-generator-maven-plugin 能够很好地替代这种解决方案:

    1: 不改变mybatis的特点(接口,sql写到xml内部),新手拿到项目之后,能够很快上手;

    2: 简单的单表CRUD也能够实现;

    3: 减少代码量的书写,及时是自己编写了通用方法(泛型),也是需要自己编写相关的代码,继承相关的接口才能实现的,使用generator的话,能够大批量的减少代码书写;


    所以,最终选择了mybatis-generator-maven-plugin 来实现简单的单表CRUD方法。

    实现的话,最主要的代码分为如下两个部分:

    

<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>



    

/src/main/resource 下创建 generatorConfig.xml文件:

注意修改一些数据库方法的配置,这样,在数据库里面生成相关的表结构之后,通过下面的配置,来映射相关的类文件/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 location="C:\Users\lenovo\.m2\repository\mysql\mysql-connector-java\5.1.21\mysql-connector-java-5.1.21.jar" />
    
	<context id="context1" targetRuntime="MyBatis3">
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
            connectionURL="jdbc:mysql://127.0.0.1:3306/mybatisTest?useUnicode=true&amp;characterEncoding=UTF-8"
            userId="root" password="alexgaoyh" />
            
        <javaModelGenerator targetPackage="com.alexgaoyh.MutiModule.persist.demo" targetProject="F:\eclipseWorkspace\MutiModule-parent\MutiModule-persist\src\main\java" />
        
        <sqlMapGenerator targetPackage="com.alexgaoyh.MutiModule.persist.demo" targetProject="F:\eclipseWorkspace\MutiModule-parent\MutiModule-persist\src\main\resources" />
        
        <javaClientGenerator targetPackage="com.alexgaoyh.MutiModule.persist.demo" targetProject="F:\eclipseWorkspace\MutiModule-parent\MutiModule-persist\src\main\java" type="XMLMAPPER" />
        
        <table schema="" tableName="demo" />
        
    </context>
	    
</generatorConfiguration>
<!-- 每次修改的部分为替换  targetPackage tableName 部分,对应数据库不同的表结构,不同的包名,自动映射出来相关的类文件-->



1: 数据库生成相关的表结构(表面demo)

2:Eclipse使用maven,项目右键,run as  执行 (mybatis-generator:generate) 如下图:



技术分享


执行完毕之后,刷新项目:

技术分享

红框标注的就是自动生成的相关文件: 其中这些文件能够很简单的满足单表CRUD的需求,也不用学习新的代码,简单容易,易上手。


具体在使用过程中,尽量记录下来每次修改xml部分的地方(如上图的 DemoMapper.xml 部分),这样,如果修改量少的话,表结构发生变更的话,直接重新生成相关的类文件/配置文件 即可。 避免mybatis这种,修改表结构之后(Demo.java DemoExample.java DemoMapper.xml ),很多文件都需要更改的情况(ORM)。


mybatis 通用CRUD的替换方法

标签:

原文地址:http://my.oschina.net/alexgaoyh/blog/405003

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!