Java_EE企业级开发学习笔记——spring学习笔记第四章
记录笔记。
spring的jdbc模块负责数据库数据资源管理和错误处理。
一.Spring JdbcTemplate的解析
spring框架提供了JdbcTemplate类,该类是核心类。

JdbcTemplate的直接父类是JdbcAccessor,该类为子类提供了一些访问数据库时使用的公共属性,比如DataSource和SQLExceptionTranslator。

而JdbcOperations则定义了操作。
二.Spring JDBC的配置
主要由四个包组成。


如果想要使用JDBC,必须在xml文件里面进行配置,注意观察。
配置数据源(连接数据库),配置JDBC模板,配置注入类。
示例配置文件(依据自己的情况修改数据库信息,MySQL的默认端口是3036)

三.Spring JdbcTemplate的常用方法
execute()
execute()能够完成执行SQL语句的功能,示例是创建。
选择数据库,配置xml文件,测试类(启动类)加入execute语句(还是spring要使用的三部曲,只有获得实例才可以调用主动类的方法,这里的主动类是JDBC模板提供的)


(这里除了spring的基础包之外还需要加入的包是:mysql-connector , spring-jdbc,spring-tx。

启动类。


(项目执行我记得没有错误)

可以去test->java里面新建一个java文件当作测试类,测试类如下,注解如果报错那么就alt+Enter快速加载

update()
update()方法有四种,根据参数不同各自分类。

这里也是一样的,主要类(JDBC,自定义类),xml配置,启动类配置。
我们上一条是Create指令,直接输入语句就可以了。而下面的示例,我们选择了Insert INTO语句,除了语句,我们还需要数据,所以我们需要一堆数值,使用类封装,也就是说我们需要一个Account类,所以主要类又加入了Account类。
主要类:


(示例需要返回受到影响的行数,也就是说在update方法的类中,我们需要获得Account的实例的数据,所以我们需要加入getter和setter方法,可以的话连toString也可以加进去,使用Alt+insert快捷键选择,这里省略掉了这些方法。)
创建接口。(update方法是修改,增删改查,还需要一个操作主要类)
操作主要类。


注意看这几个方法是怎么实现的。
public class AccountDaoImpl implements AccountDao{ //需要使用update方法,所以还是要声明JdbcTemplate,启动类的不用,因为启动类直接获得了JdbcTemplate的Bean实例了。 private JdbcTemplate jdbcTemplate; public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } //添加账户 public int addAccount(Account account){ //定义sql String sql = "insert into account(username , balance) value(?,?)"; //定义数组来存储sql语句中的参数 Object[] obj = new Object[]{ account.getUsername(), account.getBalance() }; //执行添加操作,返回的是受SQL语句影响的记录条数 int num = this.jdbcTemplate.update(sql , obj); return num; } //更新账户 public int updateAccount(Account account){ //定义SQL String sql = "update account set username = ?,balance = ? where id = ?"; //定义数组来存储SQL语句中的参数 Object[] params = new Object[]{ account.getUsername(), account.getBalance(), account.getId() }; //执行更新操作 int num = this.jdbcTemplate.update(sql,params); return num; } //删除账户 public int deleteAccount(int id){ //定义SQL String sql = "delete from account where id = ?"; int num = this.jdbcTemplate.update(sql,id); return num; }
配置xml的主要类相关Bean。
(注意虽然Account类在我的理解中是主要类,但是Account可以不用在测试类用Bean,就普通地弄,我们使用Bean只是为了使用对应类的方法而已,set,get方法什么的可以不放在Bean里面)

在测试类中三部曲。

剩余方法的实现是类似。
query()


示例如下:



主要类。

注意方法实现。


测试类:



浙公网安备 33010602011771号