本文介绍: Spring JDBC Template 是 Spring Framework 提供的一个模板类。它封装了一些常见的 JDBC 操作,使得开发者使用 JDBC 时能够更加便捷、简洁,同时也提供了异常处理资源管理功能

概述

Spring JDBC Template 是 Spring Framework 提供的一个简化 JDBC 操作模板类。它封装了一些常见的 JDBC 操作,使得开发者使用 JDBC 时能够更加便捷、简洁,同时也提供了异常处理资源管理功能

导入pom 使用C3P0作为数据源

<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
​
  <groupId>org.example</groupId>
  <artifactId>spring-jdbc-demo1</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>
​
  <name>spring-jdbc-demo1</name>
  <url>http://maven.apache.org</url>
​
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
​
  <dependencies>
​
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>6.0.13</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>6.0.13</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>6.0.13</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/c3p0/c3p0 -->
    <dependency>
      <groupId>c3p0</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.1.2</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.28</version>
    </dependency>
    <!-- Spring JDBC -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.3.5</version>
    </dependency>
​
    <!-- Spring Transaction (如果需要事务支持) -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>5.3.10</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13.2</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
​

普通纯java代码 查询操作

 ComboPooledDataSource dataSource =new ComboPooledDataSource();
        dataSource.setDriverClass("com.mysql.jdbc.Driver");
        dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/db2");
        dataSource.setUser("root");
        dataSource.setPassword("11111");
        JdbcTemplate jdbcTemplate =new JdbcTemplate();
        jdbcTemplate.setDataSource(dataSource);
        int row = jdbcTemplate.update(
            "INSERT INTO user values (?,?,?)", "110", "xl11x", 105);
        System.out.println(row);

Xml配置 springJDBCTemplate(简化纯java代码

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">
   <context:property-placeholder location="classpath:mysql.properties"></context:property-placeholder>
    <bean id="datasource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.Driver}"></property>
        <property name="jdbcUrl" value="${jdbc.url}"></property>
        <property name="user" value="${jdbc.user}"></property>
        <property name="password" value="${jdbc.password}"></property>
     </bean>
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="datasource"></property>
    </bean>
</beans>``

Properties文件配置

jdbc.Driver =com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/db2
jdbc.user = root
jdbc.password = 111111

测试 插入

ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        JdbcTemplate jdbcTemplate =  context.getBean(JdbcTemplate.class);
        int row =jdbcTemplate.update("INSERT INTO user values (?,?,?)", "1110", "llx", 1105);
        System.out.println(row);

测试 查询(重要)

ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        JdbcTemplate jdbcTemplate =  context.getBean(JdbcTemplate.class);
        List<User> query = jdbcTemplate.query("select * from user", new BeanPropertyRowMapper<User>(User.class));
        System.out.println(query);

new BeanPropertyRowMapper<User>(User.class)

这个API里面的泛型填的是你要查询封装而成的实体类 参数实体类字节文件

返回的是一个list集合

实体类

package domain;
​
public class User {
    private String sno;
    private String name;
    private int point;
​
    public User(String sno, String name, int point) {
        this.sno = sno;
        this.name = name;
        this.point = point;
    }
​
    public User() {
    }
​
    public String getSno() {
        return sno;
    }
​
    public void setSno(String sno) {
        this.sno = sno;
    }
​
    public String getName() {
        return name;
    }
​
    public void setName(String name) {
        this.name = name;
    }
​
    public int getPoint() {
        return point;
    }
​
    public void setPoint(int point) {
        this.point = point;
    }
​
    @Override
    public String toString() {
        return "User{" +
                "sno='" + sno + ''' +
                ", name='" + name + ''' +
                ", point=" + point +
                '}';
    }
}
​

原文地址:https://blog.csdn.net/qq_62646841/article/details/134618385

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_7977.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注