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);
}
一、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);
}
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- 数据库链接字符串查询网站
- DB2实例管理
- DB2实例管理
- 保障MySQL数据安全的14个最佳方法
- mysql问答汇集
- 第三章 数据库备份和还原
- 创建一个空的IBM DB2 ECO数据库的方法
- Access 2000 数据库 80 万记录通用快速分页类
- 开通一个数据库失败的原因的和解决办法
- 一个简单的asp数据库操作类
- CentOS下DB2数据库安装过程详解
- EasyASP v1.5发布(包含数据库操作类,原clsDbCtrl.asp)第1/2页
- sql2008 还原数据库解决方案
- Oracle 数据库自动存储管理-安装配置
- Oracle数据库执行脚本常用命令小结
- Oracle 数据库 临时数据的处理方法
- 数据库分页查询语句数据库查询
- 最近比较流行的数据库挂马