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配置实现。

Spring_day03--课程安排_基于aspectj的注解aop_Spring的jdbcTemplate操作的更多相关文章

  1. AOP——基于AspectJ的注解来实现AOP操作

    1.使用注解方式实现AOP操作 第一步:创建对象 <!-- 创建对象 --> <bean id="book" class="com.bjxb.aop.B ...

  2. 基于AspectJ的注解方式进行AOP开发

    -------------------siwuxie095                                     基于 AspectJ 的注解方式进行 AOP 开发         ...

  3. Spring_AOP基于AspectJ的注解开发&JDBC的模板使用&事务管理(学习笔记3)

    一:AOP基于AspectJ的注解开发 1,简单的实例: 1)引入相应的jar包 ​ 2)在配置文件里引入相关约束 <beans xmlns="http://www.springfra ...

  4. day39-Spring 08-Spring的AOP:基于AspectJ的注解

    基于AspectJ的注解的开发要重点掌握. 这些表达式肯定要应用在我们的某些个增强上. 学习AspectJ也是两种形式:一种是XML,一种是注解.AspectJ的增强,就是那些通知的类型.Aspect ...

  5. 十四 Spring的AOP的基于AspectJ的注解开发

    Spring的AOP的基于AspectJ的注解开发 创建项目,引入jar包 编写目标类.切面类 配置目标类.切面类 在注解文件里开启AOP的开发 <?xml version="1.0& ...

  6. Spring的AOP基于AspectJ的注解方式开发2

    参考自黑马培训机构 上一篇博客提到了在配置文件中开启aop的注解开发,以及简单使用了@Before,@Aspect 这是为了告诉spring为前置通知和切面类 接下来介绍aop的注解的通知类型,和切入 ...

  7. Spring的AOP基于AspectJ的注解方式开发1

    参考自黑马培训机构 创建项目,引入jar包 编写目标类,切面类并完成配置 package spring.day2_aop2; /* * 编写目标类 */ public class OrderDao { ...

  8. 基于AspectJ自定义注解

    package com.aspectj.demo.aspect; import java.lang.annotation.ElementType; import java.lang.annotatio ...

  9. Spring的AOP基于AspectJ的注解方式开发3

    上上偏博客介绍了@Aspect,@Before 上篇博客介绍了spring的AOP开发的注解通知类型:@Before,@AfterThrowing,@After,@AfterReturning,@Ar ...

随机推荐

  1. OAuth2.0官方文档中文翻译

    http://page.renren.com/699032478/note/708597990 (一)背景知识 OAuth 2.0很可能是下一代的“用户验证和授权”标准,目前在国内还没有很靠谱的技术资 ...

  2. 微信公众平台消息接口开发-封装weixin.class.php(转)

    一.封装weixin.class.php 由于微信公众平台的通信使用的是特定格式的XML数据,每次接受和回复都要去做一大堆的数据处理. 我们就考虑在这个基础上做一次封装,weixin.class.ph ...

  3. Android屏幕计量单位详解

    1.px (pixels)(像素):是屏幕的物理像素点,与密度相关,密度大了,单位面积上的px会比较多.通常不推荐使用这个. 2.dip或dp(与密度无关的像素):一个基于density的抽象单位,这 ...

  4. HDU 4946 Area of Mushroom 共线凸包

    题意是在二维平面上 给定n个人 每一个人的坐标和移动速度v 若对于某个点,仅仅有 x 能最先到达(即没有人能比x先到这个点或者同一时候到这个点) 则这个点称作被x占有 若有人能占有无穷大的面积 则输出 ...

  5. 在ubuntu下安装free pascal

    1.ubuntu16.04版本已经集成了free pascal最新的3.0版,只需要安装就可以了. sudo apt install fp-compiler 在ubuntu里面,fp-compiler ...

  6. 导出word功能,用html代码在word中插入分页符

    <span lang=EN-US style="font-size:10.5pt;mso-bidi-font-size:12.0pt;font-family:" mce_st ...

  7. CentOS下安装网卡驱动

    前言最近,一台机器从FreeBSD换为CentOS,一路安装顺利.完事之后发现,网卡没有启用,dmesg | grep eth 命令确定网卡没有驱动导致的.于是开始了一路艰辛的安装过程. 安装过程1. ...

  8. [转]Vim插件管理工具Vundle

    原文:http://www.linuxzen.com/vimpei-zhi-xi-lie-cha-jian-guan-li.html 当转载成为一种习惯.. 最近对Vim进行了一番较大的配置变动,所以 ...

  9. UCOS2系统内核讲述(三)_TCB任务控制块

    Ⅰ.写在前面 学习本文之前可以参看我前面的文章: UCOS2_STM32F1移植详细过程(汇总文章) UCOS2系统内核讲述(一)_总体描述 UCOS2系统内核讲述(二)_初始化调用函数 上一篇文章讲 ...

  10. TCP状态图

    TCP建立关闭连接状态图 MSL:Max segment lifetime最大段存活时间. MSL在RFC1122中规定为两分钟,但是各个操作系统的实现不同,在linux上一般配置MSL???? 处于 ...