Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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_Database - Fatal编程技术网

Java数据库应用程序

Java数据库应用程序,java,database,Java,Database,有人能帮我一下吗:我正在制作一个java数据库应用程序,我想把select、insert、update和delete的方法放在一个单独的类中,这样它们就可以从另一个类中调用并重用了。 到目前为止,在不使用prepared语句的情况下,我只分离了update和delete以及insert的方法。我遇到的问题是,在从数据库执行select操作时,如何返回数据并将其放入表中 以下是查询类中的更新和删除方法: import java.sql.Connection; import java.sql.Res

有人能帮我一下吗:我正在制作一个java数据库应用程序,我想把select、insert、update和delete的方法放在一个单独的类中,这样它们就可以从另一个类中调用并重用了。 到目前为止,在不使用prepared语句的情况下,我只分离了update和delete以及insert的方法。我遇到的问题是,在从数据库执行select操作时,如何返回数据并将其放入表中

以下是查询类中的更新和删除方法:

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.Konekcija.Konekcija;

public class Queries {
Konekcija konekcija = new Konekcija();

public void updateTable(String sqlQuery){
    Connection conn = null;
    Statement st = null;
    try{
        Class.forName("com.mysql.jdbc.Driver");
        conn = konekcija.getConn();
        st = conn.createStatement();
        st.executeUpdate(sqlQuery);

    }catch(Exception e){
        e.printStackTrace();
    }finally{
        try {
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        try {
            st.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

public void deleteFromTable(String sqlQuery){
    Connection conn = null;
    Statement st = null;
    try{
        Class.forName("com.mysql.jdbc.Driver");
        conn = konekcija.getConn();
        st = conn.createStatement();
        st.executeUpdate(sqlQuery);
    }catch(Exception e){
        e.printStackTrace();
    }finally{
        try {
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        try {
            st.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

}
另外,连接属性属于另一个类“Konekcija”

返回“从表中选择”的数据

  • 您可以将结果集返回给调用者并获取值(或)
  • 在Queries类的“Select”方法中,从resultset中检索数据,并将其设置为某个VO对象,然后将此VO添加到集合中并返回集合(假设您将在中获得多行)。例如,若要查询用户表,请使用get/set方法创建JavaBean类“User”。将检索到的值设置到此bean并返回它。 //在某个包中使用get/set创建用户类

    Class.forName("com.mysql.jdbc.Driver");
        conn = konekcija.getConn();
        st = conn.createStatement();
        ResultSet rs=st.execute(sqlQuery);
        //Instantiate user class
           while (rs.next())
        System.out.println("Name= " + rs.getString("moviename") + " Date= " +               String fName = rs.getString("firstName");
    
    User myUser=新用户(); myUser.setFirstName(fName); }

    注意:
    此代码是手工输入的。可能存在语法错误。请把它作为起点


  • 尝试executeQuery方法。在“resultset”类的java文档中,您将找到一个示例:


    您应该创建一个集合并用查询结果填充它,它应该看起来像:

    List<Foo> selectFoos(Connection connection) throws SQLException {
        PreparedStatement ps = connection.prepareStatement("select * from foo");
        try {
            ResultSet resultSet = ps.executeQuery();
            try {
                List<Foo> foos = new ArrayList<Foo>();
                while (resultSet.next()) {
                    Foo foo = new Foo();
                    // use resultSet methods get... to retrieve data from current row of results
                    // and populate foo
                    foos.add(foo);
                }
            } finally {
                resultSet.close();
            }
        } finally {
            ps.close();
        }
        return foos;
    }
    
    List selectFoos(连接)抛出SQLException{
    PreparedStatement ps=connection.prepareStatement(“从foo中选择*);
    试一试{
    ResultSet ResultSet=ps.executeQuery();
    试一试{
    List foos=new ArrayList();
    while(resultSet.next()){
    Foo-Foo=新的Foo();
    //使用resultSet方法get…从当前结果行检索数据
    //并填充foo
    添加(foo);
    }
    }最后{
    resultSet.close();
    }
    }最后{
    ps.close();
    }
    返回foos;
    }
    
    我也在考虑这个问题,但我不知道该怎么做。@brano88:用例子更新了我的答案。