活动介绍

DocSys系统开发问题记录1

preview
需积分: 0 2 下载量 56 浏览量 更新于2022-08-08 收藏 282KB DOCX 举报
### DocSys系统开发问题记录1 #### 插入记录并获取新增记录的ID 在进行数据库操作时,尤其是在使用JDBC进行数据插入操作后,如何有效地获取新插入记录的ID是一个常见的需求。JDBC默认情况下,`insert`, `update`, `delete`等操作的返回值表示的是受影响的行数,并不能直接返回新插入记录的ID。针对这一需求,有两种常用的方法: 1. **利用`INSERT INTO … RETURNING`语法**: - 对于支持`RETURNING`语法的数据库(如PostgreSQL),可以在插入语句后面添加`RETURNING`子句,用于返回特定的列值。 - 示例: ```sql INSERT INTO table_name (column1, column2) VALUES (?, ?) RETURNING id; ``` 2. **使用数据库特定的方法或属性**: - 对于不支持`RETURNING`语法的数据库(如MySQL),可以通过查询自增主键的最后值(如`LAST_INSERT_ID()`)来获取新插入记录的ID。 - 示例: ```java Statement stmt = conn.createStatement(); stmt.executeUpdate("INSERT INTO table_name (column1, column2) VALUES (?, ?)"); ResultSet rs = stmt.executeQuery("SELECT LAST_INSERT_ID()"); if (rs.next()) { long id = rs.getLong(1); System.out.println("New ID: " + id); } ``` #### 解决Qiao.bs.dialog无法第二次打开的问题 在使用`dialog.bs.dialog`组件时遇到的一个常见问题是无法第二次打开对话框。原因在于该组件加载了一个新的页面内容及JS内容到原页面,虽然对话框关闭时删除了页面内容,但JS内容并未完全清除,这可能导致重复定义相同函数的问题,从而引起冲突。 - **解决策略**: - 在关闭对话框时确保所有与对话框相关的JS内容也被清理干净。 - 如果是因为浏览器缓存导致的问题,可以通过禁用浏览器缓存或强制刷新页面来解决。 - 优化组件设计,避免在同一个页面多次加载相同功能的JS代码。 #### mybatis-generator的使用方法 mybatis-generator是一个强大的工具,用于根据数据库表结构自动生成MyBatis所需的Mapper接口、实体类以及XML映射文件。这对于提高开发效率非常有帮助。 - **步骤**: 1. 确保`Docs\mybatis-generator\generator-1.3.2`目录已准备好。 2. 运行`go.bat`脚本。 3. 此脚本会更新`src\com\DocSystem`下的dao、entity、mapping目录中的文件。 - **注意事项**: - 脚本生成的内容会覆盖用户自定义的代码部分。因此,在运行脚本后,需要手动恢复这些部分。 - 更新`mapping`目录下的文件时,通常会先插入新生成的内容,然后是旧的内容(这部分需要删除),最后是用户自定义的内容(这部分需要根据修改的字段手动调整)。 #### 处理svnkit中的addFile方法错误 在使用svnkit的`addFile`方法实现`rename`, `move`, `copy`等功能时,可能会遇到错误。例如,当仓库类型为FSFS格式时,使用`addFile`进行`svnCopy`操作可能存在异常。 - **解决方案**: - 确认`copyFromRevision`参数是否正确设置。若设置为最新版本(latestRevision),则可能出现其他类型的错误。 - 考虑使用更高级别的接口(High Level Interface)尝试复制操作,以此作为参考来解决问题。 #### 数据库类型与JAVA类型之间的映射 在处理数据库与Java应用之间的交互时,理解不同类型之间的映射非常重要。例如,数据库中的`BIGINT`类型在Java中通常对应为`Long`类型。这种映射有助于确保数据在不同层之间传输时的准确性与一致性。 无论是处理基本的数据插入与查询操作,还是涉及复杂框架配置与第三方库使用的场景,都需要注意细节处理与最佳实践的应用,以确保系统的稳定性和可维护性。
身份认证 购VIP最低享 7 折!
30元优惠券