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
  • 实际开发全是复制模板,改改数据库信息
相关推荐
葫芦和十三4 小时前
图解 MongoDB 02|BSON:你以为存的是 JSON,其实是带类型的二进制
后端·mongodb·agent
葫芦和十三4 小时前
图解 MongoDB 01|文档数据库
后端·mongodb·agent
陈随易6 小时前
VSCode的Copilot扩展支持接入DeepSeek,Kimi了!
前端·后端·程序员
我不是外星人8 小时前
有了 Harness Engineering ,真的还需要研发工程师吗?
前端·后端·ai编程
candyTong8 小时前
RTK 技术原理:一次典型会话里,80% 上下文是怎么省下来的
javascript·后端·架构
Rust研习社10 小时前
组合真的优于继承吗?为什么 Rust 和 Go 都拥抱组合舍弃继承?
后端·rust·编程语言
IT_陈寒10 小时前
JavaScript的闭包把我坑惨了,说好的内存会自动回收呢?
前端·人工智能·后端
CaffeinePro11 小时前
Pydantic深度使用:数据校验、枚举、ORM映射
后端·fastapi
Chenyiax12 小时前
从 Chat 到 Responses:OpenAI API 抽象为什么变了?
后端
MariaH12 小时前
Koa和Express的区别
后端