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

Java来读取不同的数据库表

Java来读取不同的数据库表,java,mysql,sql,database,Java,Mysql,Sql,Database,我尝试使用Java代码接收表的内容。这是基本代码,我有一个问题。我需要的代码是灵活的,以便它可以读取不同的表(不同数量的行/列等)。我希望while循环打印特定表中的所有列 public class Main1 { public static void main(String[] args) throws Exception { Class.forName("org.gjt.mm.mysql.Driver"); Connection conn = D

我尝试使用Java代码接收表的内容。这是基本代码,我有一个问题。我需要的代码是灵活的,以便它可以读取不同的表(不同数量的行/列等)。我希望while循环打印特定表中的所有列

public class Main1 {
      public static void main(String[] args) throws Exception {
        Class.forName("org.gjt.mm.mysql.Driver");

        Connection conn = DriverManager.getConnection(
            "jdbc:mysql:address", "root", "");

        String SQL = "select * from users";
        ResultSet rs = Statement.executeQuery();
          ResultSetMetaData rsmd = rs.getMetaData();
          System.out.println("querying SELECT * FROM users");
          int columnsNumber = rsmd.getColumnCount();
          while (rs.next()) {
              for (int i = 1; i <= columnsNumber; i++) {
                  if (i > 1) System.out.print(",  ");
                  String columnValue = rs.getString(i);
                  System.out.print(columnValue + " " + rsmd.getColumnName(i));
              }
              System.out.println("");
          }

        }
      }
公共类main 1{
公共静态void main(字符串[]args)引发异常{
Class.forName(“org.gjt.mm.mysql.Driver”);
连接连接=DriverManager.getConnection(
“jdbc:mysql:address”、“root”和“);
String SQL=“选择*来自用户”;
ResultSet rs=语句。executeQuery();
ResultSetMetaData rsmd=rs.getMetaData();
System.out.println(“从用户查询选择*);
int columnsumber=rsmd.getColumnCount();
while(rs.next()){
对于(inti=1;i1)系统输出打印(“,”;
String columnValue=rs.getString(i);
System.out.print(columnValue+“”+rsmd.getColumnName(i));
}
System.out.println(“”);
}
}
}

好的,您最好使用
PreparedStatement

考虑

PreparedStatement ps = conn.prepareStatement (SQL);
rs = ps.executeQuery ();

那么到底出了什么问题?我打算放弃读心术的工作,我只是不擅长伊萨哈,对不起,我没有具体说明问题。行“ResultSet rs=Statement.executeQuery();”显然不正确。然后,我质疑是否有更好更有效的方法来满足我的需求。效果很好!剩下的我都写了,但还有一个问题。“String SQL=“select*from”+tablename;“(其中tablename)是用户在命令行中给定的字符串。这超出了报价范围,无法正常工作。我需要能够选择表格,因此,我需要能够以这种方式选择表格。