处理多个表的查询

时间:2015-04-16 00:02:53

标签: java mysql sql jdbc

我正在开发一个利用具有多种关系的数据库的项目。我们正在使用以下表格:

  • 客户( id ,f_name,l_name)
  • CreditCards( cardNum ,expDate,securityCode)
  • BillingInfo( id ,f_name,l_name,地址,城市,邮编)
  • 等...

使用Java数据库连接,我的问题是,是否有一种常见的方式来对这些关系执行查询?

即使在了解这个项目的“胆量”之前,我还是想要调用一些方法void insert(int id, String f_name, String l_name),这是一个假设的CustomerQueryHandler类的成员方法。该课程当然会附带其他方法,例如deleteupdate方法。

我想我会从一个名为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 */
    }

每个表都有一个派生类,每个派生类都会实现自己的insertupdatedelete版本:

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);
    }

    ...

这实际上是我变得非常困惑的地方,因为这是否有意义成为一个超类,即使每个子类都有自己的上述方法的参数列表?

0 个答案:

没有答案