InsertMenuForVue3.java 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.PreparedStatement;
  4. import java.sql.SQLException;
  5. import java.sql.Timestamp;
  6. import java.time.LocalDateTime;
  7. public class InsertMenuForVue3 {
  8. public static void main(String[] args) {
  9. // 数据库连接信息
  10. String url = "jdbc:dm://192.168.0.145:30236";
  11. String username = "WATERSHED";
  12. String password = "WaterShed./1224";
  13. // 加载驱动
  14. try {
  15. Class.forName("dm.jdbc.driver.DmDriver");
  16. } catch (ClassNotFoundException e) {
  17. System.out.println("Failed to load Dameng driver: " + e.getMessage());
  18. return;
  19. }
  20. Connection conn = null;
  21. PreparedStatement pstmt = null;
  22. try {
  23. // 建立连接
  24. conn = DriverManager.getConnection(url, username, password);
  25. System.out.println("Connected to Dameng database successfully!");
  26. // 设置事务为手动提交
  27. conn.setAutoCommit(false);
  28. // 1. 插入流域管理主菜单(目录)
  29. String insertMainMenuSql = "INSERT INTO SYS_MENU (MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_TIME, UPDATE_TIME) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
  30. pstmt = conn.prepareStatement(insertMainMenuSql, PreparedStatement.RETURN_GENERATED_KEYS);
  31. LocalDateTime now = LocalDateTime.now();
  32. Timestamp timestamp = Timestamp.valueOf(now);
  33. pstmt.setString(1, "流域管理");
  34. pstmt.setLong(2, 0L); // 父菜单ID,0表示根目录
  35. pstmt.setInt(3, 100); // 排序号
  36. pstmt.setString(4, "/watershed"); // 路由地址
  37. pstmt.setString(5, "Layout"); // 组件路径,目录使用Layout
  38. pstmt.setString(6, "Watershed"); // 路由名称
  39. pstmt.setString(7, "1"); // 是否为外链,1否
  40. pstmt.setString(8, "1"); // 是否缓存,1不缓存
  41. pstmt.setString(9, "M"); // 类型,M目录
  42. pstmt.setString(10, "0"); // 显示状态,0显示
  43. pstmt.setString(11, "0"); // 菜单状态,0正常
  44. pstmt.setString(12, ""); // 权限字符串
  45. pstmt.setString(13, "water"); // 菜单图标
  46. pstmt.setTimestamp(14, timestamp);
  47. pstmt.setTimestamp(15, timestamp);
  48. int mainRowsAffected = pstmt.executeUpdate();
  49. System.out.println("Inserted main menu rows: " + mainRowsAffected);
  50. // 获取生成的主菜单ID
  51. java.sql.ResultSet generatedKeys = pstmt.getGeneratedKeys();
  52. Long mainMenuId = null;
  53. if (generatedKeys.next()) {
  54. mainMenuId = generatedKeys.getLong(1);
  55. System.out.println("Generated main menu ID: " + mainMenuId);
  56. }
  57. // 关闭当前PreparedStatement
  58. pstmt.close();
  59. // 2. 插入流域管理子菜单 - 流域管理首页
  60. String insertIndexMenuSql = "INSERT INTO SYS_MENU (MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_TIME, UPDATE_TIME) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
  61. pstmt = conn.prepareStatement(insertIndexMenuSql);
  62. pstmt.setString(1, "流域管理首页");
  63. pstmt.setLong(2, mainMenuId); // 父菜单ID,指向主菜单
  64. pstmt.setInt(3, 101); // 排序号
  65. pstmt.setString(4, "index"); // 路由地址
  66. pstmt.setString(5, "watershed/index"); // 组件路径
  67. pstmt.setString(6, "WatershedIndex"); // 路由名称
  68. pstmt.setString(7, "1"); // 是否为外链,1否
  69. pstmt.setString(8, "1"); // 是否缓存,1不缓存
  70. pstmt.setString(9, "C"); // 类型,C菜单
  71. pstmt.setString(10, "0"); // 显示状态,0显示
  72. pstmt.setString(11, "0"); // 菜单状态,0正常
  73. pstmt.setString(12, ""); // 权限字符串
  74. pstmt.setString(13, "water"); // 菜单图标
  75. pstmt.setTimestamp(14, timestamp);
  76. pstmt.setTimestamp(15, timestamp);
  77. int indexRowsAffected = pstmt.executeUpdate();
  78. System.out.println("Inserted index menu rows: " + indexRowsAffected);
  79. // 关闭当前PreparedStatement
  80. pstmt.close();
  81. // 3. 插入流域管理子菜单 - 水文水资源管理
  82. String insertHydrologicalMenuSql = "INSERT INTO SYS_MENU (MENU_NAME, PARENT_ID, ORDER_NUM, PATH, COMPONENT, ROUTE_NAME, IS_FRAME, IS_CACHE, MENU_TYPE, VISIBLE, STATUS, PERMS, ICON, CREATE_TIME, UPDATE_TIME) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
  83. pstmt = conn.prepareStatement(insertHydrologicalMenuSql);
  84. pstmt.setString(1, "水文水资源管理");
  85. pstmt.setLong(2, mainMenuId); // 父菜单ID,指向主菜单
  86. pstmt.setInt(3, 102); // 排序号
  87. pstmt.setString(4, "hydrological"); // 路由地址
  88. pstmt.setString(5, "watershed/hydrological/index"); // 组件路径
  89. pstmt.setString(6, "Hydrological"); // 路由名称
  90. pstmt.setString(7, "1"); // 是否为外链,1否
  91. pstmt.setString(8, "1"); // 是否缓存,1不缓存
  92. pstmt.setString(9, "C"); // 类型,C菜单
  93. pstmt.setString(10, "0"); // 显示状态,0显示
  94. pstmt.setString(11, "0"); // 菜单状态,0正常
  95. pstmt.setString(12, ""); // 权限字符串
  96. pstmt.setString(13, "hydrological"); // 菜单图标
  97. pstmt.setTimestamp(14, timestamp);
  98. pstmt.setTimestamp(15, timestamp);
  99. int hydrologicalRowsAffected = pstmt.executeUpdate();
  100. System.out.println("Inserted hydrological menu rows: " + hydrologicalRowsAffected);
  101. // 提交事务
  102. conn.commit();
  103. System.out.println("Menu insertion completed successfully!");
  104. } catch (SQLException e) {
  105. System.out.println("SQL Exception: " + e.getMessage());
  106. // 回滚事务
  107. if (conn != null) {
  108. try {
  109. conn.rollback();
  110. System.out.println("Transaction rolled back due to error.");
  111. } catch (SQLException rollbackEx) {
  112. System.out.println("Failed to rollback transaction: " + rollbackEx.getMessage());
  113. }
  114. }
  115. } finally {
  116. // 关闭资源
  117. try {
  118. if (pstmt != null) pstmt.close();
  119. if (conn != null) conn.close();
  120. System.out.println("Database connection closed.");
  121. } catch (SQLException e) {
  122. System.out.println("Failed to close resources: " + e.getMessage());
  123. }
  124. }
  125. }
  126. }