Spring中jdbcTemplate和RowMapper的用法
- 格式:docx
- 大小:18.05 KB
- 文档页数:4
Spring中jdbcTemplate的用法实例(一)
博客分类:
spring
一、首先配置JdbcTemplate;
要使用Jdbctemplate 对象来完成jdbc 操作。
通常情况下,有三种种方式得到JdbcTemplate 对象。
第一种方式:我们可以在自己定义的DAO 实现类中注入一个DataSource 引用来完成JdbcTemplate 的实例化。
也就是它是从外部“注入” DataSource 到DAO 中,然后自己实例化JdbcTemplate,然后将DataSource 设置到JdbcTemplate 对象中。
第二种方式:在 Spring 的 IoC 容器中配置一个 JdbcTemplate 的 bean,将DataSource 注入进来,然后再把JdbcTemplate 注入到自定义DAO 中。
第三种方式: Spring 提供了类,这个类中定义了 JdbcTemplate 属性,也定义了DataSource 属性,当设置DataSource 属性的时候,会创建jdbcTemplate 的实例,所以我们自己编写的DAO 只需要继承JdbcDaoSupport 类,然后注入DataSource 即可。
提倡采用第三种方法。
虽然下面的用法中采用了前两种方法
配置方法有3种:
1、
Java代码
1.public class UserServiceImpl implements UserService {
2.~
3.
4.private JdbcTemplate jdbcTemplate;
5.
6.public JdbcTemplate getJdbcTemplate() {
7.return jdbcTemplate;
8.}
9.
1.pdate(sql);
2.}
1.etUsername());
2.(2, ((User)(i)).getPassword
());
3.*
4.(3, ((User)(i)).getId
());
5.}
6.
7.@Override
8.public int getBatchSize() {
9.return();
10.}
11.}
12.);
13.
14.return updateCounts;
15./
16.}
17.
我们在数据库查询中,如果返回的类型是用户自定义的类型(其实我们在数据库查询中大部分返回的都是自定义的类)则需要包装,如果是Java自定义的类型,如:String则不需要.
如果sping与hibernate 相结合了,基本上是用不到,大多数都是在spring单独使用时用到.
可以通过建立内部类实现RowMapper接口,RowMapper中有一个mapRow方法,所以实现RowMapper接口一定要实现mapRow方法,而对自定义类的包装就在mapRow方法中实现.
这里只是一个简单的例子:
public class TestDao { private JdbcTemplate jt; public void
setJt(JdbcTemplate jt) { = jt; } public List<TNpc>
getAll(){ String sql = "select * from t_npc"; //使用 List list = (sql, new NpcRowMapper()); return list; } /** * 定义内部类实现RowMapper接口 */ public class NpcRowMapper implements
RowMapper{ //实现mapRow方法 public Object mapRow(ResultSet rs, int num) throws SQLException { //对类进行封装 TNpc npc = new TNpc(); ("id")); ("name")); return
npc; } } }
try
{
("true");
}
catch
{
("false");
}
finally
{
("finally");
}
try
{
//执行的代码,其中可能有异常。
一旦发现异常,则立即跳到catch执行。
否则不会执行catch里面的内容
}
catch
{
//除非try里面执行代码发生了异常,否则这里的代码不会执行
}
finally
{
//不管什么情况都会执行,包括try catch 里面用了return ,可以理解为只要执行了try或者catch,就一定会执行 finally
}。