Mybatis學習筆記之簡單的helloworld(附源碼)

mybatis的HelloWorld

工具:
ecplise ---Version: 2019-12 (4.14.0)
mybatis版本--3.4.1
mysql-connector-java-5.1.26-bin.jar:數據庫驅動
數據庫爲MYSQL
數據庫可視化工具爲SQLyog

    首先在ecplise中新建java工程,在工程下新建配置文件源碼包,包名爲conf(此包內主要放置配置文件),新建lib文件夾(此文件夾下主要放置項目所需jar包),其目錄結構如下圖1.1所示:

圖1.1
   首先將所需jar包導入工程,jar包如下:

log4j-1.2.17.jar:日誌jar包

mybatis-3.4.1.jar:mybatis 必須jar包

mysql-connector-java-5.1.26-bin.jar:數據庫驅動的jar包

在src目錄下新建bean包,創建Employee類,其代碼如下:

package com.zl.mybatis.bean;

public class Employee {

	private Integer id;
	private String lastName;//姓名
	private String gender;//性別
	private String email;//郵箱
	//==========setter和getter方法===============
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getLastName() {
		return lastName;
	}
	public void setLastName(String lastName) {
		this.lastName = lastName;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	//===重寫toString方法,爲返回字符串在屏幕上======
	@Override
	public String toString() {
		return "Employee [id=" + id + ", 
			lastName=" + lastName + ", 
			gender=" + gender + ", 
			email=" + email + "]";
	}
}

上面代碼表示一個員工實體類,那麼我們就應該在數據庫中創建一個員工表,員工表的字段與上面相對應,數據庫如下圖1.2所示:

圖1.2

我們根據mybatis官方文檔編寫,mybatis-config.xml文件,其內容如下:


	<!-- 引入外部配置如數據庫的配置 -->
	<!-- resource="db.properties"代表類路徑下的配置文件文件,此配置文件中包含數據庫的連接信息 -->
	
	<properties resource="db.properties"></properties>
	<!-- 環境配置-->
	<!-- 
		default="development" :代表當前使用的環境是id=“development”的環境,
		當我們進行測試的時候,我們還可以創建一個id=“test”的環境
		當使用test環境的時候,將default的屬性值改爲對應的id值即可使用
	-->
	<environments default="development">
		<environment id="development">
			<!-- transactionManager(事務管理器) -->
			<transactionManager type="JDBC"></transactionManager>
			<!-- 配置數據源信息 -->
			<dataSource type="POOLED">
				<!-- 數據庫 驅動-->
				<property name="driver" value="${driver}"/>
				<!-- 數據庫路徑 -->
				<property name="url" value="${url}"/>
				<!-- 數據庫用戶名 -->
				<property name="username" value="${username}"/>
				<!-- 數據庫密碼 -->
				<property name="password" value="${password}"/>
			</dataSource>
		</environment>
	</environments>
	
	<!-- 映射器 -->
	<mappers>
		<mapper resource="EmployeeMapper.xml"/>
	</mappers>

接下來我們牀架EmployeeMapper.xml文件,其文件內容如下:

<mapper namespace="com.zl.mybatis.dao.EmployeeMapper">
<!-- 
	namespace:名稱空間 綁定接口
	id:是唯一標識
	resultType:返回值類型
 -->
	<select id="getEmpById" resultType="com.zl.mybatis.bean.Employee">
		select id,last_name lastName,gender,email from tbl_employee where id = #{id}
	</select>
</mapper>

對應的接口的內容是:

package com.zl.mybatis.dao;

import com.zl.mybatis.bean.Employee;

//定義查詢數據的方法
public interface EmployeeMapper {

	//根據id查詢數據庫
	public Employee getEmpById(Integer id);
}

下面新建包:作爲測試類

package com.zl.mybatis.test;

import java.io.IOException;
import java.io.InputStream;

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 org.junit.jupiter.api.Test;

import com.zl.mybatis.bean.Employee;
import com.zl.mybatis.dao.EmployeeMapper;


class MybatisTest {

	//1.獲取SqlSessionFactory()
	@SuppressWarnings("unused")
	private SqlSessionFactory getSqlSessionFactory() throws IOException {
		// TODO Auto-generated method stub
		String resource = "mybatis-config.xml";
		InputStream inputStream = Resources.getResourceAsStream(resource);
		System.out.println("======="+inputStream);
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		return sqlSessionFactory;
	}

	@Test
	void test() throws IOException {
		//1.獲取sqlSessionFactory
		SqlSessionFactory sqlSessionFactory=getSqlSessionFactory();
		//2.獲取Session
		SqlSession session=sqlSessionFactory.openSession();
		try {
			EmployeeMapper employeeMapper=session.getMapper(EmployeeMapper.class);
			Employee employee=employeeMapper.getEmpById(1);
			System.out.println(employee);
		} catch (Exception e) {
			// TODO: handle exception
			session.close();
		}
	}

}

運次測試類結果如下圖1.3:

圖1.3

   這就是mybatis的helloworld,如果想獲取更詳細的源碼:掃描下方二維碼回覆"

myhello

"下載。

回覆“myhello獲取源碼”

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章