Spring學習筆記_2

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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章