Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 处理多个表的查询_Java_Mysql_Sql_Jdbc - Fatal编程技术网

Java 处理多个表的查询

Java 处理多个表的查询,java,mysql,sql,jdbc,Java,Mysql,Sql,Jdbc,我正在从事一个项目,该项目利用了一个具有多个关系的数据库。我们正在处理以下表格: 客户ID、f_名称、l_名称 CreditCardscardNum、expDate、securityCode BillingFoId、f_名称、l_名称、地址、城市、邮政编码 等 使用Java数据库连接,我的问题是,是否有一种对这些关系执行查询的通用方法 甚至在深入了解这个项目之前,我设想能够调用一些方法void insertint id、String f_name、String l_name,一个假设的Custo

我正在从事一个项目,该项目利用了一个具有多个关系的数据库。我们正在处理以下表格:

客户ID、f_名称、l_名称 CreditCardscardNum、expDate、securityCode BillingFoId、f_名称、l_名称、地址、城市、邮政编码 等 使用Java数据库连接,我的问题是,是否有一种对这些关系执行查询的通用方法

甚至在深入了解这个项目之前,我设想能够调用一些方法void insertint id、String f_name、String l_name,一个假设的CustomerQueryHandler类的成员方法。这个类当然会伴随着其他方法,比如delete和update方法

我想从一个名为QueryHandler的抽象类开始:

每个表都有一个派生类,每个派生类都将实现自己的insert、update和delete版本:


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

您似乎在描述一个您自己的ORM-您查看过任何现有的ORM吗?我一直在查看。似乎找不到。我对java不太了解,但试着从这里开始了解一些想法:你可能想看看
    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 */
    }
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);
    }

    ...