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

📄 databaseutilities.java

📁 说明: 1、这是一个让人眼前一亮的设计
💻 JAVA
字号:
package jdbc_bible;
import java.awt.event.*;
import java.sql.*;
import java.util.Vector;
import sun.jdbc.odbc.JdbcOdbcDriver;
public class DatabaseUtilities 
{
	static String jdbcDriver="sun.jdbc.odbc.JdbcOdbcDriver";
	static String dbName="oo";
	static String urlRoot="jdbc:odbc:";
	private ActionListener exceptionListener=null;
	public DatabaseUtilities() 
	{
		registerDriver();
	}	
	public void setDatabaseName(String dbName)
	{
		this.dbName=dbName;
	}
	public void registerDriver()
	{
		try
		{
			Class.forName(jdbcDriver);
			DriverManager.registerDriver(new JdbcOdbcDriver());
		}
		catch(ClassNotFoundException e)
		{
			reportException("registerDriver1"+e.getMessage());
		}
		catch(SQLException e)
		{
			reportException("registerDriver2"+e.getMessage());
		}
	}
	public void execute(String SQLCommand)
	{
		String url=urlRoot+dbName;
		try
		{
			Connection con=DriverManager.getConnection(url);
			Statement stmt=con.createStatement();
			stmt.execute(SQLCommand);
			con.close();
		}
		catch(SQLException e)
		{
			reportException(e.getMessage());
		}
	}
	public boolean execute(String[] SQLCommand)
	{
		boolean f=false;
		int num=0;
		String url=urlRoot+dbName;
		try
		{
			Connection con=DriverManager.getConnection(url);
			Statement stmt=con.createStatement();
			for(int i=0;i<SQLCommand.length;i++)
			{
				stmt.execute(SQLCommand[i]);
				num++;
			}
			System.out.println(num);
			if(num>0)
			con.close();
			f=true;
			
		}
		catch(SQLException e)
		{
		//	reportException(e.getMessage());
			reportException(e.getMessage()+"注意输入数据类型、数据个数要保持一致");
		}
		return f;
	}
	public String[] getColumnNames(String tableName)
	{
		Vector dataSet=new Vector();
		String[] columnNames=null;
		String url=urlRoot+dbName;
		String SQLCommand="SELECT * FROM "+tableName+";";
		try
		{
			Connection con=DriverManager.getConnection(url);
			Statement stmt=con.createStatement();
			ResultSet rs=stmt.executeQuery(SQLCommand);
			ResultSetMetaData md=rs.getMetaData();
			columnNames=new String[md.getColumnCount()];
			for(int i=0;i<columnNames.length;i++)
			{
				columnNames[i]=md.getColumnLabel(i+1);
			}
			con.close();
		}
		catch(SQLException e)
		{
			reportException(e.getMessage());
		}
		return columnNames;
	}
	
	public String[] getColumnNamesUsingQuery(String SQLCommand)
	{
		Vector dataSet=new Vector();
		String[] columnNames=null;
		String url=urlRoot+dbName;
		try
		{
			Connection con=DriverManager.getConnection(url);
			Statement stmt=con.createStatement();
			ResultSet rs=stmt.executeQuery(SQLCommand);
			ResultSetMetaData md=rs.getMetaData();
			
			columnNames=new String[md.getColumnCount()];
			for(int i=0;i<columnNames.length;i++)
			{
				columnNames[i]=md.getColumnLabel(i+1);
			}
			con.close();
		}
		catch(SQLException e)
		{
			reportException(e.getMessage());
		}
		return columnNames;
	}
	
	public String[] getDataTypes(String tableName)
	{
		Vector dataSet=new Vector();
		String[] dataTypes=null;
		String url=urlRoot+dbName;
		String SQLCommand="SELECT * FROM "+tableName+";";
		try
		{
			Connection con=DriverManager.getConnection(url);
			Statement stmt=con.createStatement();
			ResultSet rs=stmt.executeQuery(SQLCommand);
			ResultSetMetaData md=rs.getMetaData();
			dataTypes=new String[md.getColumnCount()];
			for(int i=0;i<dataTypes.length;i++)
			{
				dataTypes[i]=md.getColumnTypeName(i+1);
			}
			con.close();
		}
		catch(SQLException e)
		{
			reportException(e.getMessage());
		}
		return dataTypes;
	}
	
	public Vector executeQuery(String SQLQuery)
	{
		Vector dataSet=new Vector(1,1);
		String url=urlRoot+dbName;
		try
		{		
			Connection con=DriverManager.getConnection(url);			
			Statement stmt=con.createStatement();			
			ResultSet rs=stmt.executeQuery(SQLQuery);			
			ResultSetMetaData md=rs.getMetaData();
			int nColumns=md.getColumnCount();
			while(rs.next())
			{	
				Vector rowData=new Vector(1,1);
				for(int i=1;i<nColumns+1;i++)
				{					
					rowData.addElement(rs.getObject(i));
				}
				dataSet.addElement(rowData);		
			}
			con.close();	
		}
		catch(SQLException e)
		{
			reportException(e.getMessage());
		}
		return dataSet;
	}
	
	public void setExceptionListener(ActionListener exceptionListener)
	{
		this.exceptionListener=exceptionListener;
	}
	private void reportException(String exception)
	{
		if(exceptionListener!=null)
		{
			ActionEvent evt=new ActionEvent(this,0,exception);
			exceptionListener.actionPerformed(evt);
		}
		else
		{
			System.err.println(exception);
		}
	}
}

⌨️ 快捷键说明

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