Mybatis-generator修改源代码实现自定义方法,返回List对象(一)
来源:互联网 发布:网站怎么做优化 编辑:程序博客网 时间:2024/06/09 17:45
Mybatis-generator修改源代码实现自定义方法,返回Lsit对象——第一篇
本文结合网上的诸多教程,详细介绍通过修改Mybatis-generator的源代码, 在自动生成dao层和XML文件时,添加一个返回List的方法,数据库使用Mysql
- 1、获取Mybatis-generator源代码,并创建项目
- 2、组合源代码中的示例,实现Dao(Mapper)层添加一个方法
- 3、实现XML文件添加Dao(Mapper)层的实现
目的:
- 近期经常要搭建新项目,使用的SSM框架,而且经常要改数据库结构,但是在用Mybatis-generator自动生成的时候,仅有几个默认的方法,
-
感觉不够用,例如我需要下面这样的方法:
User user= new User(); List<User> list=userMapper.selectByObject(user);
设置实体类user对象的任何属性,根据属性查询出所有的数据,属性为null则SQL语句中不添加这个条件
不设置任何属性,则默认返回所有数据
1、 获取Mybatis-generator源码,并创建项目
网上有非常多的教程,比如一些修改格式、注释的教程,大家也可以去看看,那么我们这里先讲讲怎么获取源代码。
首先我建一个maven项目,我用的是Myeclipse10,建好以后,在pom.xml中添加这个3个依赖:
<dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>1.9.7</version> </dependency>
junit 的依赖必须还存在,把这些包下载下来以后,打开org.mybatis.generator里头的随便一个CLASS文件,
刚开始显示找不到源码,过一会儿就会把源码下载下来,然后你去你的maven库中找,比如这是我的路径:H:\mavenjar\org\mybatis\generator\mybatis-generator-core\1.3.2
带-sources的就是源代码的jar,
把它解压,就可以得到.java的文件
打开路劲可以看到这些文件夹,在项目中创建src/main/java目录,然后建立 org.mybatis.generator 包,将截图中的文件全选复制到这个包下面,
然后在src/main/resources 文件夹下添加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> <classPathEntry location="H:\generator\mysql-connector-java-5.1.6-bin.jar" /> <context id="mysqlTables" targetRuntime="MyBatis3"> <commentGenerator> <property name="suppressAllComments" value="true" /> </commentGenerator> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/servermonitor" userId="root" password="123456"> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- 生成model模型,对应的包,存放位置可以指定具体的路径,如/ProjectName/src,也可以使用MAVEN来自动生成 --> <javaModelGenerator targetPackage="com.servermonitor.entity" targetProject="src/main/java"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!--对应的xml mapper文件 --> <sqlMapGenerator targetPackage="mybatis" targetProject="src/main/resources"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- 对应的dao接口 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.servermonitor.dao" targetProject="src/main/java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- 这里是数据库的表名table_user 以及 POJO类的名字User --> <table tableName="user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" /> </context></generatorConfiguration>
我直接将Mysql的包放在 H:\generator\mysql-connector-java-5.1.6-bin.jar这里,这个可以自己去改,
然后创建一个包,一个生成的类,
生成类的代码如下:
package org.mybatis.generator.extend; import java.io.UnsupportedEncodingException;import java.net.URLDecoder;import java.net.URLEncoder;import org.mybatis.generator.api.ShellRunner; public class MyTestRun { public static void main(String[] args) { String config = MyTestRun.class.getClassLoader().getResource("generatorConfig.xml").getFile(); try { config=URLDecoder.decode(config, "UTF-8"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } String[] arg = { "-configfile", config, "-overwrite" }; ShellRunner.main(arg); } }
我本身的工作空间文件夹名称有空格,所以在获取路径的时候,会出现%20这种情况,所以需要转码,你们如果没有这种的,是不需要decode的,就是try里头的代码;
把项目报错的的地方改好,然后执行这个main方法,就会生成一系列的文件,这里就不介绍了,生成文件的后,大家可以看到dao层的方法只有几个默认的方法,前提是你已经连接好了数据库,并且你的数据库里有个表
下一篇我们会找到生成它们的方法,并做修改
- Mybatis-generator修改源代码实现自定义方法,返回List对象(一)
- Mybatis-generator修改源代码实现自定义方法,返回List对象(二)
- Mybatis-generator修改源代码实现自定义方法,返回List对象(三)
- mybatis-generator 源代码修改
- mybatis generator插件自定义修改
- MyBatis-generator-core 生成的Dao 怎么自定义名字 (或者手动修改哪些源码可以实现)
- 修改mybatis-generator-1.3.2源码实现自定义代码生成详解
- 自定义MyBatis返回Map对象
- mybatis generator 自定义类名(修改mybatis-generator-1.3.2源码改dao类名)
- mybatis返回HashMap<Long,List<自定义类>>
- MyBatis Generator系列(八)----MyBatis Generator自定义插件实现自定义Mapper
- 自定义MyBatis Generator Plugin
- MyBatis Generator系列(一)----MyBatis Generator简介
- Mybatis返回list排序无效问题解决方法
- 修改mybatis-generator-1.3.2源码实现中文注释
- 修改mybatis-generator-core1.3.2源码实现注释等功能
- MyBatis Generator系列(三)----修改源码实现中文注释
- MyBatis Generator系列(二)----自定义CommentGenerator实现中文注释
- Mybatis教程____mybatis超详细入门列子
- asd
- Oracle 数据库中的表
- ajax异步文件上传
- select、poll、epoll之间的区别总结[整理]
- Mybatis-generator修改源代码实现自定义方法,返回List对象(一)
- SegmentFault 技术周刊 Vol.30
- centos7 常用命令
- cordova的Hybrid App开发环境搭建(Windows)
- 【Linux】awk命令详解
- VMWare12安装OS X 10.11
- 进制转换
- unityUGUI关于Text字体不清晰的解决方法
- 【菜鸟学框架】——Struts2自定义拦截器