您的位置:首页 > 编程语言

JdbcTemplate编程

2016-09-08 15:43 99 查看
spring框架中的 JdbcTemplate 是一种JDBC工具,能使数据库的开发更方便。

一、JdbcTemplate在xml文件中的配置如下:

1.配置数据源
<context:property-placeholder location="classpath:db.properties"/>

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
</bean>

2.配置JdbcTemplate的bean
<!-- ref="dataSource" 是指向上面所写的数据源的对象 -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>

二、JdbcTemplate的用法

private JdbcTemplate jt;

1.进行数据库记录更新
public void testUpdate() {
String sql = "UPDATE grade SET gname = ? WHERE gid = ?";
// 指定所要查询的SQL语句和参数
jt.update(sql, "wangluo", 3);
}

2.批量更新:插入若干条记录,记录所对应若干个的对象并存放在Object数组的集合中
public void testBatchUpdate() {
String sql = "INSERT INTO grade VALUES(?,?,?)";
List<Object[]> batchArgs = new ArrayList<>();

batchArgs.add(new Object[]{6, "wl2", null});
batchArgs.add(new Object[]{7, "wl3", "tt"});

jt.batchUpdate(sql, batchArgs);

}

3.根据数据库中一条记录得到一个对象。注意:
(1)目标类中需要要setter方法!!

          (2)如果column名与类的字段名不同,必须使用别名(AS),把column名改为与类的字段名一致!!!
@Test
public void testQueryForObject() {
String sql = "SELECT sid, sname AS name, sex, gid FROM student WHERE sid = ?";
BeanPropertyRowMapper<Student> rowMapper = new BeanPropertyRowMapper<>(Student.class);
Student stu = jt.queryForObject(sql, rowMapper, 3);

System.out.println(stu);
}

4.根据数据库的多条记录获得对象的集合
@Test
public void testQueryForList() {
String sql = "SELECT sid, sname AS name, sex, gid FROM student WHERE sid > ?";
BeanPropertyRowMapper<Student> rowMapper = new BeanPropertyRowMapper<>(Student.class);
List<Student> list = jt.query(sql, rowMapper, 2);

System.out.println(list);
}

5.通过SELECT语句获取单个字段的值或者获取聚合函数的值:使用queryForObject(String sql, Class<Long> requiredType)
@Test
public void testQueryForObject3() {
String sql = "SELECT sname FROM student WHERE sid = ?";
String sname = jt.queryForObject(sql, String.class, 4);

System.out.println(sname);
}

@Test
public void testQueryForObject2() {
String sql = "SELECT COUNT(sid) FROM student";
long count = jt.queryForObject(sql, Long.class);

System.out.println(count);
}

6.通过StudentDao查询数据库记录并获取对象
@Test
public void testStudentDao() {
Student s = studentDao.get(1);
System.out.println(s);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Spring框架 数据库