Spring JDBC初尝试

Spring JDBC简化了JDBC的大部分工作,只需要专注于sql语句与执行,但它不是ORM,级联属性不能像hibernate那样直接处理。

Spring JDBC的关键类是JdbcTemplate。


1、applicationContext.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-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">


<!-- 指定数据源的配置文件 -->
<context:property-placeholder location="classpath:db.properties"/>

<!--
利用 BasicDataSource配置数据源
org.apache.commons.dbcp2.BasicDataSource 需要commons-dbcp2-2.1.1.jar,依赖commons-pool2-2.4.2.jar
-->

<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="driverClassName" value="${jdbc.driver}"></property>
</bean>


<!-- 利用spring的DriverManagerDataSource配置数据源 -->
<bean id="dataSource2" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="driverClassName" value="${jdbc.driver}"></property>
</bean>

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

PS:BasicDataSource数据配置依赖的jar包,可以在我的云盘下载http://blog.csdn.net/gw85047034/article/details/52768693


2、TestJDBC

import java.sql.SQLException;
import java.util.List;


import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;


public class TestJDBC {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
JdbcTemplate jdbcTemplate = context.getBean(JdbcTemplate.class);

@Test
public void testQueryForObject() throws SQLException {
// 使用RowMapper将数据库与实体类对应起来,常用的实现类为BeanPropertyRowMapper
// sql语句里面的字段名称要与实体类的成员属性一致 ,顺序是无关的
// 如果表结构的字段与实体类属性名一直,可以直接写成select *
// 不支持级联属性

String sql = "select id,name,age,grade from student where id= ? ";
RowMapper<Student> rowMapper = new BeanPropertyRowMapper<>(Student.class);
Student student = jdbcTemplate.queryForObject(sql, rowMapper,9);
System.out.println(student);
}

@Test
public void testQueryForList() {
// 也是使用RowMapper将数据库与实体类对应起来
// 使用jdbcTemplate.query查询,而不是用jdbcTemplate.queryForList

String sql = "select id,name,age,grade from student";
RowMapper<Student> rowMapper = new BeanPropertyRowMapper<>(Student.class);
List<Student> students = jdbcTemplate.query(sql, rowMapper);
System.out.println(students);
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值