⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 databasetool.java

📁 您的文件包然后写出其具体功能(至少要20个字)。尽量不要让站长把时间都花费在为您
💻 JAVA
字号:
package Sys.db;

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

import javax.swing.JOptionPane;

public class DatabaseTool {
	private static ThreadLocal<Object> connection = new ThreadLocal<Object>();
	
	public synchronized static Connection conDB(){
		Connection con = (Connection) connection.get();
	  try{
		  //Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
		  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
	  }catch(ClassNotFoundException e){
		  JOptionPane.showMessageDialog(null,"数据库加载失败");
	  }
	  try{
		  //con=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=StudentManagerSys","tk","123456");
		  con=DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=StudentManagerSys.mdb");
		  //con.setAutoCommit(false);
		  connection.set(con);
		  return con;
	  }catch(SQLException e){
		  JOptionPane.showMessageDialog(null,"数据库连接失败");
      }
	  return null;
	}
	//之前下面两个函数是dao层每个都有的,所有我将它放到这里让大家使用设为static
	//ACCESS关闭数据库方法是先关闭rs,然后在是ps
	public static void closeResultSet(ResultSet rs){
		if(rs!=null){
			try{
				rs.close();
				rs=null;
			}catch(SQLException e){
				JOptionPane.showMessageDialog(null, "关闭ResultSet失败");
			}
		}
	}
	//因为要用到回滚和提交,而不同用户用到的连接可能不同,所以应该给每个dao都设置它自己的conDB对象
	
	//退出时一定要关闭数据库连接conDB,用查询操作等,没使用一次就要关闭一次
	public static void closeStatement(Statement ps){
		if(ps!=null){
			try{
				ps.close();
				ps=null;
			}catch(SQLException e){
				JOptionPane.showMessageDialog(null, "关闭Statement失败");
			}
		}
	}
	
	public static void commit(){
		Connection con = (Connection) connection.get();
		try {
			con.commit();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	public static void rollback(){
		Connection con = (Connection) connection.get();
		try {
			con.rollback();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	public synchronized static void releaseConnection(Connection connection) {

		try {
			if (connection != null && !connection.isClosed())
				connection.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		connection = null;
	}
}

⌨️ 快捷键说明

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