重点在于spring配合c3p0连接数据库和jdbcTemplate的一系列操作。

jdbcTemplate是为了使jdbc更加利于使用,spring在jdbc api上定义的抽象层,以此建立一个jdbc存取框架。

作为spring jdbc的核心,jdbc模板的设计目的是为不同类型的jdbc提供末班方法,每个模板方法都能控制整个过程,并允许覆盖过程中的特定任务。

通过这种方式,可以在尽可能保留灵活性的情况下,将数据库存取的工作量降到最低。

一、获取数据库连接

(1)导入jar包,add to build path

1

(2)创建数据库配置文件db.properties

(3)创建spring配置文件

(4)创建Junit类,测试能否获得数据库连接

此过程中可能需要导入junit的依赖包,导入eclipse默认的就可以了,或者去下载最新的junit包用来导入。

运行结果:

成功获取数据库连接。

二、配置spring的JdbcTemplate

更新appilcationcontext.xml:

三、具体操作

(1)更新

输出结果为success,数据库update成功。既然修改是可以的,那么添加和删除也是可以的。

(2)添加

我运行的时候失败了,因为这个user表里很多字段都是必填的…如果必填的没有数值就会导致插入失败…

(3)删除

成功删除了。可以发现jdbcTempale比原生的jdbc用法要简单。

(4)尝试进行一个批处理

为了简单起见我新建了一个表miss。

执行成功,成功插入。

(5)查询我感觉是最困难的

结果为:

成功用三种形式进行输出了,类的形式,map的形式,list里装载了map的形式。

需要调用:queryForObject(String sql, RowMapper<miss> rowMapper, Object… args)

  1. 其中的RowMapper指定如何去映射结果集的行,常用的实现类为BeanPropertyRowMapper。
  2. sql是sql语句。
  3. args为占位符的参数值。
  4. 注意:jdbcTemplate不支持级联属性,因为jdbcTemplate说到底只是一个拓展jdbc的小工具,并不是orm框架。

四、多练习几种方法

(1)返回查询list

输出结果:

(2)获取单个列的值,或者做统计查询

统计id数量:queryForObject(String sql, Class<Integer> requiredType)

查询单值:queryForObject(String sql, Object[] args, Class<String> requiredType)

注意只能是单值,要查多个值的话只能转成list,map,javabean

五、在真正的spring项目中怎么完成查询?

真正的项目中我们会写一个DAO方法,来专门处理数据库操作的方法。

大概是这个样子的:

如果不用@AutoWired自动装配,就要在xml配置文件中将missdao加入到ioc容器中并且给jdbcTemplate赋值。

如果不用xml方法而是使用注解的方法把missdao加入到ioc容器中,就要这样写:

因为在xml文件中配置了bean,不用写get方法了,但是要记得加上注解。

加上自动扫描类的设置。

运行结果:

成功输出了miss的bean。

六、总结

因为并不是很好的orm框架,所以会读会用就行了。记录一下。

发表评论

电子邮件地址不会被公开。 必填项已用*标注