Spring分层小案例(使用xml配置)

dao接口

package xinfei.code.dao;

public interface UserDao {
	/**
	 * 定义一个保存方法
	 */
	public void save();
}
dao实现

package xinfei.code.dao.impl;

import xinfei.code.dao.UserDao;

public class UserDaoImpl implements UserDao{

	@Override
	public void save() {
		System.out.println("我保存了啊....");
	}
}
service接口

package xinfei.code.service;

public interface UserService {
	/**
	 * 定义一个保存方法
	 */
	public void save();
}
service实现

package xinfei.code.service.impl;

import xinfei.code.dao.UserDao;
import xinfei.code.service.UserService;

public class UserServiceImpl implements UserService{

	private UserDao userDao;
	
	public void setUserdao(UserDao userDao) {
		this.userDao = userDao;
	}
	@Override
	public void save() {
		System.out.println("开始调用到dao了...");
		userDao.save();		
	}
}
applicationContext.xml配置文件

<?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"
    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">
	
	<!-- 加载src下的properties配置文件 -->
	<context:property-placeholder location="classpath:jdbc.properties"/>
	<!-- c3p0 -->
	<bean id="c3p0" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="driverClass" value="${jdbc.driver}"></property>
		<property name="jdbcUrl" value="${jdbc.url}"></property>
		<property name="user" value="${jdbc.username}"></property>
		<property name="password" value="${jdbc.password}"></property>
	</bean>
</beans>
jdbc.properties文件

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/hibernate
jdbc.username=root
jdbc.password=root
测试类

package xinfei.code.test;

import java.beans.PropertyVetoException;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSource;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.mchange.v2.c3p0.ComboPooledDataSource;

import xinfei.code.dao.UserDao;
import xinfei.code.service.UserService;

public class TestDemo01 {
	
	/**
	 * 自己new对象
	 * @throws Exception
	 */
	@Test
	public void test_01() throws Exception{
		//创建连接池对象
		ComboPooledDataSource dataSource = new ComboPooledDataSource();
		//设置参数 注册驱动 
		dataSource.setDriverClass("com.mysql.jdbc.Driver");
		//设置参数 数据库连接地址
		dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/hibernate");
		//设置参数 设置用户名 密码
		dataSource.setUser("root");
		dataSource.setPassword("root");
		//获取链接对象
		Connection connection = dataSource.getConnection();
		System.out.println(connection);
	}
	/*
	 * 加载配置文件
	 */
	@Test
	public void test_02() throws Exception, IOException{
		//加载jdbc.properties配置文件获取相应的值
		Properties properties = new Properties();
		properties.load(new FileInputStream("src/jdbc.properties"));
		String driver = properties.getProperty("jdbc.driver");
		String url = properties.getProperty("jdbc.url");
		String username = properties.getProperty("jdbc.username");
		String password = properties.getProperty("jdbc.password");
		//创建连接池对象
		ComboPooledDataSource ds = new ComboPooledDataSource();
		ds.setDriverClass(driver);
		ds.setJdbcUrl(url);
		ds.setUser(username);
		ds.setPassword(password);
		Connection connection = ds.getConnection();
		System.out.println(connection);
	}
	
	@Test
	public void test_03() throws Exception{
		ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
		DataSource ds = (DataSource)context.getBean("c3p0");
		Connection connection = ds.getConnection();
		System.out.println(connection);
		connection.close();
	}
	
	@Test
	public void test_04() throws Exception{
		Properties properties = new Properties();
		properties.load(new FileInputStream("src/jdbc.properties"));
		String driver = properties.getProperty("jdbc.driver");
		String url = properties.getProperty("jdbc.url");
		String username = properties.getProperty("jdbc.username");
		String password = properties.getProperty("jdbc.password");
		
		BasicDataSource bs = new BasicDataSource();
		bs.setDriverClassName(driver);
		bs.setUrl(url);
		bs.setPassword(password);
		bs.setUsername(username);
		Connection connection = bs.getConnection();
		System.out.println(connection);
	}
	
	@Test
	public void test_05(){
		ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
		UserService service = (UserService)context.getBean("userService");
		service.save();
	}
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值