鍍金池/ 教程/ Java/ MyBatis環(huán)境配置及入門(mén)
Mybatis表關(guān)聯(lián)多對(duì)一
MyBatis打印輸出SQL語(yǔ)句
Mybatis表關(guān)聯(lián)一對(duì)多
mybaits if標(biāo)簽語(yǔ)句
MyBatis整合Spring MVC
MyBatis動(dòng)態(tài)SQL語(yǔ)句
MyBatis教程
MyBatis choose(when, otherwise)標(biāo)簽
Mybatis與Spring集成
MyBatis分頁(yè)
MyBatis SqlSessionDaoSupport實(shí)例
MyBatis where標(biāo)簽語(yǔ)句
Mybatis增刪改查(CURD)
Mybatis接口注解
Mybatis trim標(biāo)簽
Mybatis set標(biāo)簽
Mybatis 多對(duì)多
MyBatis環(huán)境配置及入門(mén)

MyBatis環(huán)境配置及入門(mén)

Mybatis 開(kāi)發(fā)環(huán)境搭建,選擇: MyEclipse8.5 版本,mysql 5.5, jdk 1.8, mybatis3.2.3.jar 包。這些軟件工具均可以到各自的官方網(wǎng)站上下載。

整個(gè)過(guò)程在概如下,

1. 在本教程中,建立 java 工程,但一般都是開(kāi)發(fā) web 項(xiàng)目,這個(gè)系列教程最后是 web,但這里為了方便學(xué)習(xí),本教程前面建立的都是 java 工程。
2. 將 mybatis-3.2.3.jar,mysql-connector-java-5.1.25-bin.jar 創(chuàng)建兩個(gè)用戶自定庫(kù)(User Libary):mysql-connector 和 mybatis;
3. 創(chuàng)建 mysql 測(cè)試數(shù)據(jù)庫(kù)和用戶表, 注意,數(shù)據(jù)庫(kù)使用的是 utf-8 編碼。以解決不必要的中文亂碼問(wèn)題。

一、創(chuàng)建 Java 工程

首先建立一個(gè)名字為 Helloword 的 java project。選擇 "File" -> "New" ->"Java Project",如下圖所示:

這樣就創(chuàng)建了一個(gè) Java 工程了,我們繼續(xù)下一步。接下來(lái)我們?cè)?mybatis-start 項(xiàng)目中加入兩個(gè)所需的程序庫(kù):mysql-connector 和 mybatis,右鍵點(diǎn)擊 "mybatis-start" 項(xiàng)目,從彈出的菜單中選擇: "Build Path" -> "Add Libaries..." ,如下圖所示:


從中選擇“User Library",點(diǎn)擊“Next>",創(chuàng)建兩個(gè)類(lèi)庫(kù)為:mysql-connector 和 mybatis,如下所示:


點(diǎn)擊“User Libararies...",繼續(xù)下一步,創(chuàng)建一個(gè)新的類(lèi)庫(kù),如下圖所示:


到此用戶的一個(gè)類(lèi)庫(kù)創(chuàng)建完成,以相同的方式來(lái)創(chuàng)建另一個(gè)類(lèi)庫(kù):

二、創(chuàng)建數(shù)據(jù)庫(kù)和 User 表

創(chuàng)建所需的數(shù)據(jù)庫(kù)和表,要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)是:yiibai,并在 yiibai 數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)表:user,如下圖所示:

創(chuàng)建數(shù)據(jù)庫(kù):yiibai,使用 utf-8 編碼。

接下我們創(chuàng)建一個(gè)表:user,并插入一條記錄信息,其結(jié)構(gòu)如下所示:

CREATE TABLE `user` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(64) NOT NULL DEFAULT '',
  `dept` varchar(254) NOT NULL DEFAULT '',
  `website` varchar(254) DEFAULT '',
  `phone` varchar(16) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', 'yiibai', 'Tech', 'http://www.yiibai.com', '13800009988');

三、創(chuàng)建 Mybatis 配置文件


