myBatis與之前的spring中repository連接比較
myBatis相對(duì)來說配置會(huì)比較麻煩,但是優(yōu)點(diǎn)在于mybatis對(duì)數(shù)據(jù)庫的語言操作更加自由
程序部署
創(chuàng)建Maven文件
編輯pom.xml
用于下載項(xiàng)目所需要的依賴
<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>
<groupId>test2</groupId>
<artifactId>test2</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>test2</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
//mybatis的依賴
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-thymeleaf -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-thymeleaf -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.21</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
創(chuàng)建application.properties配置文件
文件目錄放在src/main/resources目錄下,配置連接數(shù)據(jù)庫的相關(guān)數(shù)據(jù)例如賬號(hào)密碼,以及制定操作哪個(gè)表等
#數(shù)據(jù)庫連接
#指定連接數(shù)據(jù)庫位置
spring.datasource.url=jdbc:mysql://localhost/myweb?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
#設(shè)置數(shù)據(jù)庫登陸賬號(hào)
spring.datasource.username=root
#設(shè)置數(shù)據(jù)庫登陸賬號(hào)(我的數(shù)據(jù)庫沒設(shè)密碼所以為空)
spring.datasource.password=
#設(shè)置數(shù)據(jù)庫驅(qū)動(dòng)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#配置mapper.xml文件存放路徑
#設(shè)置映射器位置
mybatis.mapper-locations=classpath:mapper/*.xml
#自動(dòng)更新數(shù)據(jù)庫結(jié)構(gòu)
spring.jpa.properties.hibernate.hbm2ddl.auto=update
//設(shè)置數(shù)據(jù)庫的語言類型
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
配置Mapper.xml文件
配置位置在src/main/resources/mapper/文件夾下,用于對(duì)應(yīng)實(shí)體類編寫數(shù)據(jù)庫內(nèi)容
<?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.test.testmybatis.mapper.TeacherMapper">
<resultMap id="BaseResultMap" type="com.test.testmybatis.entity.TeacherBean">
<result column="tec_id" property="tecId" jdbcType="VARCHAR"/>
<result column="tec_name" property="tecName" jdbcType="VARCHAR"/>
<result column="tec_age" property="tecAge" jdbcType="INTEGER"/>
<result column="tec_desc" property="tecDesc" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
tec_id, tec_name, tec_age,tec_desc
</sql>
<select id="getTeacherById" resultMap="BaseResultMap" parameterType="java.lang.String">
select
<include refid="Base_Column_List" />
from teacher
where tec_id = #{id}
</select>
創(chuàng)建控制器以及是對(duì)象,這個(gè)就可以參考之前的springboot搭建
創(chuàng)建TeacherMapper接口
public interface TeacherMapper {
/**
* 通過id查詢老師信息
* @param id id
* @return teacher信息
*/
public TeacherBean getTeacherById(@Param("id") String id);
}
創(chuàng)建Service層
package com.test.testmybatis.servise;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.test.testmybatis.entity.TeacherBean;
import com.test.testmybatis.mapper.TeacherMapper;
@Service
public class TeacherService {s
@Autowired
private TeacherMapper Teacher;
public TeacherBean queryTeacher(String id){
return Teacher.getTeacherById(id);
}
}