Spring学习笔记-第五天:基于注解的AOP开发/JdbcTemplate的概念/Jdbc的开发步骤/Jdbc的常用操作
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Spring学习笔记-第五天:基于注解的AOP开发/JdbcTemplate的概念/Jdbc的开发步骤/Jdbc的常用操作,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4754字,纯文字阅读大概需要7分钟。
内容图文
![Spring学习笔记-第五天:基于注解的AOP开发/JdbcTemplate的概念/Jdbc的开发步骤/Jdbc的常用操作](/upload/InfoBanner/zyjiaocheng/994/3601f7e98f4c41ce9561048c08e6861e.jpg)
基于注解的AOP开发
快速入门
基于注解的aop开发步骤:
- 创建目标接口和目标类
- 创建切面类
- 将目标类和切面类的对象创建对象权交给Spring-用@Component创建
- 在切面类中使用注解配置织入关系
- 在配置文件中开启组件扫描 和AOP的自动代理
- 测试
实现
1、2步将之前的粘贴过去,完成
3. 将目标类和切面类的对象创建对象权交给Spring-用@Component创建
@Component("myAspect")
-
在切面类中使用注解配置织入关系
- 通过@Aspect标注当前MyAspect是一个切面
- 配置织入,通过注解配置,首先@Before,标注当前函数是什么增强,然后括号内标注切点表达式(省略了Value=)。如:
@Before("execution(* com.itheima.anno.*.*(..))")
-
在配置文件中开启组件扫描 和AOP的自动代理
- 配置头文件两个位置,加入context
- 设置组件扫描
<context:component-scan base-package="com.itheima.anno"></context:component-scan> <!--aop自动代理--> <aop:aspectj-autoproxy/>
-
测试
注解配置AOP详解
1.注解通知的类型
通知的配置语法:@通知注解("切点表达式")
- 前置通知 @Before
- 后置通知 @AfterReturning
- 环绕通知 @Around
- 异常抛出通知 @AfterThrowing
- 最终通知 @After
2.切点表达式的抽取
此时也存在通用切点表达式的现象,要进行进一步解耦
同xml配置aop一样,可以进行切点表达式抽取,抽取方式是切面内定义方法,在该方法下使用@Pointcut注解定义切点表达式,然后在增强注解中引用
@Pointcut("execution(* com.itheima.anno.*.*(..))")
public void pointcut(){}
//配置前置增强
@Before("pointcut()")
//第二种抽取方法
@Around("MyAspect.pointcut()")
3.知识要点
- 注解aop开发步骤
- 使用@Aspect标注切面类
- 使用@通知注解标注通知方法和切点表达式
- 在配置文件中配置aop自动代理和扫描
- 通知注解类型
- 前置通知 @Before
- 后置通知 @AfterReturning
- 环绕通知 @Around
- 异常抛出通知 @AfterThrowing
- 最终通知 @After
JdbcTemplate
JdbcTemplate基本使用
JdbcTemplate概述
它是Spring框架中提供的一个对象,是对Jdbc API的简单封装。Spring框架为我们提供了很多的操作模板类。如操作关系型数据的JdbcTemplate和HibernateTemplate,操作nosql数据库用RedisTemplate
操作消息队列的JmsTemplate
JdbcTemplate开发步骤
- 导入spring-jdbc和spring-tx(事务)坐标
- 创建数据库表和实体
- 创建JdbcTemp对象
- 执行数据库操作
-
首先在pom.xml中导入坐标
-
创建数据库表和对应实体,生成get&set
-
创建JdbcTemplate对象
若执行增删改操作,调用update函数,若进行查询操作,调用quary函数
同时也得进行数据库连接- 创建数据源对象
- 设置JdbcTemplat对象e,并设置数据源对象
- 执行操作
ComboPooledDataSource dataSource=new ComboPooledDataSource(); dataSource.setDriverClass("com.mysql.jdbc.Driver"); dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test"); dataSource.setUser("root"); dataSource.setPassword("123"); JdbcTemplate jdbcTemplate = new JdbcTemplate(); //设置数据源对象,知道数据库在哪 jdbcTemplate.setDataSource(dataSource); //执行操作 int row=jdbcTemplate.update("insert into account values (?,?)","Tom","5000"); System.out.println(row);
Spring产生JdbcTemplate对象
我们可以将jdbcTemplate创建权交给Spring,将数据源DataSource的创建权也交给Spring,在Spring容器内部将DataSource注入到JdbcTemplate模板对象中
- 配置数据源对象,注入四个参数
- Spring产生模板对象,注入数据源对象
配置过程:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"/>
<property name="user" value="root"/>
<property name="password" value="123"/>
</bean>
<!-- 配置Jdbc模板对象-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
注入与测试过程:
@Test
//测试Spring产生jdbc模板对象
public void test2() throws Exception{
ApplicationContext app=new ClassPathXmlApplicationContext("applicationContext.xml");
JdbcTemplate jdbcTemplate = app.getBean(JdbcTemplate.class);
int row=jdbcTemplate.update("insert into account values (?,?)","Zhang","1000");
System.out.println(row);
}
这两个过程也可以用注解进行简化
将整个过程进一步抽取
将数据源数据相关配置抽取到properties文件,见之前配置数据源的操作
JdbcTemplate的常用操作
-
修改操作
-
删除操作
-
查询操作
在进行查询时.query有多个函数,此时常用第一个,RowMapper是进行封装的一个接口,用的时候用该接口对应的实现类,完成数据实体的封装 ctrl+alt+B看它的实现
查询多个对象时List<Account> accountList = jdbcTemplate.query("select * from account", new BeanPropertyRowMapper<Account>(Account.class));
此时,.query第二个参数,是该接口的Bean实现,其中<>内选择其实现类,由于内部写了toString方法,所以可以直接打印。
查询单个参数时,选择queryForObject中,有args参数的实现Account account = jdbcTemplate.queryForObject("select * from account where name=?", new BeanPropertyRowMapper<Account>(Account.class), "Zhang");
当对返回属性有要求时,都需要实体属性的行映射
查询一些数据如数目等时,选择 requireType的实现,因为此时不需要映射封装,只要把数据强制转换就行
Long count = jdbcTemplate.queryForObject("select count(*) from account", Long.class); System.out.println(count);
JdbcTemplate知识要点
创建步骤
- 导入spring-jdbc和spring-tx(事务)坐标
- 创建数据库表和实体
- 创建JdbcTemp对象
- 执行数据库操作
内容总结
以上是互联网集市为您收集整理的Spring学习笔记-第五天:基于注解的AOP开发/JdbcTemplate的概念/Jdbc的开发步骤/Jdbc的常用操作全部内容,希望文章能够帮你解决Spring学习笔记-第五天:基于注解的AOP开发/JdbcTemplate的概念/Jdbc的开发步骤/Jdbc的常用操作所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。