我正在开发一个利用具有多种关系的数据库的项目。我们正在使用以下表格:
使用Java数据库连接,我的问题是,是否有一种常见的方式来对这些关系执行查询?
即使在了解这个项目的“胆量”之前,我还是想要调用一些方法void insert(int id, String f_name, String l_name)
,这是一个假设的CustomerQueryHandler
类的成员方法。该课程当然会附带其他方法,例如delete
和update
方法。
我想我会从一个名为QueryHandler
的抽象类开始:
import java.sql.*;
public abstract class QueryHandler {
protected String jdbcUrl = null;
protected String userid = null;
protected String password = null;
protected Connection conn;
QueryHandler(String url_in, String id_in, String pass_in) {
this.jdbcUrl = url_in;
this.userid = id_in;
this.password = pass_in;
try {
this.ds = new OracleDataSource();
} catch (SQLException e) {
e.printStackTrace();
}
ds.setURL(this.jdbcUrl);
try {
conn = ds.getConnection(userid, password);
} catch (SQLException e) {
e.printStackTrace();
}
}
public abstract void insert(/*not sure of signature*/);
public abstract void update(/*not sure of signature*/);
public abstract void delete(/*not sure of signature*/);
/* OTHER METHODS BELOW */
}
每个表都有一个派生类,每个派生类都会实现自己的insert
,update
和delete
版本:
public class CustomersQueryHandler extends QueryHandler {
public CustomersQueryHandler(String url_in, String id_in, String pass_in) {
super(String url_in, String id_in, String pass_in);
}
...
这实际上是我变得非常困惑的地方,因为这是否有意义成为一个超类,即使每个子类都有自己的上述方法的参数列表?