項目名稱:010-springboot-web-mybatis
通過SpringBoot +MyBatis實現對數據庫學生表的查詢操作;
數據庫參考:springboot.sql腳本文件。
啟動Linux系統上的mySQL服務器,通過Navicat連接
創建新的數據庫springboot,指定數據庫字符編碼為utf-8
向表中插入數據
創建一個新的SpringBoot的Module
指定GAV坐標
選擇SpringBoot版本以及web依賴
修改Content root以及Mudule file location
<!--MyBatis整合SpringBoot的起步依賴-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<!--MySQL的驅動依賴-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
4.在Springboot的核心配置文件application.properties中配置數據源
注意根據自己數據庫的信息修改以下內容
#配置內嵌Tomcat端口號
server.port=9090
#配置項目上下文根
server.servlet.context-path=/010-springboot-web-mybatis
#配置數據庫的連接信息
#注意這里的驅動類有變化
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://192.168.92.134:3306/springboot?useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
5.開發代碼
使用Mybatis反向工程生成接口、映射文件以及實體bean,具體步驟參見附錄1
在com.bjpowernode.springboot.web包下創建StudentController并編寫代碼
/**
* ClassName:StudentController
* Package:com.bjpowernode.springboot.web
* Description:
*/
@Controller
public class StudentController {
@Autowired
private StudentService studentService;
@RequestMapping(value = "/springBoot/student")
public @ResponseBody Object student() {
Student student = studentService.queryStudentById(1);
return student;
}
}
在com.bjpowernode.springboot.service包下創建service接口并編寫代碼
/**
* ClassName:StudentService
* Package:com.bjpowernode.springboot.service
* Description:
*/
public interface StudentService {
/**
* 根據學生標識獲取學生詳情
* @param id
* @return
*/
Student queryStudentById(Integer id);
}
在com.bjpowernode.springboot.service.impl包下創建service接口并編寫代碼
@Service
public class StudentServiceImpl implements StudentService {
@Autowired
private StudentMapper studentMapper;
@Override
public Student queryStudentById(Integer id) {
return studentMapper.selectByPrimaryKey(id);
}
}
如果在web中導入service存在報錯,可以嘗試進行如下配置解決
在Mybatis反向工程生成的StudentMapper接口上加一個Mapper注解
@Mapper作用:mybatis自動掃描數據持久層的映射文件及DAO接口的關系
@Mapper
public interface StudentMapper {
注意:默認情況下,Mybatis的xml映射文件不會編譯到target的class目錄下,所以我們需要在pom.xml文件中配置resource
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
6.啟動Application應用,瀏覽器訪問測試運行
注釋掉StudentMapper接口上的@Mapper注解
在運行主類Application上加@MapperScan("com.bjpowernode.springboot.mapper")
或
測試運行
項目名稱:011-springboot-web-mybatis
因為SpringBoot不能自動編譯接口映射的xml文件,還需要手動在pom文件中指定,所以有的公司直接將映射文件直接放到resources目錄下;
在resources目錄下新建目錄mapper存放映射文件,將StudentMapper.xml文件移到resources/mapper目錄下;
在application.properties配置文件中指定映射文件的位置,這個配置只有接口和映射文件不在同一個包的情況下,才需要指定
# 指定Mybatis映射文件的路徑
mybatis.mapper-locations=classpath:mapper/*.xml