金现代实习,一个兼容mysql和oracle的数据库操作类

package com.gink.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

/*与数据库协作的类*/
public class DBUtil {

	// 单例模式
	private DBUtil() {
	}

	private static DBUtil dbutil;

	public static synchronized DBUtil getInstance() {
		if (null == dbutil) {
			dbutil = new DBUtil();
		}
		return dbutil;
	}

	private String dbtype;

	private String dbhost;

	private String dbport;

	private String dbname;

	private String dbusername;

	private String dbpassword;

	static Connection connection = null;
	static Statement statement = null;
	static ResultSet resultSet = null;

	private void getConnection() throws ClassNotFoundException,
			SQLException {
		Properties prop = new Properties();

		try {
			prop.load(getClass().getClassLoader().getResourceAsStream(
					"db.property"));

			dbtype = prop.getProperty("dbtype");
			
			dbhost = prop.getProperty("dbhost");

			dbport = prop.getProperty("dbport");

			dbname = prop.getProperty("dbname");

			dbusername = prop.getProperty("dbusername");

			dbpassword = prop.getProperty("dbpassword");

			connection = createConnection();

		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
		
	private Connection createConnection() throws ClassNotFoundException,
			SQLException {
		Connection conn = null;
		if ("mysql".equals(dbtype)) {
			
			Class.forName("com.mysql.jdbc.Driver");
			// 拼接数据库url
			StringBuffer s = new StringBuffer("jdbc:mysql://");
			s.append(dbhost);
			s.append(":");
			s.append(dbport);
			s.append("/");
			s.append(dbname);
			//System.out.println(s.toString());
			conn = DriverManager.getConnection(s.toString(), dbusername,
					dbpassword);
		}
		if ("oracle".equals(dbtype)) {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			// 拼接数据库url
			StringBuffer s = new StringBuffer("jdbc:oracle:thin:@");
			s.append(dbhost);
			s.append(":");
			s.append(dbport);
			s.append(":");
			s.append(dbname);
			conn = DriverManager.getConnection(s.toString(), dbusername,
					dbpassword);

		}
		
		if ("sqlserver".equals(dbtype)) {
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
			// 拼接数据库url
			StringBuffer s = new StringBuffer("jdbc:sqlserver://");
			s.append(dbhost);
			s.append(":");
			s.append(dbport);
			s.append("; DatabaseName=");
			s.append(dbname);
			conn = DriverManager.getConnection(s.toString(), dbusername,
					dbpassword);

		}

		if ("mysql".equals(dbtype)) {
			// 其他数据库的连接语法
		}
		return conn;

	}

	public int executeUpdate(String sql, Object[] params)
			throws ClassNotFoundException, SQLException {
		// TODO Auto-generated method stub此函数实现增删改功能
		getConnection();
		java.sql.PreparedStatement preparedStatement = connection
				.prepareStatement(sql);

		if (params != null) {
			for (int i = 0; i < params.length; i++) {
				preparedStatement.setObject(i + 1, params[i]);
			}
		}
		int Ginkreturn = preparedStatement.executeUpdate();
		return Ginkreturn;
	}

	public  ResultSet executeQuery(String sql)
			throws ClassNotFoundException, SQLException {
		// TODO Auto-generated method stub此函数重点实现查的功能

		getConnection();
		statement = connection.createStatement();
		resultSet = statement.executeQuery(sql);
		return resultSet;

	}
	public  void closeAll() throws SQLException {
		// TODO Auto-generated method stub

		if (resultSet != null) {
			resultSet.close();
		}
		if (statement != null) {
			statement.close();
		}
		if (connection != null) {
			connection.close();
		}

	}
}

xml配置部分:

dbtype=mysql
dbhost=localhost
dbport=3306
dbname=mysql
dbusername=Gink
dbpassword=Gink


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值