Spring_day03

上节内容回顾

今天内容介绍

基于aspectj的注解aop

Spring的jdbcTemplate操作

增加

修改

删除

查询

Spring配置c3p0连接池和dao使用jdbcTemplate

Spring的事务管理

事务概念

Spring事务管理api

搭建转账环境

声明式事务管理(xml配置)

声明式事务管理(注解)

Spring_day03

上节内容回顾

1 注解ioc操作

(1)使用注解创建对象

- 四个注解

(2)使用注解注入属性

- 两个注解

2 aop

(1)aop原理

(2)aop术语

- 切入点

- 增强

- 切面

3 spring的aop操作

(1)基于aspectj的xml方式

今天内容介绍

1 基于aspectj的注解aop操作(会用)

2 spring的jdbcTemplate操作

(1)实现crud操作

- 增加、修改、删除,调用模板update方法

- 查询某个值时候,调用queryForObject方法

--- 自己写实现类封装数据

- 查询对象,调用queryForObject方法

- 查询list集合,调用query方法

3 spring配置连接池

(1)配置c3p0连接池

(2)dao注入jdbcTemplate操作

4 spring事务管理

(1)事务概念

(2)spring进行事务管理api

- spring针对不同的dao层框架提供不同的实现类

(3)spring进行事务配置(声明式)

- 基于xml配置文件

- 基于注解方式

基于aspectj的注解aop

1 使用注解方式实现aop操作

导包,引入约束

两个类Book和MyBook,增强Book类中的add()方法

第一步 创建对象

第二步 在spring核心配置文件中,开启aop操作

第三步 在增强类上面使用注解完成aop操作

控制台:

before...........

add...........

Spring的jdbcTemplate操作

1 spring框架一站式框架

(1)针对javaee三层,每一层都有解决技术

(2)在dao层,使用 jdbcTemplate

2 spring对不同的持久化层技术都进行封装

(1)jdbcTemplate对jdbc进行封装

3 jdbcTemplate使用和dbutils使用很相似,都对数据库进行crud操作

增加

1 导入jdbcTemplate使用的jar包

2 创建对象,设置数据库信息

3 创建jdbcTemplate对象,设置数据源

4 调用jdbcTemplate对象里面的方法实现操作

先创建spring_day03数据库,再创建表user,包含username和password两个字段

运行add()方法成功在表中插入了数据

修改

删除

查询

1 使用jdbcTemplate实现查询操作

2 查询具体实现

第一个 查询返回某一个值

(1)第一个参数是sql语句

(2)第二个参数 返回类型的class

Jdbc实现

//2 jdbc实现代码
@Test
public void testJDBC() {
Connection conn = null;
PreparedStatement psmt = null;
ResultSet rs = null;
//加载驱动
try{
Class.forName("com.mysql.jdbc.Driver");
//创建连接
conn = DriverManager.getConnection("jdbc:mysql:///spring0702","root","root");
//编写sql语句
String sql = "select * from user where username=?";
//预编译sql
psmt = conn.prepareStatement(sql);
//设置属性值
psmt.setString(1, "jack");
//执行sql语句
rs = psmt.executeQuery();
//遍历结果集
while(rs.next()) {
//得到返回结果集
String username = rs.getString("username");
String password = rs.getString("password");
//放到user对象里面
User user = new User();
user.setUsername(username);
user.setPassword(password);
System.out.println(user);
}
}catch (Exception e) {
e.printStackTrace();
}finally {
try {
rs.close();
psmt.close();
conn.close();
}catch (SQLException e) {
e.printStackTrace();
}
}

第二个 查询返回对象

第一个参数是sql语句

第二个参数是 RowMapper,是接口,类似于dbutils里面接口

第三个参数是 可变参数

第三个 查询返回list集合

(1) sql语句

(2) RowMapper接口,自己写类实现数据封装

(3) 可变参数

以上写的代码都是在单元测试中的写到的,真正开发中jdbc模板要`用到dao层,dao里边要用到dao模板,spring中有个ioc,ioc就是把对象创建交给spring容器管理,在dao里边可以写这个设置数据库信息的代码,但不建议这么写,把这些过程交给spring配置实现。

最新文章

  1. 解决IE6/IE7/IE8不支持before,after问题
  2. sql查询一个班级中总共有多少人以及男女分别多少人
  3. STL_iterator迭代器(2)——几种迭代器对象的用法
  4. Linux vps无法发送邮件
  5. CMake 条件判断
  6. Nginx CONTENT阶段 concat模块
  7. splash介绍及安装_mac
  8. MySQL联合索引VS单列索引
  9. ML 激励函数 Activation Function (整理)
  10. [Algorithm] Good Fibonacci
  11. IIS 反向代理设置
  12. SAPCertifiedTechnologyAssociate-SystemAdministration(SAPHANAasaDatabase)
  13. 有用的JS函数
  14. dubbo异步调用三种方式
  15. VMware下拷过来的Linux系统ifconfig下没有网络问题
  16. ue-edit设置显示函数列表
  17. jmap, jhat命令
  18. pthread条件变量
  19. CentOS7使用mount命令来挂载CDROM
  20. charAt 写一个反序函数

热门文章

  1. 让 sphinx 支持中文、日文和韩文
  2. Google发展史 Google十三年
  3. 深入理解Android的密度独立性
  4. 使用vs调试.net源代码
  5. SQLServer 2008中SQL增强之三 Merge(在一条语句中使用
  6. python __path__ 变量
  7. Codeforces Round #256 (Div. 2) C. Painting Fence (搜索 or DP)
  8. php图片采集后按原路径保存图片
  9. jquery获取元素索引值index()
  10. SQL命令查看Mysql数据库大小