FixEncodingFinal.java 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.Statement;
  4. import java.sql.SQLException;
  5. public class FixEncodingFinal {
  6. public static void main(String[] args) {
  7. // Database connection information
  8. String url = "jdbc:dm://192.168.0.145:30236?charset=utf8"; // Force UTF-8
  9. String username = "WATERSHED"; // All uppercase username
  10. String password = "WaterShed./1224";
  11. Connection conn = null;
  12. Statement stmt = null;
  13. try {
  14. // Load driver
  15. Class.forName("dm.jdbc.driver.DmDriver");
  16. // Establish connection
  17. System.out.println("Connecting to database...");
  18. conn = DriverManager.getConnection(url, username, password);
  19. stmt = conn.createStatement();
  20. // Use basic English SQL statements to avoid encoding issues
  21. System.out.println("Setting UTF-8 encoding...");
  22. stmt.executeUpdate("SET CLIENT_ENCODING TO 'UTF8'");
  23. // Drop existing table if exists
  24. System.out.println("Dropping existing table...");
  25. stmt.executeUpdate("DROP TABLE IF EXISTS PROJECT");
  26. // Create table with simple English column names
  27. System.out.println("Creating table with simple English columns...");
  28. String createTable = "CREATE TABLE PROJECT (" +
  29. "project_id BIGINT NOT NULL IDENTITY(1,1), " +
  30. "project_name VARCHAR(100) NOT NULL, " +
  31. "project_category VARCHAR(50) NOT NULL, " +
  32. "project_subcategory VARCHAR(50) NOT NULL, " +
  33. "project_description VARCHAR(500), " +
  34. "project_url VARCHAR(255), " +
  35. "status CHAR(1) DEFAULT '0', " +
  36. "create_by VARCHAR(64) DEFAULT '', " +
  37. "create_time DATETIME, " +
  38. "update_by VARCHAR(64) DEFAULT '', " +
  39. "update_time DATETIME, " +
  40. "remark VARCHAR(500), " +
  41. "PRIMARY KEY (project_id)" +
  42. ")";
  43. stmt.executeUpdate(createTable);
  44. // Add constraint
  45. System.out.println("Adding constraint...");
  46. stmt.executeUpdate("ALTER TABLE PROJECT ADD CONSTRAINT project_status_check CHECK (status IN ('0','1','2'))");
  47. // Insert data using basic INSERT statements
  48. System.out.println("Inserting data...");
  49. // Insert project 1
  50. stmt.executeUpdate("INSERT INTO PROJECT (project_name, project_category, project_subcategory, project_description, status, create_by, create_time, update_by, update_time) VALUES ('数字孪生太浦河', '数字孪生', '数字孪生太浦河', '基于数字孪生技术的太浦河流域综合管理平台,实现河流监测、模拟预测与智能调度', '0', 'admin', '2024-06-15 00:00:00', 'admin', '2024-06-15 00:00:00')");
  51. // Insert project 2
  52. stmt.executeUpdate("INSERT INTO PROJECT (project_name, project_category, project_subcategory, project_description, status, create_by, create_time, update_by, update_time) VALUES ('数字孪生太浦闸', '数字孪生', '数字孪生太浦河', '基于数字孪生技术的太浦闸智能监控系统,实现闸门运行状态实时监测与调度控制', '0', 'admin', '2024-06-20 00:00:00', 'admin', '2024-06-20 00:00:00')");
  53. // Insert project 3
  54. stmt.executeUpdate("INSERT INTO PROJECT (project_name, project_category, project_subcategory, project_description, status, create_by, create_time, update_by, update_time) VALUES ('贡湖实验站', '数字孪生', '数字孪生水文站', '实现水文监测站点的数字化映射,提供实时数据可视化与智能分析功能', '0', 'admin', '2024-03-10 00:00:00', 'admin', '2024-03-10 00:00:00')");
  55. // Insert project 4
  56. stmt.executeUpdate("INSERT INTO PROJECT (project_name, project_category, project_subcategory, project_description, status, create_by, create_time, update_by, update_time) VALUES ('太师桥水文站', '数字孪生', '数字孪生水文站', '全流域水文数据采集与传输系统,支持多源数据融合与标准化管理', '0', 'admin', '2024-03-15 00:00:00', 'admin', '2024-03-15 00:00:00')");
  57. // Insert project 5
  58. stmt.executeUpdate("INSERT INTO PROJECT (project_name, project_category, project_subcategory, project_description, status, create_by, create_time, update_by, update_time) VALUES ('铜山源灌区', '数字孪生', '数字孪生灌区', '基于数字孪生技术的灌区水资源优化配置系统,实现精准灌溉与水资源高效利用', '0', 'admin', '2024-04-20 00:00:00', 'admin', '2024-04-20 00:00:00')");
  59. // Insert project 6
  60. stmt.executeUpdate("INSERT INTO PROJECT (project_name, project_category, project_subcategory, project_description, status, create_by, create_time, update_by, update_time) VALUES ('水资源评价调配', '水利信息化', '水资源评价调配', '水资源评价调配模型是宁波智慧水网体系的核心技术支撑', '0', 'admin', '2024-05-10 00:00:00', 'admin', '2024-05-10 00:00:00')");
  61. // Insert project 7
  62. stmt.executeUpdate("INSERT INTO PROJECT (project_name, project_category, project_subcategory, project_description, status, create_by, create_time, update_by, update_time) VALUES ('流域数据采集平台', '水利信息化', '流域数据采集平台', '多参数水质在线监测系统,实现水质指标实时采集、分析与可视化', '0', 'admin', '2024-05-15 00:00:00', 'admin', '2024-05-15 00:00:00')");
  63. // Insert project 8
  64. stmt.executeUpdate("INSERT INTO PROJECT (project_name, project_category, project_subcategory, project_description, status, create_by, create_time, update_by, update_time) VALUES ('千岛湖水资源评价', '水利信息化', '千岛湖水资源评价', '基于多源数据的千岛湖水资源综合评价系统', '0', 'admin', '2024-06-01 00:00:00', 'admin', '2024-06-01 00:00:00')");
  65. System.out.println("\n✅ SUCCESS!");
  66. System.out.println("Table 'PROJECT' created successfully with 8 projects.");
  67. System.out.println("All data should now display correctly without encoding issues.");
  68. System.out.println("\nTable structure:");
  69. System.out.println("- project_id (BIGINT) - Primary key, auto increment");
  70. System.out.println("- project_name (VARCHAR) - Project name");
  71. System.out.println("- project_category (VARCHAR) - Main category");
  72. System.out.println("- project_subcategory (VARCHAR) - Subcategory");
  73. System.out.println("- project_description (VARCHAR) - Description");
  74. System.out.println("- status (CHAR) - Status (0=normal, 1=maintenance, 2=deleted)");
  75. System.out.println("- create_by (VARCHAR) - Created by");
  76. System.out.println("- create_time (DATETIME) - Created time");
  77. System.out.println("- update_by (VARCHAR) - Updated by");
  78. System.out.println("- update_time (DATETIME) - Updated time");
  79. System.out.println("- remark (VARCHAR) - Remark");
  80. } catch (ClassNotFoundException e) {
  81. System.err.println("Driver error: " + e.getMessage());
  82. e.printStackTrace();
  83. } catch (SQLException e) {
  84. System.err.println("SQL error: " + e.getMessage());
  85. e.printStackTrace();
  86. } finally {
  87. // Close connection
  88. try {
  89. if (stmt != null) stmt.close();
  90. if (conn != null) conn.close();
  91. } catch (SQLException e) {
  92. e.printStackTrace();
  93. }
  94. }
  95. }
  96. }