JDBC数据库连接方式



package common;

import java.sql.*;
import java.util.List;

import javax.servlet.jsp.jstl.sql.Result;
import javax.servlet.jsp.jstl.sql.ResultSupport;

public class CommonDao {
	public CommonDao() {
	}

	private static Connection con = null;
	private String sqlStr = null;
	private List lists = null;

	// 设置连接对象
	public static void setCon(Connection con) {
		CommonDao.con = con;
	}

	// sql语句
	public void setSqlStr(String sqlStr) {
		this.sqlStr = sqlStr;
	}

	// 参数
	public void setParams(List lists) {
		this.lists = lists;
	}

	// 返回连接对象
	public static synchronized Connection getConnByProperties() {
		String driverName = Env.getInstance().getProperty("driver");
		String url = Env.getInstance().getProperty("url");

		try {
			Class.forName(driverName);
			con = DriverManager.getConnection(url);
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return con;
	}

	// 执行查询
	public Result executeQuery() {
		Result result = null;
		ResultSet rs = null;
		PreparedStatement preSt = null;
		Statement st = null;
		try {
			if (lists != null && lists.size() != 0) {
				preSt = con.prepareStatement(sqlStr);
				setValues(preSt, lists);
				rs = preSt.executeQuery();
			} else {
				st = con.createStatement();
				rs = st.executeQuery(sqlStr);
			}

			result = ResultSupport.toResult(rs);

		} catch (Exception ex) {
			ex.printStackTrace();
		}

		finally {
			closeResultSet(rs);
			closePreparedStatement(preSt);
			closeStatement(st);
		}

		return result;

	}

	/////////////////////
	public ResultSet ExecuteQuery() {
	
		ResultSet rs = null;
		PreparedStatement preSt = null;
		Statement st = null;
		try {
			if (lists != null && lists.size() != 0) {
				preSt = con.prepareStatement(sqlStr);
				setValues(preSt, lists);
				rs = preSt.executeQuery();
			} else {
				st = con.createStatement();
				rs = st.executeQuery(sqlStr);
			}
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return rs;

	}
	
	
	
	
	
	// 执行增删改
	public int executeUpdate() {
		int i = 0;
		ResultSet rs = null;
		PreparedStatement preSt = null;
		Statement st = null;
		try {
			if (lists != null && lists.size() != 0) {
				preSt = con.prepareStatement(sqlStr);
				setValues(preSt, lists);
				i = preSt.executeUpdate();
			} else {
				st = con.createStatement();
				i = st.executeUpdate(sqlStr);
			}

		} catch (Exception ex) {
			ex.printStackTrace();
		} finally {
			closePreparedStatement(preSt);
			closeStatement(st);
		}
		return 0;

	}

	// 设置参数
	private void setValues(PreparedStatement pst, List lists) {
		try {
			for (int i = 0; i < lists.size(); i++) {
				Object obt = lists.get(i);
				pst.setObject(i + 1, i);
			}
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	public void closePreparedStatement(PreparedStatement preSt) {
		try {
			if (preSt != null) {
				preSt.close();
			}
		} catch (Exception ex) {
			ex.printStackTrace();
		}

	}

	public void closeStatement(Statement st) {
		try {

			if (st != null) {
				st.close();
			}
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	public void closeResultSet(ResultSet rs) {
		try {

			if (rs != null) {
				rs.close();
			}
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

}





1、链接Sqlserver2000
驱动类
com.microsoft.jdbc.sqlserver.SQLServerDriver
连接字符串
jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs
(pubs为数据库名,localhost为主机地址,若数据库在远程则为IP地址)




2、链接mysql
驱动类
com.mysql.jdbc.Driver
连接字符串
jdbc:mysql://localhost:3306/pubs
(pubs为数据库名,localhost为主机地址,若数据库在远程则为IP地址)


3、jdbc-odbc桥链接
驱动类
sun.jdbc.odbc.JdbcOdbcDriver
连接字符串
jdbc:odbc:dsnname
(dsnname为odbc数据源的名称)

4、链接Oracle
驱动类:
         oracle.jdbc.driver.OracleDriver
链接字符串
         jdbc:oracle:thin:@localhost:1521:ora9
        (localhost为主机地址,若数据库,在远程则为IP地址其中“1521”为端口,“ora9”为sid )

5、连接DB2
驱动类:
        COM.ibm.db2.jdbc.app.DB2Driver
连接字符串:
       jdbc:db2://192.168.1.10/50000:rdb
         (这里192.168.1.10为数据库所在服务器IP地址,而50000为DB2连接服务的端口号)

6、链接Sybase
驱动类:
      com.sybase.jdbc3.jdbc.SybDriver
连接字符串:
     jdbc:sybase:Tds:192.168.100.252:4500/myDB
    (这里192.168.100.252为数据库所在服务器IP地址,而4500为Sybase连接服务的端口号myDB为数据库的名字)

7、链接Informix
驱动类:
      com.informix.jdbc.IfxDriver
连接字符串:
jdbc:informix-sqli://192.168.100.252:1533/myDB:INFORMIXSERVER=myserver
    (这里192.168.100.252为数据库所在服务器IP地址,而1533为Informix连接服务的端口号myDB为数据库的名字)

8、连接PostgreSQL
驱动类:
org.postgresql.Driver
链接字符串:
jdbc:postgresql://localhost/mydb

补充一点,一般情况下JDBC驱动连接URL 格式是: jdbc:<子协议>:URL

你可能感兴趣的:(oracle,jdbc,db2,Sybase,Informix)