首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring学习笔记_2

Spring学习笔记_2

作者头像
曼路
发布2018-10-18 15:24:01
2500
发布2018-10-18 15:24:01
举报
文章被收录于专栏:浪淘沙浪淘沙

1.基于aspectj的注解aop操作(会用) 1.1创建对象

<bean id= "user" class="com.edu.nuc.bean.User"></bean>
		<bean id= "myUser" class="com.edu.nuc.bean.MyUser"></bean>

1.2在配置文件中打开AOP代理操作

<aop:aspectj-autoproxy></aop:aspectj-autoproxy>

1.3在增强类中使用注解@Aspect

@Aspect
		public class MyUser {

1.4在增强方法上配置不同类型通知

@Before("execution(* com.edu.nuc.bean.User.test1(..))")   //value值给那个类的哪个方法起作用
		public void before() {
			System.out.println("我是第一个");
		}
//环绕增强
		@Around("execution(* com.edu.nuc.bean.User.test_2(..))")
		public  void around(ProceedingJoinPoint p) throws Throwable {
			System.out.println("杀人了,有刺客");
			p.proceed();
			System.out.println("抓住他,就是那个长的很帅的");
		}

2.Spring的jdbcTemplate 2.1 介绍: jdbcTemplate就是Spring对jdbc的封装的模板。用于操作数据库。 2.2 新添的jar包 spring-jdbc-4.2.4.RELEASE.jar spring-tx-4.2.4.RELEASE.jar mysql-connector-java-5.1.7-bin.jar 2.3 操作步骤: (1)new DriverManagerDataSource() (2)new jdbcTemplate() (3)jdbcTemplate.update(); 2.4 初级版本:

@Test
		public void TestAdd() {
			DriverManagerDataSource dataSource = new DriverManagerDataSource();
			dataSource.setDriverClassName("com.mysql.jdbc.Driver");
			dataSource.setUrl("jdbc:mysql://localhost:3306/mybatis");
			dataSource.setUsername("root");
			dataSource.setPassword("123456");
			//创建JdbcTemplate对象,传递数据库信息。
			JdbcTemplate template = new JdbcTemplate(dataSource);
			//String sql = "insert into t_user values(null,'李星星','123')";  //增加
			//String sql = "update t_user set password = '123456' where id =1";		//更新
			String sql = "delete from t_user where id = 2";  //删除
			int i = template.update(sql);
			if(i>0)
				System.out.println("成功!!!");
		}
		
		
		查找:
			/**
			*查找的时候必须创建这个类,将结果封装给bean
			*/
			class MyRowMapper implements RowMapper<User>{


				@Override
				public User mapRow(ResultSet res, int arg1) throws SQLException {
					int id = res.getInt("id");
					String username = res.getString("username");
					String password = res.getString("password");
					User user = new User(id,username,password);
					return user;
					
					
				}
				
			}
			
			@Test
			public void testQuery() {
				 DriverManagerDataSource source = new DriverManagerDataSource();
				 source.setDriverClassName("com.mysql.jdbc.Driver");
				 source.setUrl("jdbc:mysql://localhost:3306/mybatis");
				 source.setUsername("root");
				 source.setPassword("123456");
				 
				 JdbcTemplate template = new JdbcTemplate(source);
				 String sql = "select * from t_user";
				 List<User> i  = template.query(sql, new MyRowMapper());
				 System.out.println(i);
				 
				 
			}

2.5 高级版本:

@Test
		public void TestDemo() {
			ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
			JdbcTemplate template = context.getBean("jdbcTemplate",JdbcTemplate.class);
			String sql = "insert into t_user values(null,'李星星','123')";  //增加
			int i = template.update(sql);
			if(i>0)
				System.out.println("成功!!!");
		}
		
		bean.xml:
			<!-- 内置连接池 -->
			<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
				<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
				<property name="url" value="jdbc:mysql://localhost:3306/mybatis"></property>
				<property name="username" value="root"></property>
				<property name="password" value="123456"></property>
				
			</bean>
			
			<bean id = "jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
				<property name="dataSource" ref="dataSource"></property>
			</bean>

2.6 c3p0版本: db.properties:

jdbc.driverClass=com.mysql.jdbc.Driver
			jdbc.url=jdbc:mysql:///mybatis
			jdbc.user=root
			jdbc.password=123456

bean.xml:

<!-- c3p0连接池 -->
			<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
				<property name="driverClass" value="${jdbc.driverClass}"></property>
				<property name="jdbcUrl" value="${jdbc.url}"></property>
				<property name="user" value="${jdbc.user}"></property>
				<property name="password" value="${jdbc.password}"></property>
				
			</bean>
			
			<bean id = "jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
				<property name="dataSource" ref="dataSource"></property>
			</bean>
			
			<!-- 引入外部文件的第一种方式 引入db.properties-->
			<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
				<property name="location" value="classpath:db.properties"></property>
			</bean>
			
			<!-- 引入外部文件的第二种方式 -->
			<!-- <context:property-placeholder location="db.properties"/> -->

3.dao使用jdbcTemplate 3.1思路: 创建一个User类,有属性和get、set方法。一个Dao类,用来与数据库直接交互,创建一个jdbcTemplate类型属性。一个service,用于操作Dao类对象,创建一个Dao类型的属性。Test类,用来创建service对象,进行操作。 还有bean.xml 3.2 User.java 省略。。 3.3Dao.java

public class Dao {
			private JdbcTemplate jdbcTemplate;
			public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
				this.jdbcTemplate = jdbcTemplate;
			}
			//往数据库插入数据
			public int insert() {
				String sql = "insert into t_user values(null,?,123)";
				int i = jdbcTemplate.update(sql,"田馥甄");
				return i;
				
			}
		}

