Java来读取不同的数据库表
我尝试使用Java代码接收表的内容。这是基本代码,我有一个问题。我需要的代码是灵活的,以便它可以读取不同的表(不同数量的行/列等)。我希望while循环打印特定表中的所有列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
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)是用户在命令行中给定的字符串。这超出了报价范围,无法正常工作。我需要能够选择表格,因此,我需要能够以这种方式选择表格。