JDBC获取某个表的添加的SQL语句

admin 发布于:2010-01-27 11:51:00
阅读:loading
比较简单。
public void createFile(String path, String content) {
try {
PrintWriter out = new PrintWriter(path);
out.println(content);
out.flush();
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public String loadSqlByTable(String tableName) {
StringBuilder sb = new StringBuilder();
Connection connection = null;
try {
connection = DBConnection.getConnection();
String sql = "select * from " + tableName;
PreparedStatement pst = connection.prepareStatement(sql);
ResultSet rs = pst.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int counts = rsmd.getColumnCount();
while (rs.next()) {
String columns = "";
String values = "";
for (int i = 1; i <= counts; i++) {
if (i == counts) {
columns += rsmd.getColumnName(i);
if ("java.lang.Integer".equals(rsmd.getColumnClassName(i))) {
values += rs.getObject(i);
break;
}
}
String columnType = rsmd.getColumnTypeName(i);
if (columnType.indexOf("identity") != -1) {
continue;
}
columns += rsmd.getColumnName(i) + ",";
if ("java.lang.Integer".equals(rsmd.getColumnClassName(i))) {
values += rs.getObject(i) + ",";
continue;
}
values += "'" + rs.getObject(i) + "',";
}
sb.append("insert into ").append(tableName).append(" (").append(columns).append(")")
.append(" values ( ").append(values).append(");\n");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBConnection.Close(connection);
}
return sb.toString();
}
public static void main(String[] args) {
App t = new App();
String s = t.loadSqlByTable("account");
System.out.println(s);
}
这个方法是把生成的SQL语句写入文件中,可以直接打印出来,前提如果数据库中的数据量多,eclipse的控制台输出的只是一部分了,后面的会把前台的给替换掉。
方法其实比较简单的。就不详细的描述了。
点赞