Mybatis入門操作詳解(Maven工程)

Mybatis入門

介紹

在這裏插入圖片描述
官方文檔 http://www.mybatis.org/mybatis-3/getting-started.html

Mybatis結構

在這裏插入圖片描述

實操

jar包
在這裏插入圖片描述
別忘了build Path
在這裏插入圖片描述

Maven項目舉例

pom文件引包(注意xml名稱可能不一樣)

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.2.0.RELEASE</version>
		<relativePath /> <!-- lookup parent from repository -->
	</parent>
	<groupId>init.wuji</groupId>
	<artifactId>mavenMybatis</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>


	<dependencies>
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.5.4</version>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.62</version>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.6</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-aop</artifactId>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.1.21</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<scope>runtime</scope>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-configuration-processor</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.junit.vintage</groupId>
					<artifactId>junit-vintage-engine</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>jstl</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>
		<dependency>
			<groupId>commons-fileupload</groupId>
			<artifactId>commons-fileupload</artifactId>
			<version>1.4</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>4.0.1</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jsp-api</artifactId>
			<version>2.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.13</version>
			<scope>test</scope>
		</dependency>
	</dependencies>




	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

然後便是config配置
在這裏插入圖片描述文件名:/mavenMybatis/src/main/resources/config/mybatis/mybatis-config.xml

<?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>
	<properties resource="config/mybatis/DB.properties">
	</properties>
	<environments default="development">
		<environment id="development">
			<!-- 事務管理器,JDBC類型的事務管理器 -->
			<transactionManager type="JDBC" />
			<!-- 數據源,池類型的數據源 -->
			<dataSource type="POOLED">
				<property name="driver" value="${mysql_driver}" /> <!-- 配置了properties,所以可以直接引用 -->
				<property name="url" value="${mysql_url}" />
				<property name="username" value="${mysql_username}" />
				<property name="password" value="${mysql_passwd}" />
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<mapper resource="init/wuji/mybatis/mapper/dao/StuCardMapper.xml" />
	</mappers>
</configuration>

注意第7行你自己的DB配置文件位置
還有各value的值與DB文件對應

另外23的mapper.xml文件可先不寫,稍後編輯

附上DB配置文件吧,名稱:/mavenMybatis/src/main/resources/config/mybatis/DB.properties
代碼:

mysql_driver=com.mysql.cj.jdbc.Driver
mysql_url=jdbc:mysql://localhost:3306/xthotel?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
mysql_username=root
mysql_passwd=root

ok至此環境搭建完成,我們用一個學生卡數據庫舉例子

涉及的相關文件
在這裏插入圖片描述entity就不說了就是stucard的基本類
在這裏插入圖片描述接下來是mapper的代理接口
文件名:/mavenMybatis/src/main/java/init/wuji/mybatis/mapper/dao/StuCardMapper.java
代碼
注意只寫方法名,不寫具體方法(因爲是代理

package init.wuji.mybatis.mapper.dao;

import init.wuji.mybatis.mapper.entity.StuCard;

public interface StuCardMapper {
	public StuCard getStuCardByStuNo(String cardNo);

}

接下來是mapper.xml文件,文件位置行業各有不同有的放在了config裏面,有的和代理結構放一起,個人建議方法2,因爲它雖然是xml文件但是並不是配置文件,而且下面的namespace的路徑直接複製上面的java類名路徑即可,很方便
文件名稱:/mavenMybatis/src/main/java/init/wuji/mybatis/mapper/dao/StuCardMapper.xml
代碼

<?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:命名空間,隨便寫,一般保證命名空間唯一 -->
<mapper namespace="init.wuji.mybatis.mapper.dao.StuCardMapper">
   <!-- statement,內容:sql語句。id:唯一標識,隨便寫,在同一個命名空間下保持唯一
      resultType:sql語句查詢結果集的封裝類型,tb_user即爲數據庫中的表
    -->
   <select id="getStuCardByStuNo" parameterType="String" resultType="init.wuji.mybatis.mapper.entity.StuCard">
      select card_no cardNo,money from stu_card where card_no = #{value}
   </select>
</mapper>

注意select標籤裏的屬性值,和namesapce的路徑以及文件名稱,當然還有sql語句

重點

將剛纔的mapper.xml文件路徑配置到一開始的config.xml的mapper標籤中去,纔可以使用。

最後一步,運行頁面

文件名稱:/mavenMybatis/src/main/java/init/wuji/mybatis/mapper/dao/MapperTest.java
代碼:

package init.wuji.mybatis.mapper.dao;

import java.io.IOException;

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.Before;
import org.junit.Test;


public class MapperTest {
	private SqlSession session;
	
	
	@Before
	public void mybatisInit() throws IOException{
		SqlSessionFactory ssf =new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("config/mybatis/mybatis-config.xml"));
		session = ssf.openSession();
		}
	
	
	@Test
	public void queryEmpByEmpNo() {
		StuCardMapper cardMapper = session.getMapper(StuCardMapper.class);
		
		
		System.out.println("----->"+cardMapper.getStuCardByStuNo("111"));
	}
}

注意19行的mybits-config.xml的路徑位置,以及29的操作代碼。(我用了JUnit的註解)

運行成功截圖
在這裏插入圖片描述

附上數據庫

在這裏插入圖片描述

下課

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