程序代碼
到此為止,前期準(zhǔn)備工作就完成了。下面開(kāi)始真正配置 mybatis-start 項(xiàng)目。設(shè)置 mybatis 配置文件: Configure.xml, 在 src/config 目錄下建立此文件,內(nèi)容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<typeAliases>
		<typeAlias alias="User" type="com.yiibai.mybatis.models.User" />
	</typeAliases>
	<environments default="development">
	    <environment id="development">
		<transactionManager type="JDBC" />
			<dataSource type="POOLED">  
                            <property name="driver" value="com.mysql.jdbc.Driver" />
			    <property name="url" value="jdbc:mysql://127.0.0.1:3306/yiibai" />
			    <property name="username" value="root" />
			    <property name="password" value="" />
                       </dataSource>
		</environment>
	</environments>

	<mappers>
	     <!-- // power by http://www.yiibai.com -->
	     <mapper resource="com/yiibai/mybatis/models/User.xml" />
	</mappers>
</configuration>

四、創(chuàng)建實(shí)體類(lèi)和映射文件

首先創(chuàng)建一個(gè)包:com.yiibai.mybatis.models,并在下創(chuàng)建與數(shù)據(jù)庫(kù)表對(duì)應(yīng)的 User.java 類(lèi)及其映射文件:User.xml,詳細(xì)如下圖所示:

package com.yiibai.mybatis.models;

public class User {
	private int id;
	private String name;
	private String dept;
	private String phone;
	private String website;
	
	public String getWebsite() {
		return website;
	}
	public void setWebsite(String website) {
		this.website = website;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getDept() {
		return dept;
	}
	public void setDept(String dept) {
		this.dept = dept;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	
}
程序代碼

同時(shí)建立這個(gè) User 類(lèi)對(duì)應(yīng)的映射文件 User.xml,詳細(xì)如下代碼所示:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.yiibai.mybatis.models.UserMapper">
	<select id="GetUserByID" parameterType="int" resultType="User">
		select * from `user` where id = #{id}
    </select>
</mapper>
下面是對(duì)這幾個(gè)配置文件一點(diǎn)解釋說(shuō)明:
1、配置文件 Configure.xml 是 mybatis 用來(lái)建立 sessionFactory,里面主要包含了數(shù)據(jù)庫(kù)連接相關(guān)內(nèi)容,還有 java 類(lèi)所對(duì)應(yīng)的別名,比如:<typeAlias alias="User" type="com.yiibai.mybatis.models.User"/> 這個(gè)別名非常重要,在具體的類(lèi)的映射中,比如:User.xml 中 resultType 就是對(duì)應(yīng)這個(gè)。要保持一致,這里的 resultType 還有另外單獨(dú)的定義方式,后面學(xué)習(xí)到我們?cè)僭敿?xì)介紹說(shuō)明。
2、Configure.xml 里面 的<mapper resource="com/yiibai/mybatis/models/User.xml"/>是包含要映射的類(lèi)的 xml 配置文件。
3、在User.xml 文件里面主要是定義各種 SQL 語(yǔ)句,以及這些語(yǔ)句的參數(shù),以及要返回的類(lèi)型等等。

五、運(yùn)行程序測(cè)試結(jié)果

在 src 源碼目錄下建立 一個(gè)類(lèi)叫作:HelloWord, 來(lái)運(yùn)行測(cè)試配置環(huán)境是否成功,具體代碼如下示:

import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.yiibai.mybatis.models.*;

/**
 * 
 * @author yiibai
 * @copyright http://www.yiibai.com
 * @date 2015/09/22
 */
public class HelloWord {
	private static SqlSessionFactory sqlSessionFactory;
	private static Reader reader;

	static {
		try {
			reader = Resources.getResourceAsReader("config/Configure.xml");
			sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public static SqlSessionFactory getSession() {
		return sqlSessionFactory;
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SqlSession session = sqlSessionFactory.openSession();
		try {
			User user = (User) session.selectOne(
					"com.yiibai.mybatis.models.UserMapper.GetUserByID", 1);
			if(user!=null){
				String userInfo = "名字:"+user.getName()+", 所屬部門(mén):"+user.getDept()+", 主頁(yè):"+user.getWebsite();
				System.out.println(userInfo);
			}
		} finally {
			session.close();
		}
	}

}

現(xiàn)在運(yùn)行這個(gè)程序,不是得到查詢結(jié)果了?正確的輸出結(jié)果應(yīng)該如下:

名字:yiibai, 所屬部門(mén):Tech, 主頁(yè):http://www.yiibai.com


恭喜你,環(huán)境搭建配置成功,在接下來(lái)章節(jié),我們將學(xué)習(xí) Mybatis 的操作方式:增刪改查。

Jar 包下載:http://pan.baidu.com/s/1bnyRJ9H