昆仑山:眼中无形心中有穴之穴人合一

夫君子之行,静以修身,俭以养德;非澹泊无以明志,非宁静无以致远。夫学须静也,才须学也;非学无以广才,非志无以成学。怠慢则不能励精,险躁则不能冶性。年与时驰,意与岁去,遂成枯落,多不接世。悲守穷庐,将复何及!

 

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)    收藏  举报

导航