Spring AOP的应用配置
1、Spring JdbcTemplate
在spring中为了更加方便的操作JDBC-在JDBC的基础之上定义了一个抽象层-此设计的目的是为不同类型的JDBC操作提供模板方法-每个模板方法都能控制整个过程-并允许覆盖过程中的特定任务-通过这种方式-可以尽可能保留灵活性-将数据库存取的工作量讲到最低。
##### 1、配置并测试数据源
pom.xml
``xml
4.0.0 com.oi spring_demo 1.0-SNAPSHOT org.springframework spring-context 5.2.3.RELEASE com.alibaba druid 1.1.21 mysql mysql-connector-java 5.1.47 cglib cglib 3.3.0 org.aspectj aspectjweaver 1.9.5 aopalliance aopalliance 1.0 org.springframework spring-aspects 5.2.3.RELEASE
`
dbconfig.properties
`properties
jdbc.username=root123password=123456url=jdbc:mysql://localhost:3306/demodriverClassName=com.mysql.jdbc.Driver
`
applicationContext.xml
MyTest.java
`java
import com.alibaba.druid.pool.DruidDataSource;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import java.sql.SQLException;public class MyTest { public static void main(String[] args) throws SQLException { ApplicationContext context = new ClassPathXmlApplicationContext("jdbcTemplate.xml"); DruidDataSource dataSource = context.getBean("dataSource", DruidDataSource.class); System.out.println(dataSource); System.out.println(dataSource.getConnection()); }}
`
##### 2、给spring容器添加JdbcTemplate
spring容器提供了一个JdbcTemplate类-用来方便操作数据库。
1、添加pom依赖
pom.xml
`xml
org.springframework spring-orm 5.2.3.RELEASE
`
jdbcTemplate.xml
MyTest.java
`java
import com.alibaba.druid.pool.DruidDataSource;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.jdbc.core.JdbcTemplate;import java.sql.SQLException;public class MyTest { public static void main(String[] args) throws SQLException { ApplicationContext context = new ClassPathXmlApplicationContext("jdbcTemplate.xml"); JdbcTemplate jdbcTemplate = context.getBean("jdbcTemplate", JdbcTemplate.class); System.out.println(jdbcTemplate); }}
`
##### 3、插入数据
MyTest.java
`java
import com.alibaba.druid.pool.DruidDataSource;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.jdbc.core.JdbcTemplate;import java.sql.SQLException;public class MyTest { public static void main(String[] args) throws SQLException { ApplicationContext context = new ClassPathXmlApplicationContext("jdbcTemplate.xml"); JdbcTemplate jdbcTemplate = context.getBean("jdbcTemplate", JdbcTemplate.class); String sql = "insert into emp(empno,ename) values(?,?)"; int result = jdbcTemplate.update(sql, 1111, "zhangsan"); System.out.println(result); }}
`
##### 4、批量插入数据
MyTest.java
`java
import com.alibaba.druid.pool.DruidDataSource;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.jdbc.core.JdbcTemplate;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;public class MyTest { public static void main(String[] args) throws SQLException { ApplicationContext context = new ClassPathXmlApplicationContext("jdbcTemplate.xml"); JdbcTemplate jdbcTemplate = context.getBean("jdbcTemplate", JdbcTemplate.class); String sql = "insert into emp(empno,ename) values(?,?)"; List list = new ArrayList(); list.add(new Object[]{1,"zhangsan1"}); list.add(new Object[]{2,"zhangsan2"}); list.add(new Object[]{3,"zhangsan3"}); int[] result = jdbcTemplate.batchUpdate(sql, list); for (int i : result) { System.out.println(i); } }}
`
##### 5、查询某个值-并以对象的方式返回
MyTest.java
`java
import com.oi.bean.Emp;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.jdbc.core.BeanPropertyRowMapper;import org.springframework.jdbc.core.JdbcTemplate;import java.sql.SQLException;public class MyTest { public static void main(String[] args) throws SQLExc