首页>代码>java连接三种数据库mysql,sqlserver,oracle的代码>/connection_mysql_sqlserver_oracle/src/com/mysql/jdbc/Connection_Mysql.java
package com.mysql.jdbc;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSourceFactory;

public class Connection_Mysql {
	private static DataSource ds;
	private static ThreadLocal<Connection> tl = new ThreadLocal<Connection>();
	private static Properties props = new Properties();
	//加载类时,实行静态代码块
	static {
		try {
			InputStream in = Connection_Mysql.class.getClassLoader().getResourceAsStream
					("com/mysql/jdbc/db_MySql.properties");
			props.load(in);
			//通过配置文件创建连接池
			ds = BasicDataSourceFactory.createDataSource(props);
		} catch(Exception e) {
			e.printStackTrace();
			System.out.println("加载配置文件失败");
		}
	}
	
	public static Connection getConnection() throws SQLException {
		Connection conn = tl.get();
		if(conn == null) {
			conn = ds.getConnection();
			tl.set(conn);
		}	
		return conn;
	}
	
	public static String getObject(String key) {
		return props.getProperty(key);
	}
	public static void close() throws SQLException {
		Connection conn = tl.get();
		tl.set(null);
		if(conn != null && !conn.isClosed()) {
			conn.close();
		}
	}
	
	public static void main(String[] args) throws SQLException {
		Connection conn = getConnection();
		String sql = "select * from test";
		PreparedStatement ps = conn.prepareStatement(sql);
		ResultSet rs = ps.executeQuery();
		while(rs.next()) {
			System.out.println(rs.getString("name") +"\t"+ rs.getInt("id"));
		}
	}
}
最近下载更多
雷迪斯俺的乡亲们  LV11 3月23日
安东尼online  LV11 3月8日
xianyu091012  LV2 2023年7月19日
hongdongdong  LV12 2023年7月1日
方沐言  LV1 2023年6月20日
王鑫林  LV4 2023年4月25日
1358849392  LV21 2022年11月11日
是你爸爸啊100  LV5 2022年8月12日
BruceQ  LV14 2021年12月8日
菜鸟bug16  LV2 2021年10月31日
最近浏览更多
雷迪斯俺的乡亲们  LV11 3月23日
安东尼online  LV11 3月8日
jhyan127 2月18日
暂无贡献等级
墨染fsdzf  LV1 2023年12月5日
xianyu091012  LV2 2023年7月19日
hongdongdong  LV12 2023年6月22日
方沐言  LV1 2023年6月20日
lironggang  LV38 2023年4月25日
王鑫林  LV4 2023年4月25日
des-sun  LV1 2023年3月3日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友