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的注解)

运行成功截图
在这里插入图片描述

附上数据库

在这里插入图片描述

下课

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