Spring Boot通過Mybatis,使用mapper介面和xml配置sql,連線資料庫
阿新 • • 發佈:2019-01-27
由於最早使用的是註解的方式來連線資料庫,所以比較簡單,後來發行做後臺的同事用的一般都是xml的形式,所以也跟著學習了下。發行mapper介面和xml配置sql,比較複雜,尤其是對我這種新手,研究了好久才配置成功。為了防止忘記,故寫下來,也給準備學習的人當參考資料。
1.首先在配置檔案application.properties中,寫上相關的資訊
mybatis.typeAliasesPackage
mybatis.mapperLocations
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username =***
spring.datasource.password=***
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#mybatis.typeAliasesPackage:為實體物件所在的包,跟資料庫表一一對應
#mybatis.mapperLocations:mapper檔案的位置
mybatis.typeAliasesPackage=com.test.dailyreport.bean
mybatis.mapperLocations=classpath:mybatis/mapper/*Mapper.xml
#寫法不同,不過結果一樣
#mybatis.type-aliases-package=com.test.dailyreport.bean
#mybatis.mapper-locations=classpath:mybatis/mapper/*Mapper.xml
2.在啟動類Application.java中寫上配置資訊
@SpringBootApplication
@MapperScan("com.test.dailyreport.dao") // mybatis掃描路徑,針對的是介面Mapper類
public class DailyreportApplication{
public static void main(String[] args) {
SpringApplication.run(DailyreportApplication.class, args);
}
}
3.寫mapper.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" >
<!--你介面的包名是com.abc.dao,介面名是NameMapper.java,那麼你的mapper.xml的namespace應該是com.abc.dao.NameMapper-->
<mapper namespace="com.test.dailyreport.dao.UserMapper" >
<!--resultMap對應的是表與實體類的對映 - type 資料庫表對應的實體類,別名或完整類名都可以-->
<resultMap id="BaseResultMap" type="com.test.dailyreport.bean.UserBean" >
<!-- 結果集的主鍵 -->
<id column="id" property="id" jdbcType="INTEGER" />
<!-- 普通的列 -column 是資料庫中欄位, property是實體類中欄位-->
<result column="token" property="token" jdbcType="VARCHAR" />
<result column="account" property="account" jdbcType="VARCHAR" />
<result column="password" property="password" jdbcType="VARCHAR" />
<result column="department" property="department" jdbcType="VARCHAR" />
<result column="user_name" property="name" jdbcType="VARCHAR" />
</resultMap>
<!--parameterType(輸入型別)、resultType(輸出型別)-->
<select id="loginByAccount" parameterType="String" resultMap="BaseResultMap" resultType="com.test.dailyreport.bean.UserBean">
SELECT * FROM USER_DETAIL WHERE account = #{account,jdbcType=VARCHAR}
</select>
</mapper>
4.本人是用gradle配置檔案的,如果沒有寫上依賴
compile('org.springframework.boot:spring-boot-starter-web')
compile("org.mybatis.spring.boot:mybatis-spring-boot-starter:1.1.1")
compile('mysql:mysql-connector-java')
maven沒有測試過,網上找了下
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
這樣就成功的使用mapper介面和xml配置sql