Spring 中 JdbcTemplate 使用

JdbcTemplate 的使用

一、添加 Maven 依赖

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.1.5.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.1.5.RELEASE</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.6</version>
</dependency>

二、创建数据库 SQL

CREATE TABLE user(id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(29), sex VARCHAR(1), age INT);

三、创建 Spring 配置文件

<?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 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 配置一个数据库的操作模板:JdbcTemplate -->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!-- Spring 内置数据源 -->
    <bean  id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql:///test"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
    </bean>
    
</beans>

四、使用 JdbcTemplate 进行保存、更新、删除操作

// 保存数据
public void inster() {
    ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Application.xml");
    JdbcTemplate jdbcTemplate = (JdbcTemplate) applicationContext.getBean("jdbcTemplate");
    jdbcTemplate.update("insert into user(name,sex,age)values(?,?,?)","小明","男",15);
}
// 更新数据
public void update() {
    ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Application.xml");
    JdbcTemplate jdbcTemplate = (JdbcTemplate) applicationContext.getBean("jdbcTemplate");
    jdbcTemplate.update("update user set age = ? where id = ?",18,1);
}
// 删除操作
public void delete() {
    ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Application.xml");
    JdbcTemplate jdbcTemplate = (JdbcTemplate) applicationContext.getBean("jdbcTemplate");
    jdbcTemplate.update("delete from user where id = ?",1);
}

五、使用 JdbcTemplate 进行查询操作

      创建与数据库表对应的 Bean

public class User {
    private int id;
    private String name;
    private String sex;
    private int age;
	// 省略 Set、Get 方法
}

      创建映射类

public class UserRowMapper implements RowMapper<User> {

    public User mapRow(ResultSet resultSet, int i) throws SQLException {
        User user = new User();
        user.setId(resultSet.getInt("id"));
        user.setName(resultSet.getString("name"));
        user.setSex(resultSet.getString("sex"));
        user.setAge(resultSet.getInt("age"));
        return user;
    }
}

      查询操作

public void query() {
    ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Application.xml");
    JdbcTemplate jdbcTemplate = (JdbcTemplate) applicationContext.getBean("jdbcTemplate");
    List<User> userList = jdbcTemplate.query("select * from user where age > ? ", new UserRowMapper(), 10);
}
在 Dao 层中使用 JdbcTemplate

一、创建 Dao 层接口

public interface IUserDao {

    void inster();
}

二、创建 Dao 层实现类

public class UserDaoImpl implements IUserDao {
    private JdbcTemplate jdbcTemplate;


    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    public void inster() {
        jdbcTemplate.update("insert into user(name,sex,age)values(?,?,?)","小明4","男",15);
    }
}

三、Spring 配置文件

<?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">

    <bean id="userDao" class="chu.yi.bo.UserDaoImpl">
        <property name="jdbcTemplate" ref="jdbcTemplate"/>
    </bean>

    <!-- 配置一个数据库的操作模板:JdbcTemplate -->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!-- Spring 内置数据源 -->
    <bean  id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql:///test"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
    </bean>

</beans>

四、测试

public class TestSpring {

    public static void main(String[] args) {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Application.xml");
        UserDaoImpl userDao = (UserDaoImpl) applicationContext.getBean("userDao");
        userDao.inster();
    }
}
Dao 层继承 JdbcDaoSupport 抽象类

      每个 Dao 层实现类都需要手动依赖注入 JdbcTemplate 属性,为了省略这些重复操作,Spring 提供了 JdbcDaoSupport 抽象类,Dao 层实现类继承该抽象类后,就无需再手动的依赖注入 JdbcTemplate 属性,而是调用 getJdbcTemplate() 方法来获取 JdbcTemplate 实例。

一、Dao 层接口

public interface IUserDao {

    void inster();
}

二、Dao 层实现类

public class UserDaoImpl extends JdbcDaoSupport implements IUserDao {

    public void inster() {
        getJdbcTemplate().update("insert into user(name,sex,age)values(?,?,?)","小明4","男",15);
    }
}

三、Spring 配置文件

<?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">

    <bean id="userDao" class="chu.yi.bo.UserDaoImpl">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!-- Spring 内置数据源 -->
    <bean  id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql:///test"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
    </bean>

</beans>

四、测试

public class TestSpring {

    public static void main(String[] args) {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Application.xml");
        UserDaoImpl userDao = (UserDaoImpl) applicationContext.getBean("userDao");
        userDao.inster();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringJdbcTemplateSpring框架对JDBC进行封装的一个工具类,旨在使JDBC更加易于使用JdbcTemplate处理了资源的建立和释放,帮助我们避免一些常见的错误,比如忘记关闭连接。使用JdbcTemplate可以简化数据库操作的代码量,并提供了一些便捷的方法来执行数据库查询、更新等操作。 使用JdbcTemplate的步骤如下: 1. 引入相关的jar包,包括druid-1.1.9.jar、spring-jdbc-5.2.6.RELEASE.jar、spring-orm-5.2.6.RELEASE.jar和spring-tx-5.2.6.RELEASE.jar。这些jar包提供了JdbcTemplate的实现和相关依赖。 2. 在Spring的配置文件添加数据库连接的配置,包括数据库的URL、用户名、密码和驱动类名等信息。这可以通过配置一个DataSource对象来实现。 3. 配置JdbcTemplate对象,将DataSource对象注入到JdbcTemplate。可以通过在Spring的配置文件定义一个JdbcTemplate的bean,并设置其dataSource属性为前面配置的DataSource对象。 4. 创建service和dao对象,将JdbcTemplate对象注入到dao。在dao层的代码,可以通过在dao类定义一个JdbcTemplate的成员变量,并在dao类的构造方法或通过依赖注入的方式将JdbcTemplate对象注入进来。这样,就可以在dao使用JdbcTemplate来执行数据库操作了。 通过上述步骤,我们就可以在Spring项目使用JdbcTemplate来进行数据库操作了。JdbcTemplate提供了一系列的方法,如查询、更新、批处理等,可以根据具体的需求选择合适的方法来使用使用JdbcTemplate可以简化数据库操作的代码,并提高开发效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [SpringjdbcTemplate使用](https://blog.csdn.net/ABestRookie/article/details/127232689)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [JdbcTemplate基本使用](https://download.csdn.net/download/weixin_38606076/14939780)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [SpringJdbcTemplate使用](https://blog.csdn.net/qq_38628046/article/details/108111318)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值