3.4 Service.java

public class Service {
			private Dao dao;


			public Dao getDao() {
				return dao;
			}
			public void setDao(Dao dao) {
				this.dao = dao;
			}
			
			public int insert() {
				int i = dao.insert();
				return i;
			}
		}

3.5TestDemo.java @Test

public void TestInsert() {
			
			ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
			Service service = context.getBean("service",Service.class);
			int i = service.insert();
			if(i>0)
				System.out.println("成功!!!");
		}

3.6 bean.xml(src下)

<?xml version="1.0" encoding="UTF-8"?>
		<!--约束-->
		<beans xmlns="http://www.springframework.org/schema/beans"
			xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
			xmlns:context="http://www.springframework.org/schema/context"
			xmlns:aop="http://www.springframework.org/schema/aop"
			xmlns:tx="http://www.springframework.org/schema/tx"
			xsi:schemaLocation="http://www.springframework.org/schema/beans 
			http://www.springframework.org/schema/beans/spring-beans.xsd
			http://www.springframework.org/schema/context
			http://www.springframework.org/schema/context/spring-context.xsd
			http://www.springframework.org/schema/aop
			http://www.springframework.org/schema/aop/spring-aop.xsd
			http://www.springframework.org/schema/tx
			http://www.springframework.org/schema/tx/spring-tx.xsd">
			
			<!--user类-->
			<bean id= "user" class="com.edu.nuc.bean.User"></bean>
			<!--dao类型-->
			<bean id = "dao" class="com.edu.nuc.dao.Dao">
				<property name="jdbcTemplate" ref="jdbcTemplate"></property>
			</bean>
			<!--servise对象-->
			<bean id = "service" class="com.edu.nuc.service.Service">
				<property name="dao" ref="dao"></property>
			</bean>
			<!-- 引入外部文件的第一种方式 -->
			<!-- <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
				<property name="location" value="classpath:db.properties"></property>
			</bean> -->
			
			<!-- 引入外部文件的第二种方式 -->
			 <context:property-placeholder location="db.properties"/> 
			
			<!-- c3p0连接池 -->
			<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
				<property name="driverClass" value="${jdbc.driverClass}"></property>
				<property name="jdbcUrl" value="${jdbc.url}"></property>
				<property name="user" value="${jdbc.user}"></property>
				<property name="password" value="${jdbc.password}"></property>
				
			</bean>
			<!--jdbcTemplate 对象-->
			<bean id = "jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
				<property name="dataSource" ref="dataSource"></property>
			</bean>
			
			<!--开启AOP-->
			<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
		</beans>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年07月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档