将动态参数插入Java

时间:2016-09-10 16:07:59

标签: java sqlite jdbc

总之我想要的是一种将动态参数插入sqlite数据库语句以使我的类动态化的方法......你可能会问动态如何? 好的我会回答你让我假设我的数据库里面有这个表

CREATE TABLE "Users" (
`id`    INTEGER PRIMARY KEY AUTOINCREMENT,
`username`  TEXT,
`password`  TEXT )

我有一个名为 MySqlHandler 的类来处理所有与sqlite相关的操作,如Selection,Insertion ..等等。

在我们的类里面我有fetch_rows_as_array,我想让它动态化以处理所有插入命令

public class MySQl {

    Connection conn;
    public PreparedStatement preparedStatement;

    // get connected with the database it only called from LoginController 
    public void Connect(){

        try{
            Class.forName("org.sqlite.JDBC");
            // Get a live Connection to the database
            conn = DriverManager.getConnection("jdbc:sqlite:database.db");

            System.out.println("connected with success!");

        }catch(Exception e){
            System.out.println(e);
        }


    }

    // this method will handle any kind of selection from our database
    public void fetch_rows_as_array(String query){

        try{
            // create  a statement
            preparedStatement = conn.prepareStatement(query);

            // Execute Query and return arrays of results
            ResultSet rs = preparedStatement.executeQuery(query);

            while(rs.next())
                System.out.println(rs.getString(1) + rs.getString(2));

        }catch(Exception e){
            e.printStackTrace();
        }

    }
}

//请注意上面的代码并不完全正确,只是为了解释

现在方法fetch_rows_as_array可以行动得很好但是让我们说在一种情况下我想得到所有列...而在另一种情况下我想从同一种方法获得所有列的用户名= someValue ..在最后一种情况下,我想得到用户名= somevalue和密码=?的所有列,但是对于我来说,使用相同的函数执行这三种情况都非常重要。

为了让我实现这一目标......我想我应该尝试这样的事情(来自另一个班级)

MySQl sql = new MySQl();
        sql.Connect();

        try {
            sql.prstmt.setString(1, "admin");
            sql.prstmt.setString(2, "123");

            sql.fetch_rows_as_array("select username,password from Users where username=? and password=?");

        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

原来我的代码错了......

  

简而言之,我想要一种方法从类外部向语句添加参数..换句话说我想将动态参数插入到sqlite数据库语句中

我希望你明白我的观点。

0 个答案:

没有答案