我创建了一个数据库,如下所示:
Class.forName("org.sqlite.JDBC");
Connection connection = null;
try
{
connection = DriverManager.getConnection("jdbc:sqlite:ebank.db");
final Statement statement = connection.createStatement();
statement.setQueryTimeout(30);
statement.executeUpdate("create table if not exists employee (id integer,firstname string, lastname string, username string, password string, lgdin integer)");
// statement.executeUpdate("insert into person values(1, 'leo')");
// statement.executeUpdate("insert into person values(2, 'yui')");
// ResultSet rs = statement.executeQuery("select * from person");
// while(rs.next())
// {
// System.out.println("name = " + rs.getString("name"));
// System.out.println("id = " + rs.getString("id"));
// }
}
catch(SQLException e)
{
System.err.println(e.getMessage());
}
finally
{
try
{
if (connection !=null)
{
connection.close();
}
}
catch(SQLException e)
{
System.err.println();
}
}
我需要做的是从我的应用程序中的其他类访问此数据库。首先,我试图将另一个类的两个字符串变量添加到此数据库,但我无法访问语句对象来执行此操作。我该怎么办?
答案 0 :(得分:2)
使用一些公共方法定义一个处理数据库的类,以处理您需要的任何内容。
一个例子可以是带有一些静态方法的静态类,包中的每个类都可以直接调用该类。
public static class Database {
public Database(String dbName){
//HERE YOU INITIALIZE YOUR DATABASE, create the connection etc.
// with an HSQLDB server would be something like this: change with your code.
hsqlServer = new Server();
hsqlServer.setDatabaseName(0, dbName);
hsqlServer.setDatabasePath(0, "file:db/" + fileName);
}
public static void start(){
//start database class
}
public static void connect(){
//create the connectio, something like this:
try {
Class.forName("org.hsqldb.jdbcDriver");
connection = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/garby", "sa", "");
} catch (ClassNotFoundException e) {
} catch (SQLException e) {
}
}
public stati String getNameById(int id){
//HERE YOU create the statement, get the name while id=id and so on, it's an example
}
}
在课堂上,如果你想使用数据库,你必须:
在main方法中,初始化数据库:
public static void main (String arg[]){
new Database("name");
Database.start();
}
在其他类和方法中只需调用:
Database.connect();
Database.myMethodToReturnSomethin();
Database.disconnect();
(显然你需要有disconnect()和stop()方法)
使用此方法,您只需从包中的任何类
访问数据库答案 1 :(得分:0)
从此课程返回connection
,并在其他课程中执行任何操作。
在此类中公开getDBConnection()
和releaseResources(Connection connection)
方法
public class DBConnectionManager {
public static Connection getDBConnection() throws Exception {
//some code to create connection
return connection;
}
public static void releaseResources(Connection connection) {
//close connection if not null
}
}
答案 2 :(得分:0)
单身设计模式是您需要的