import java.util.*;
import java.sql.*;
import java.io.*;
public class DbConnection
{
Connection con=null;
Statement smt=null;
ResultSet rt=null;
public DbConnection()
{
}
public boolean openConnection()
{
Properties prop=new Properties();
try
{
InputStream in=getClass().getResourceAsStream("db.properties");
prop.load(in);
if(in!=null)
{
in.close();
}
}
catch(IOException ioe)
{
System.out.println("Con not open DataBase!");
}
String dr=prop.getProperty("dr");
String ul=prop.getProperty("ul");
String usr=prop.getProperty("usr");
String pwd=prop.getProperty("pwd");
System.out.println("dr=["+dr+"]");
System.out.println("ul=["+ul+"]");
System.out.println("usr=["+usr+"]");
System.out.println("pwd=["+pwd+"]");
try
{
Class.forName(dr);
}
catch(ClassNotFoundException cnfe)
{
System.out.println("driver "+dr+"load failed!");
return false;
}
try
{
this.con=DriverManager.getConnection(ul,usr,pwd);
}
catch(SQLException sqle2)
{
System.out.println("Connection failed!");
}
return true;
}
public ResultSet executeQuery(String query) throws SQLException
{
this.smt=con.createStatement();
this.rt=smt.executeQuery(query);
return rt;
}
public void executeUpdate(String query) throws SQLException
{
this.smt=con.createStatement();
smt.executeUpdate(query);
if(smt!=null)
{
smt.close();
}
}
public void close() throws SQLException
{
if(con!=null) con.close();
if(rt!=null) rt.close();
if(smt!=null) smt.close();
}
protected void finalize() throws Throwable
{
this.close();
}
}
/*............*/
import java.sql.*;
public class ViewQueryBean
{
DbConnection dc=null;
ResultSet rt=null;
public ViewQueryBean()
{
dc=new DbConnection();
}
public boolean openConnection()
{
return dc.openConnection();
}
public void executeQuery(String sqlsmt) throws SQLException
{
this.rt=dc.executeQuery(sqlsmt);
}
public void executeUpdate(String sqlsmt) throws SQLException
{
dc.executeUpdate(sqlsmt);
}
public int getColumnCount() throws SQLException
{
ResultSetMetaData rtmd=rt.getMetaData();
return rtmd.getColumnCount();
}
public String getColumnName(int index) throws SQLException
{
ResultSetMetaData rtmd=rt.getMetaData();
return rtmd.getColumnName(index);
}
public String getData(int index) throws SQLException
{
return rt.getString(index).trim();
}
public String getData(String columnName) throws SQLException
{
return rt.getString(columnName).trim();
}
public void close() throws SQLException
{
if(rt!=null) rt.close();
if(dc!=null) dc.close();
}
protected void finalize() throws Throwable
{
close();
}
}
import java.sql.*;
import java.io.*;
public class DbConnection
{
Connection con=null;
Statement smt=null;
ResultSet rt=null;
public DbConnection()
{
}
public boolean openConnection()
{
Properties prop=new Properties();
try
{
InputStream in=getClass().getResourceAsStream("db.properties");
prop.load(in);
if(in!=null)
{
in.close();
}
}
catch(IOException ioe)
{
System.out.println("Con not open DataBase!");
}
String dr=prop.getProperty("dr");
String ul=prop.getProperty("ul");
String usr=prop.getProperty("usr");
String pwd=prop.getProperty("pwd");
System.out.println("dr=["+dr+"]");
System.out.println("ul=["+ul+"]");
System.out.println("usr=["+usr+"]");
System.out.println("pwd=["+pwd+"]");
try
{
Class.forName(dr);
}
catch(ClassNotFoundException cnfe)
{
System.out.println("driver "+dr+"load failed!");
return false;
}
try
{
this.con=DriverManager.getConnection(ul,usr,pwd);
}
catch(SQLException sqle2)
{
System.out.println("Connection failed!");
}
return true;
}
public ResultSet executeQuery(String query) throws SQLException
{
this.smt=con.createStatement();
this.rt=smt.executeQuery(query);
return rt;
}
public void executeUpdate(String query) throws SQLException
{
this.smt=con.createStatement();
smt.executeUpdate(query);
if(smt!=null)
{
smt.close();
}
}
public void close() throws SQLException
{
if(con!=null) con.close();
if(rt!=null) rt.close();
if(smt!=null) smt.close();
}
protected void finalize() throws Throwable
{
this.close();
}
}
/*............*/
import java.sql.*;
public class ViewQueryBean
{
DbConnection dc=null;
ResultSet rt=null;
public ViewQueryBean()
{
dc=new DbConnection();
}
public boolean openConnection()
{
return dc.openConnection();
}
public void executeQuery(String sqlsmt) throws SQLException
{
this.rt=dc.executeQuery(sqlsmt);
}
public void executeUpdate(String sqlsmt) throws SQLException
{
dc.executeUpdate(sqlsmt);
}
public int getColumnCount() throws SQLException
{
ResultSetMetaData rtmd=rt.getMetaData();
return rtmd.getColumnCount();
}
public String getColumnName(int index) throws SQLException
{
ResultSetMetaData rtmd=rt.getMetaData();
return rtmd.getColumnName(index);
}
public String getData(int index) throws SQLException
{
return rt.getString(index).trim();
}
public String getData(String columnName) throws SQLException
{
return rt.getString(columnName).trim();
}
public void close() throws SQLException
{
if(rt!=null) rt.close();
if(dc!=null) dc.close();
}
protected void finalize() throws Throwable
{
close();
}
}
解决方案 »
- 我学到JDBC了,很困惑,前辈指点一下我吧
- 关于JTabel问题(急)
- java.sql.SQLException: Io 异常: Connection refused
- 内部类 页面无法访问其属性
- 为什么显示成这样?
- JScrollPane弄成透明后,为什么还是不透明。。。。
- UP有分!UP有分!UP有分!!!!!!!!大家各抒己见:JAVA的未来!!!!!UP有分!UP有分!UP有分!!
- 请问高手,怎样将用jdk将.class搞成.exe???????
- jdbc如何读取text类型的字段,用getXXX()方法?
- java中读文件问题
- 关于java 访问串口程序的一点问题。
- 高手帮忙看看CoreJava的一段程序
import java.sql.*;
import java.util.Properties;/**
* This class uses the DatabaseMetaData class to obtain information about
* the database, the JDBC driver, and the tables in the database, or about
* the columns of a named table.
**/
public class GetDBInfo {
public static void main(String[] args) {
Connection c = null; // The JDBC connection to the database server
try {
// Look for the properties file DB.props in the same directory as
// this program. It will contain default values for the various
// parameters needed to connect to a database
Properties p = new Properties();
try { p.load(GetDBInfo.class.getResourceAsStream("DB.props")); }
catch (Exception e) {}
// Get default values from the properties file
String driver = p.getProperty("driver"); // Driver class name
String server = p.getProperty("server", ""); // JDBC URL for server
String user = p.getProperty("user", ""); // db user name
String password = p.getProperty("password", ""); // db password
// These variables don't have defaults
String database = null; // The db name (appended to server URL)
String table = null; // The optional name of a table in the db
// Parse the command-line args to override the default values above
for(int i = 0; i < args.length; i++) {
if (args[i].equals("-d")) driver = args[++i]; //-d <driver>
else if (args[i].equals("-s")) server = args[++i];//-s <server>
else if (args[i].equals("-u")) user = args[++i]; //-u <user>
else if (args[i].equals("-p")) password = args[++i];
else if (database == null) database = args[i]; // <dbname>
else if (table == null) table = args[i]; // <table>
else throw new IllegalArgumentException("Unknown argument: "
+args[i]);
} // Make sure that at least a server or a database were specified.
// If not, we have no idea what to connect to, and cannot continue.
if ((server.length() == 0) && (database.length() == 0))
throw new IllegalArgumentException("No database specified."); // Load the db driver, if any was specified.
if (driver != null) Class.forName(driver);
// Now attempt to open a connection to the specified database on
// the specified server, using the specified name and password
c = DriverManager.getConnection(server+database, user, password); // Get the DatabaseMetaData object for the connection. This is the
// object that will return us all the data we're interested in here
DatabaseMetaData md = c.getMetaData(); // Display information about the server, the driver, etc.
System.out.println("DBMS: " + md.getDatabaseProductName() +
" " + md.getDatabaseProductVersion());
System.out.println("JDBC Driver: " + md.getDriverName() +
" " + md.getDriverVersion());
System.out.println("Database: " + md.getURL());
System.out.println("User: " + md.getUserName()); // Now, if the user did not specify a table, then display a list of
// all tables defined in the named database. Note that tables are
// returned in a ResultSet, just like query results are.
if (table == null) {
System.out.println("Tables:");
ResultSet r = md.getTables("", "", "%", null);
while(r.next()) System.out.println("\t" + r.getString(3));
} // Otherwise, list all columns of the specified table.
// Again, information about the columns is returned in a ResultSet
else {
System.out.println("Columns of " + table + ": ");
ResultSet r = md.getColumns("", "", table, "%");
while(r.next())
System.out.println("\t" + r.getString(4) + " : " +
r.getString(6));
}
}
// Print an error message if anything goes wrong.
catch (Exception e) {
System.err.println(e);
if (e instanceof SQLException)
System.err.println(((SQLException)e).getSQLState());
System.err.println("Usage: java GetDBInfo [-d <driver] " +
"[-s <dbserver>]\n" +
"\t[-u <username>] [-p <password>] <dbname>");
}
// Always remember to close the Connection object when we're done!
finally {
try { c.close(); } catch (Exception e) {}
}
}
}
看看这个如何?