dbtools.java

来自「java编写的网络购物简洁版」· Java 代码 · 共 175 行

JAVA
175
字号
package shop;

import java.sql.*;

import javax.naming.Context;
import javax.naming.InitialContext;

import javax.sql.DataSource;

//封装了有关数据库操作的DBTools类
public class DBTools {
	/**
	 * 建立连接,jdbc—odbc桥连接方法
	 */
//	public java.sql.Connection getConnection() {
//	  java.sql.Connection con = null;
//	  try {
//	    //驱动
//	    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//	    //数据源名称为:TestStu
//	    String url = "jdbc:odbc:TestStu";
//	    con = java.sql.DriverManager.getConnection(url);
//	  }
//	  catch (Exception ex) {
//	    ex.printStackTrace();
//	  }
//	  return con;
//	}
	
	/**
	 * 纯java方法,建立连接,数据库名称为:stu
	 * @return Connection
	 */
//	public java.sql.Connection getConnection() {
//	  String url = "jdbc:microsoft:sqlserver://localhost:1433;databasename=chanpin";
//	 java.sql.Connection con = null;
//	  try {
//	    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
//	    String user = "sa";
//	    String pwd = "";
//	    con = java.sql.DriverManager.getConnection(url, user, pwd);
//	  }
//	  catch (Exception ex) {
//	    ex.printStackTrace();	  
//	    }
//	  return con;
//	}
//	
	
	public java.sql.Connection getConnection() {
		
		Context ctx;
	    
	    Connection con = null;
		try {
			ctx = new InitialContext();
			DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/chanpin");

				con = ds.getConnection();

		} catch (Exception e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
	return con;
	}
	
	/**
	 * 关闭连接对象con
	 * @param con Connection
	 * @return Connection
	 */
	//public Connection closeConnection(Connection con)
	public void closeConnection(Connection con) {
	  if (con != null) {
	    try {
	      con.close();
	    }
	    catch (SQLException ex) {
	      ex.printStackTrace();
	    }
	  }
	//  return null;
	}
	
	/**
	 * 关闭预编译命令pstmt
	 * @param pstmt PreparedStatement
	 */
	public void closePreparedStatement(PreparedStatement pstmt) {
	  if (pstmt != null) {
	    try {
	      pstmt.close();
	    }
	    catch (SQLException ex) {
	      ex.printStackTrace();
	    }
	  }
	}
	
	/**
	 * 关闭编译命令stmt
	 * @param stmt Statement
	 */
	public void closeStatement(Statement stmt) {
	  if (stmt != null) {
	    try {
	      stmt.close();
	    }
	    catch (SQLException ex) {
	      ex.printStackTrace();
	    }
	  }
	}
	
	/**
	 * 关闭记录集对象rs
	 * @param rs ResultSet
	 */
	public void closeResultSet(ResultSet rs)
	{
	  if(rs != null)
	  {
	    try {
	      rs.close();
	    }
	    catch (SQLException ex) {
	      ex.printStackTrace();
	    }
	  }
	}
	
	/**
	 * 完成增加、修改、删除操作时
	 * 关闭连接con和预编译pstmt对象
	 * @param con Connection
	 * @param pstmt PreparedStatement
	 */
	public void close(Connection con,PreparedStatement pstmt)
	{
	  closePreparedStatement(pstmt);
	  closeConnection(con);
	}
	public void close(Connection con,Statement stmt)
	{
		closeStatement(stmt);
	  closeConnection(con);
	}
	/**
	 * 完成查询功能时
	 * 关闭连接con、预编译pstmt、记录集rs对象
	 * @param con Connection
	 * @param pstmt PreparedStatement
	 * @param rs ResultSet
	 */
	public void close(Connection con,PreparedStatement pstmt,ResultSet rs)
	{
	  closeResultSet(rs);
	  closePreparedStatement(pstmt);
	  closeConnection(con);
	}
	public void close(Connection con,PreparedStatement pstmt,ResultSet rs,Statement stmt)
	{
	  closeResultSet(rs);
	  closePreparedStatement(pstmt);
	  closeConnection(con);
	  closeStatement(stmt);
	}
	public void close(Connection con,Statement stmt,ResultSet rs)
	{
	  closeResultSet(rs);
	  closeStatement(stmt);
	  closeConnection(con);
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?