1. 程式人生 > >如何在eclipse 安裝 MyBatis Generator 並使用

如何在eclipse 安裝 MyBatis Generator 並使用

一. 下載工具

1.先下載 MyBatis Generator 地址 :http://download.csdn.net/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個檔案。


寫法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 = ? ))