myBatis与之前的spring中repository连接比较
myBatis相对来说配置会比较麻烦,但是优点在于mybatis对数据库的语言操作更加自由
程序部署
创建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>
<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>
创建application.properties配置文件
文件目录放在src/main/resources目录下,配置连接数据库的相关数据例如账号密码,以及制定操作哪个表等
#数据库连接
#指定连接数据库位置
spring.datasource.url=jdbc:mysql://localhost/myweb?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
#设置数据库登陆账号
spring.datasource.username=root
#设置数据库登陆账号(我的数据库没设密码所以为空)
spring.datasource.password=
#设置数据库驱动
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#配置mapper.xml文件存放路径
#设置映射器位置
mybatis.mapper-locations=classpath:mapper/*.xml
#自动更新数据库结构
spring.jpa.properties.hibernate.hbm2ddl.auto=update
//设置数据库的语言类型
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
配置Mapper.xml文件
配置位置在src/main/resources/mapper/文件夹下,用于对应实体类编写数据库内容
<?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>
创建控制器以及是对象,这个就可以参考之前的springboot搭建
创建TeacherMapper接口
public interface TeacherMapper {
/**
* 通过id查询老师信息
* @param id id
* @return teacher信息
*/
public TeacherBean getTeacherById(@Param("id") String id);
}
创建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);
}
}