实际的开发过程中都是基于dao的 创建持久层dao 定义三个方法 持久层实现类 创建dao的实现类. 添加未实现的方法 通过spring注入 jdbcTemplate.所以这里生成一个jdbcTemplate的set方法 根据id查询的方法 用一个List<account>去接收 根据name去查询 更新的方法 配置bean.xml 配置持久层.里面要注入jdbcTemplate 复制一个创建测试类 表明写错了.更正 再次执行,正常获取到数据 更新操作 更新后的结果…
复制三个出来.分别叫做 OrderDaoImpl.ProductDaoImpl.UserDaoImpl 复制这三个出来就是为了解决重复性代码的问题. 每个dao中都有这段代码.这些都是重复性的代码.在我们的实际开发过程中,是可以避免的 延时完 就删掉其他几个实现类.还是保留AccountDaoImpl 复制一个出来,改名叫做2 抽取dao中的重复代码 把公共的代码抽取出来 删除后这里面的就都报错了 还需要提供get方法 然后就可以对dao中的jdbcTemplate进行替换了.使用父类的getJ…
resources下新建File文件 bean.xml 配置jdbcTemplate 注入DataSource 新建测试方法 复制demo1改个名字叫做demo2 编写Insert的方法…
先看这张图 1.spring中的JdbcTemplate     JdbcTemplate的作用:         它就是用于和数据库交互的,实现对表的CRUD操作     如何创建该对象:     对象中的常用方法: 新建项目 引入四个包的坐标 用这个之前准备好的数据库表 创建实体类 三个属性,生成get和set方法和toString方法 JDBCTemplate基本用法 创建测试类 报错.没设置数据源 准备数据源,这里用Spring的内置数据源.DriverManagerDataSource…
复制demo起名3 保存 update delete selct 有这么多的重载方法 如何去定位 可变参数是JDK1.5版本之后才有的东西 RowMapper 实现RowMapper这个接口.然后实现里面的方法 查询的第二个参数就是我们刚才创建的类AccountRowMapper 用List<Account>去接收 DBUtils里面的QueryRunenr也有query方法里面的参数如下 从封装的角度来说.第二个参数 AccountRowMapper和 ResultSetHandler作用是…
package com.swift; public class Phone { private String pinpai; private int dianliang; public String getPinpai() { return pinpai; } public void setPinpai(String pinpai) { this.pinpai = pinpai; } public int getDianliang() { return dianliang; } public v…
需要配置文件解析器这个对象 id配置时候必须叫做mutipartResolver 最终…
请求地址都一样,根据不同的请求方式,最终让不同的方法去执行.这就是restfull的风格 如果有两个查询都是get的.那么当前访问 满足条件的就是两个. 用一个占位符 {id} 演示PathVariable 传入id…
转账回滚这里把异常打印出来.AccountServiceTest.java 把数据库的金额现在都改成1000块 运行测试方法 这里已经报错了. 刷新数据库内的数据.这样我们事物就控制成功了. 事物控制由于持久层回到了业务层.通过添加事物,转账可以正常的执行了. 配置变的非常的麻烦 复制一份AccountServiceImpl的代码改名叫做AccountServiceImpl_OLD 修改原来的代码AccountServiceImpl 两个类做对比.左边的类更加清晰,更加简洁.但是以我们目前的情况…