Spring JDBC 万能模板

一、XML 万能模板(最常用)

文件名:spring-jdbc.xml

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!-- 数据源 -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/数据库名?useSSL=false&amp;serverTimezone=Asia/Shanghai"/>
        <property name="username" value="root"/>
        <property name="password" value="你的密码"/>
    </bean>

    <!-- JdbcTemplate -->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"/>
    </bean>

</beans>

只需要改这 4 个地方:

数据库名

用户名

密码

驱动版本(一般不用改)

二、Java 配置类万能模板------工具准备室

文件名:JdbcConfig.java

复制代码
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

import javax.sql.DataSource;

@Configuration
public class JdbcConfig {

    @Bean
    public DataSource dataSource() {
        DriverManagerDataSource ds = new DriverManagerDataSource();
        ds.setDriverClassName("com.mysql.cj.jdbc.Driver");
        ds.setUrl("jdbc:mysql://localhost:3306/数据库名?serverTimezone=Asia/Shanghai");
        ds.setUsername("root");
        ds.setPassword("你的密码");
        return ds;
    }

    @Bean
    public JdbcTemplate jdbcTemplate(DataSource dataSource) {
        return new JdbcTemplate(dataSource);
    }
}

三、使用时万能写法

UserDao.java

复制代码
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;

public class UserDao {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    // 增
    public void add() {
        String sql = "insert into user(name,age) values(?,?)";
        jdbcTemplate.update(sql, "张三", 20);
    }

    // 删
    public void delete(int id) {
        String sql = "delete from user where id=?";
        jdbcTemplate.update(sql, id);
    }

    // 改
    public void update() {
        String sql = "update user set age=? where id=?";
        jdbcTemplate.update(sql, 21, 1);
    }

    // 查
    public List<User> findAll() {
        String sql = "select * from user";
        return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class));
    }
}
  • XML 里:bean 造对象,property 设值
  • JdbcTemplate 用来执行 SQL
  • 实际开发全是复制模板,改改数据库信息
相关推荐
BingoGo12 小时前
PHP clone 之后,为什么改副本会影响原对象?
后端·php
JaguarJack13 小时前
PHP clone 之后,为什么改副本会影响原对象?
后端·php·服务端
小灰灰搞电子13 小时前
Rust+Slint 实现动态消息提示框源码分享
开发语言·后端·rust
魏 无羡13 小时前
webclient
java·webclient
小奏技术13 小时前
10 MB 的 Postman 替代品,启动不到 1 秒
后端
东风破_13 小时前
Text2SQL :用自然语言操作 SQLite 数据库
人工智能·后端
神仙别闹14 小时前
基于 C++ 实现两个有序链表序列的交集
java·c++·链表
swordbob15 小时前
ReentrantLock 与 AQS 完整学习手册
java·开发语言
m0_5873830016 小时前
全民健身解决方案软件开发实战:从架构设计到落地指南
java·spring boot·spring·架构·需求分析
白山编程大哥16 小时前
Java OutputStreamWriter 详解:从字符到字节的桥梁
java·开发语言·python