1、创建项目时需要注意
勾选SQL中的JDBC API、MyBatis Framework、MySQL Driver,创建项目后就会自动配置和引入这些包。
2、配置
在pom.xml文件中添加依赖:
在<dependencies></dependencies>中添加以下代码,引入jdbc、mybatis和mysql依赖包:
<!-- jdbc -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
在Maven管理中点击Reload All Maven Projects,重新加载项目:
二、创建数据库表
数据库名:spring_boot_demo
数据库表:t_user
字段:id,username,password,age,sex
三、配置数据库连接信息
springboot中默认的配置文件是application.properties,修改后缀名为application.yml,打开编辑配置信息:
注:两者的区别不大,简单了解下就可以了。
哪个也可以用,主要还是看个人习惯(application.properties和application.yml的区别)
spring:
datasource:
url: jdbc:mysql://localhost:3306/spring_boot_demo?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
四、建立三层架构实现数据访问
结构
1、数据访问层
(1)UserPO类:
implements Serializable的一个bean类;(略)
(2)UserMapper接口:
package com.example.demo.mapper;
import org.springframework.stereotype.Repository;
/**
* @author 我命倾尘
*/
@Repository
public interface UserMapper {
int getAgeByUsername(String username);
}
@Repository注解是把这个接口的一个实现类交给spring管理。
(3)UserMapper.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="com.example.demo.mapper.UserMapper">
<select id="getAgeByUsername" resultType="int">
select
age
from
t_user
where
username=#{username,jdbcType=VARCHAR}
</select>
</mapper>
(4)在application.yml中添加配置mapper.xml文件的路径:
mybatis:
mapper-locations:
- classpath:mybatis/*.xml
(5)在程序入口类中添加扫描:
@MapperScan("com.example.demo.mapper")
2、业务逻辑层
(1)UserService类:
package com.example.demo.service;
/**
* @author 我命倾尘
*/
public interface UserService {
int getAgeByUsername(String username);
}
(2)UserServiceImpl类:
package com.example.demo.service.impl;
import com.example.demo.mapper.UserMapper;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @author 我命倾尘
*/
@Service
public class UserServiceImpl implements UserService {
@Autowired
UserMapper userMapper;
@Override
public int getAgeByUsername(String username) {
return userMapper.getAgeByUsername(username);
}
}
3、页面展示层:
(1)UserController类:
package com.example.demo.controller;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author 我命倾尘
*/
@RestController
public class UserController {
@Autowired
UserService userService;
@RequestMapping("/user/age")
public int getAgeOfUser(){
return userService.getAgeByUsername("springbootdemo");
}
}
五、运行程序
按照配置的端口和映射URL,页面的路径应该是http://localhost:8080/cn/user/age
参考:https://www.cnblogs.com/guobin-/p/13684637.html