日期:2014-05-20  浏览次数:20798 次

java怎么通过输入,传递参数去访问数据库
那个java怎么通过输入,传递参数去访问数据库,然后搜出相应条件的元组啊?
  
直接赋值给变量xx.,然后用SQL语句String command = "select * from book where bno=xx";不行的么??

------解决方案--------------------
xx被认为是字符串常量了!!!
------解决方案--------------------
String command = "select * from book where bno=" + xx;
------解决方案--------------------
最好用PrepareStatement
------解决方案--------------------
引号里面,他把xx当作字符串了。

你可以用二楼的方法拼接SQL语句。

但是拼接SQL语句是比较麻烦的。

你可以选择用PrepareStatement。

如果PrepareStatment.你都嫌麻烦的话。

可以学一下Hibernate框架。


------解决方案--------------------
探讨

String command = "select * from book where bno=" + xx;

------解决方案--------------------
Java code

import java.sql.*;

public class Main {

    public static void main(String[] args) throws Exception{
         Class.forName("com.mysql.jdbc.Driver");
         Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1/test?user=root&password=jiakai");
         String sql = "select * from book where id = ?";
         PreparedStatement ps = conn.prepareStatement(sql);
         ps.setInt(1, 5);
         ResultSet rs = ps.executeQuery();
         
         while (rs.next()) {
             int id = rs.getInt("id");
             String name = rs.getString("name");
             System.out.println("id: "+id+" name: "+name);
         }
    }
}

------解决方案--------------------
动态的拼接SQL,参数用"?"代替,可以PrepareStatement里面的方法给"?"赋值,得到的ResultSet结果集,再从结果集里去数据,建议不用"*",只查询你需要的字段。
------解决方案--------------------
探讨

动态的拼接SQL,参数用"?"代替,可以PrepareStatement里面的方法给"?"赋值,得到的ResultSet结果集,再从结果集里去数据,建议不用"*",只查询你需要的字段。

------解决方案--------------------
可以结贴了