26.JdbcTemplate

JdbcTemplate

Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作

准备工作

加入依赖

pom.xml

	<!-- Spring 持久化层支持jar包 -->
	<!-- Spring 在执行持久化层操作、与持久化层技术进行整合过程中,需要使用orm、jdbc、tx三个jar包 -->
	<!-- 导入 orm 包就可以通过 Maven 的依赖传递性把其他两个也导入 -->
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-orm</artifactId>
		<version>5.3.1</version>
	</dependency>

	<!-- Spring 测试相关 -->
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-test</artifactId>
		<version>5.3.1</version>
	</dependency>

创建jdbc.properties

jdbc.properties(之前创建过)

jdbc.driver = com.mysql.cj.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/ssm?serverTimezone=UTC
jdbc.username = root
jdbc.password = yuxingxuan

创建Spring配置文件

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

    <!-- 导入外部属性文件 -->
    <!--
        在web工程中存在两个路径
            类路径:存放类和配置文件
            web资源路径:存放和web相关的资源
        classpath:指定为类路径
    -->
    <context:property-placeholder location="classpath:jdbc.properties" />
    <!-- 配置数据源 -->
    <bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="url" value="${jdbc.url}"/>
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>

    <!-- 配置 JdbcTemplate -->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <!-- 装配数据源 -->
        <property name="dataSource" ref="druidDataSource"/>
    </bean>
</beans>

测试

JdbcTemplateTest.java

package com.atguigu.JdbcTemplate.test;

import com.atguigu.mybatis.pojo.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import java.util.List;

//设置当前测试类的运行环境-->在spring的测试环境中运行,就可以通过注入的方式直接获取IOC容器中的bean
@RunWith(SpringJUnit4ClassRunner.class)
//设置Spring测试环境的配置文件
@ContextConfiguration("classpath:spring-JdbcTemplate.xml")
public class JdbcTemplateTest {
    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Test
    public void testInsert(){
        String sql = "insert into t_user values(null,?,?,?,?,?)";
        //添加一条数据
        jdbcTemplate.update(sql,"test","123",22,"女","123@qq.com");
    }

    @Test
    public void testSelect(){
        String sql = "select * from t_user where id = ?";
        //查询id为1用户信息(导入mybatis的pojo目录下的User)
        User user = jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper<>(User.class),27);
        System.out.println(user);
    }

    @Test
    public void testGetAllUser(){
        String sql = "select * from t_user where id > 25";
        //获取多条信息
        List<User> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class));
        list.forEach(System.out::println);
    }

    @Test
    public void testGetCount(){
        String sql = "select count(*) from t_user";
        //获取总记录数
        Integer count = jdbcTemplate.queryForObject(sql, Integer.class);
        System.out.println("表中记录数为:"+count);
    }
}
INFO  02-02 22:43:23,124 {dataSource-1} inited (DruidDataSource.java:794) 
表中记录数为:15
User{id=26, username='admin1', password='123', age=20, gender='女', email='158@qq.com'}
User{id=27, username='test', password='123', age=22, gender='女', email='123@qq.com'}
User{id=28, username='test', password='123', age=22, gender='女', email='123@qq.com'}
User{id=27, username='test', password='123', age=22, gender='女', email='123@qq.com'}
INFO  02-02 22:43:24,758 {dataSource-1} closed (DruidDataSource.java:1543) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值