springboot整合持久层技术
整合jdbcTemplate
1。依赖导入
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>cn.jiannan</groupId>
<artifactId>jdbcTemplate</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>jdbcTemplate</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.9</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.配置数据库连接
spring:
datasource:
url: xxxxx
username: xxx
password: xxx
driver-class-name: com.mysql.jdbc.Driver
3.写dao层
@Repository
public class UserDao {
@Autowired
JdbcTemplate jdbcTemplate;
//因为添加了jdbc的相关依赖,因此jdbcTemplate可以直接使用
public User getUser(Long userId){
return jdbcTemplate.queryForObject("select * from tb_user where user_id=?",new BeanPropertyRowMapper<>(User.class),userId);
}
}
4.省略service层。直接controller层
@RestController
public class UserController {
@Autowired
UserService userService;
@GetMapping("/getUser")
public void userController(){
User user= userService.getUser(56566688L);
System.out.println(user.toString());
}
}
5,运行效果
略
整合Mybatis
1.创建项目以及添加mybatis,web,mysql依赖,手动添加druid连接
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>cn.jiannnan</groupId>
<artifactId>mybatis-springboot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>mybatis-springboot</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--数据连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.9</version>
</dependency>
<!--测试的,基本不用-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--自动生成get,set的lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.配置文件中配置
新建application-dev.yml[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G160D1FQ-1618483188337)(C:%5CUsers%5Cwuyuhong%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20210415155106785.png)]
dev是日常环境。application.properties指向这套环境
application.properties中添加
spring.profiles.active=dev
dev文件中配置数据库链接信息以及mybatis设置,日志设置
spring:
datasource:
url: xxx
username: xxx
password: xxx
driver-class-name: com.mysql.jdbc.Driver
#mybatis配置。locations代表xml文件的位置。我放在resource/mapper文件夹下面 aliases-package指的是映射的实体类。
mybatis:
mapper-locations: classpath:mapper/*Mapper.xml
type-aliases-package: cn.jiannan.entity
#日志:指向mapper层,级别为debug,这样执行的时候就能看到执行的SQL语句。有错误方便看
logging:
level:
cn:
jiannan:
mapper: debug
3.写mapper层,service层 ,controller层
@Mapper
public interface UserMapper {
/**
*获取所有用户
* @author wyh
* @date 2021/4/15 15:03
* @return java.util.List<cn.jiannnan.entity.User>
*/
List<User> getAllUser();
/**
* 通过ID查找用户
* @author wyh
* @date 2021/4/15 15:05
* @param userId
* @return cn.jiannnan.entity.User
*/
User getUserById(Long userId);
}
运行效果