数据库连接-使用属性文件做数据库的连接

在生产 过程 中,为了让部署 后的程序 有更方便 的移植 性,可以 使用 属性 文件 来做连接 配置sqlserverDriver=com.microsoft.sqlserver.jdbc.SQLServerDriver

步骤:

1、在项目的src目录下添加属性文件:db.properties

2、打开文件,将其内容改写为:

sqlserverDriver=com.microsoft.sqlserver.jdbc.SQLServerDriver
sqlserverUrl==jdbc:sqlserver://localhost:1433;DatabaseName=bookdb
sqlserverUser=sa
sqlserverPassword=123456
mysqlDriver=com.mysql.jdbc.Driver
mysqlUrl=jdbc:mysql://localhost:3306/bookdb
mysqlUser=root
mysqlPassword=123456

保存。

注:属性 文件 以“键=值”这种方式 来定义 ,键在定义 时,名字 可以 随意 起,值 要写对,对比 一下,就会发现 ,这和以前 的直接 将连接 信息 写到类中 是一样的。

3,、添加读写属性文件的单例文件(单例简单的说就是 一个类中只有自己的实例,且是私有的,不可被访问的)

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class Env extends Properties {

	private static final long serialVersionUID = 1L;

	private static Env instance=null;
	
	public static Env getInstance(){
		if(instance!=null) return instance;
		else{
			makeInstance();
			return instance;
		}
	}
	/**
	 * 生成同步实例的方法
	 * synchronized 关键字保证这个实例是同步的,是加锁的
	 */
	private static synchronized void makeInstance(){
		if(instance==null)
			instance=new Env();
	}
	/**
	 * 构造私有的构造方法
	 */
	private Env(){
		//从文件中得到/db.properties属性文件的输出流  
		// “/” 指代此文件的上层目录,即class目录
		InputStream is=getClass().getResourceAsStream("/db.properties");
		try {
			load(is);//读取文件
			is.close();//关闭程序输入流
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
} 

4、书写连接数据库的基类

/**
 * 数据库连接类
 * 
 * @author 尹晴霞
 * 
 */
public class ConnectionProperties {
	/**
	 * MYSQL的连接变量
	 */
	private static final String CLS = Env.getInstance().getProperty("mysqlDriver");
	private static final String URL = Env.getInstance().getProperty("mysqlUrl");
	private static final String USER = Env.getInstance().getProperty("mysqlUser");
	private static final String PWD = Env.getInstance().getProperty("mysqlPassword");
	/**
	 * SQLSERVER 的连接变量
	 */
	//同上,只是将key值变了而已

	public static Connection conn = null;
	public static Statement stmt = null;
	public static PreparedStatement pStmt = null;
	public static ResultSet rs = null;

	/**
	 * 取得连接的方法
	 */
	public static void getConnection() {
		try {
			Class.forName(CLS);
			conn = DriverManager.getConnection(URL, USER, PWD);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 关闭所有的数据库操作对象
	 */
	public static void closeAll() {
		try {
			if (rs != null) {
				rs.close();
				rs = null;
			}
			if (stmt != null) {
				stmt.close();
				stmt = null;
			}
			if (pStmt != null) {
				pStmt.close();
				pStmt = null;
			}
			if (conn != null) {
				conn.close();
				conn = null;
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

5、属性文件的好处

属性 文件 的好处 是,当程序 已经 编写 完成 ,并且 已经 部署 后,这时 已经 没有 了源程序 (大家 可以 去查看 tomcat安装 目录 /webapps/books项目 ,看看还没有 java文件 ),如果 数据 库的配置 信息 发生 了变动 ,此时 可以 直接 修改 属 性文件 ,修改 完成 后,重新 启动 服务 器,即可以 直接 使用 ,而对应 将连接 写到 程序 中的方式 ,在程序 编译 完成 后,就没有 办法 修改 了,因此 属性 文件 的移植 性要好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值