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


placeholder image
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 <= countsi++) {

                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的控制台输出的只是一部分了,后面的会把前台的给替换掉。

方法其实比较简单的。就不详细的描述了。

 点赞


 发表评论

当前回复:作者

 评论列表


留言区