一. 下载工具
1.先下载 MyBatis Generator 地址 :http://download.youkuaiyun.com/download/sinat_27710009/10115546
2.将下载的插件解压到 eclipse 路径下
3.验证插件是否安装成功
二. 在Eclipse中创建java项目
1. 创建java项目 src目录下,新建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="C:\Users\Administrator\.m2\repository\mysql\mysql-connector-java\5.1.6\mysql-connector-java-5.1.6.jar"/>
<context id="context1">
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/subscriber"
userId="root" password="123456" />
<javaModelGenerator targetPackage="com.sharelin.spring.entity"
targetProject="springmvc Maven Webapp/src/main/java" />
<sqlMapGenerator targetPackage="com.sharelin.spring.mapper"
targetProject="springmvc Maven Webapp/src/main/java" />
<javaClientGenerator targetPackage="com.sharelin.spring.mapper"
targetProject="springmvc Maven Webapp/src/main/java" type="XMLMAPPER" />
<table tableName="sub_customer">
<!-- <columnOverride column="???" property="???" /> -->
</table>
</context>
</generatorConfiguration>
对应
路径根据自己 的实际情况填写即可
2.maven添加 mysql 连接jar包 引用到 上面的 XML路径,也可以其他方式下载了 填写路径
<!-- 导入Mysql数据库链接jar包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
</dependency>
3. 右键generatorConfig.xml文件,点击在菜单中点击Generator MyBatis/iBatis Artifacts(若右键菜单中没有此菜单,说明第一步骤中插件没有安装成功),自动生成4个文件。
三.MyBatis Generator 生成的example 如何使用 and or 简单混合查询
写法1:
查询条件1:a=? and (b=? or c=?) 不支持
查询条件2:(a=? And b=?) or (a=? And c=?) 支持
DemoExample example=new DemoExample();
DemoExample.Criteria criteria1=example.createCriteria();
criteria1.andAEqualTo(?).andBEqualTo(?);
DemoExample.Criteria criteria2=example.createCriteria();
criteria2.andAEqualTo(?).andCEqualTo(?);
example.or(criteria2);
SqlSession sqlSession = MyBatisUtil.openSession();
DemoMapper m = sqlSession.getMapper(DemoMapper.class);
m.countByExample(example);
//生成的sql语句
select count(*) from demo WHERE ( a = ? and b = ? ) or ( a = ? and c = ? )
写法2:
DemoExample example=new DemoExample();
example.or().andAEqualTo(?).andBEqualTo(?);
example.or().andAEqualTo(?).andCEqualTo(?);
SqlSession sqlSession = MyBatisUtil.openSession();
DemoMapper m = sqlSession.getMapper(DemoMapper.class);
m.countByExample(example);
//生成的sql语句
select count(*) from demo WHERE ( a = ? and b = ? ) or ( a = ? and c = ? )
查询条件3:(a=? and (b=? or c=?)) 支持
假设两个搜索项,A项搜索,可搜索b,c(bc或关系),B项搜索可搜索a,B项搜索与A项搜索是与关系。
修改DemoExample.java文件,新增方法
public Criteria andOrDemo(String value){
addCriterion("(b = \""+value+"\" or c = \""+value+"\")");
return (Criteria) this;
}
DemoExample example=new DemoExample();
Criteria criteria = example.createCriteria();
criteria.andAEqualTo(?).andOrDemo(?);
SqlSession sqlSession = MyBatisUtil.openSession();
DemoMapper m = sqlSession.getMapper(DemoMapper.class);
m.countByExample(example);
//生成的sql语句
select count(*) from demo WHERE ( a = ? and ( b = ? or c = ? ))