JdbcTemplate技术与SB整合
pom.xml文件
<?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.7.9</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>HandleJdbc</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>HandleJdbc</name>
<description>HandleJdbc</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
SQL脚本文件
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名',
`sex` int(255) NULL DEFAULT NULL,
`age` int(11) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES (1, 'wanson', 1, 28);
INSERT INTO `student` VALUES (2, 'ann', 2, 16);
INSERT INTO `student` VALUES (3, 'wanson', 1, 30);
SET FOREIGN_KEY_CHECKS = 1;
application.yml配置文件
spring:
datasource:
url: jdbc:mysql://数据库服务IP地址:3306/handlejdbc?useUnicode=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true&characterEncoding=utf-8
username: root
password: 1
driver-class-name: com.mysql.cj.jdbc.Driver
Student类文件
package com.example.handlejdbc.dao;
public class Student {
private Long id;
private String name;
private int sex;
private int age;
public Student() {
}
public Student(Long id, String name, int sex, int age) {
this.id = id;
this.name = name;
this.sex = sex;
this.age = age;
}
public Student(String name, int sex, int age) {
this.name = name;
this.sex = sex;
this.age = age;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", sex=" + sex +
", age=" + age +
'}';
}
}
StudentRepository接口文件
package com.example.handlejdbc.service;
import com.example.handlejdbc.dao.Student;
public interface StudentRepository {
int save(Student student);
int update(Student student);
int delete(long id);
Student findById(long id);
}
StudentRepositoryImpl类文件
package com.example.handlejdbc.service.impl;
import com.example.handlejdbc.dao.Student;
import com.example.handlejdbc.service.StudentRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
@Repository
public class StudentRepositoryImpl implements StudentRepository {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public int save(Student student) {
return jdbcTemplate.update("insert into student(name,sex,age)values (?,?,?)",
student.getName(),
student.getSex(),
student.getAge());
}
@Override
public int update(Student student) {
return jdbcTemplate.update("update student set name=?,sex=?,age=? where id =?",student.getName(),student.getSex(),student.getAge(),student.getId());
}
@Override
public int delete(long id) {
return jdbcTemplate.update("delete from student where id=?", id);
}
@Override
public Student findById(long id) {
return jdbcTemplate.queryForObject("select *from student where id=?", new Object[]{id}, new BeanPropertyRowMapper<Student>(Student.class));
}
}
JdbcTemplate单元测试
package com.example.handlejdbc;
import com.example.handlejdbc.dao.Student;
import com.example.handlejdbc.service.StudentRepository;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.util.Assert;
import java.util.List;
import java.util.Map;
@SpringBootTest
class HandleJdbcApplicationTests {
@Autowired
JdbcTemplate jdbcTemplate;
@Test
void contextLoads() {
}
@Test
void queryTest() {
List<Map<String, Object>> list = jdbcTemplate.queryForList("select * from student");
System.out.println(list.size());
Assert.notNull(list);
}
@Autowired
private StudentRepository studentRepository;
@Test
void save() {
Student student = new Student("wanson", 1, 30);
studentRepository.save(student);
System.out.println("数据插入完毕");
}
@Test
void update() {
Student student = new Student("wanson", 1, 28);
student.setId(1L);
studentRepository.update(student);
}
@Test
void findById() {
Student student = studentRepository.findById(1L);
System.out.println("student==" + student.toString());
}
}
posted on 2023-03-21 12:50 Indian_Mysore 阅读(116) 评论(1) 收藏 举报
浙公网安备 33010602011771号