"开发常见问题记录"
这篇文档记录了一些开发者在日常工作中可能遇到的问题及其解决方案,涉及了数据库操作、版本控制、编码问题以及系统管理等多个方面。以下是对这些问题的详细说明:
1. JPA事务问题:在使用Java Persistence API (JPA) 进行开发时,如果在一段代码中多次获取数据库查询结果,可能会遇到事务关闭导致无法保存数据的问题。这是因为在第一次获取结果集后,JPA默认会关闭事务,第二次尝试操作时,事务已经结束。为解决这个问题,开发者需要正确管理和配置事务边界,确保在需要的地方开启和关闭事务。
2. 导出CSV文件中文乱码:当使用Navicat从MySQL数据库导出CSV文件后,打开时可能出现中文乱码。解决方法是将导出的CSV文件用支持UTF-8编码的编辑器(如记事本)打开,然后重新另存为UTF-8编码的文件。这样就可以正确显示中文字符。
3. Git项目上传流程:要在Git上新建并上传项目,首先在Git服务器上创建新的项目,然后在本地使用`git init`初始化仓库,接着通过`git add.`将所有文件添加到仓库,`git commit -m "提交信息"`进行首次提交。接下来,使用`git remote add origin git远程仓库地址`关联远程仓库,执行`git pull`拉取远程代码,再用`git push`将本地更改推送到远程仓库。删除远程分支使用`git push origin --delete 远程分支名`,本地分支则用`git branch -D 分支名`删除。如果在拉取远程代码时遇到`fatal: refusing to merge unrelated histories`错误,可以使用`git pull origin master --allow-unrelated-histories`解决。
4. 数据库连接问题:在建立MySQL数据库连接时,如果日志出现“Establishing SSL connection without server's identity verification is not recommended”警告,意味着数据库不推荐在没有身份验证的情况下使用SSL连接。解决方法是在数据库URL中添加`useSSL=false`参数,例如`jdbc:mysql://172.1.10.24:3306/gmms_finance?useUnicode=true&characterEncoding=utf-8&useSSL=false`,这样数据库将以非SSL模式连接。
5. 系统及命令行工具使用:在Linux或类Unix系统中,可以通过`/proc/6586/exe`查看对应PID(6586)的进程目录,`whoami`用来查看当前登录用户,`su-`用于切换普通用户到root用户,`exit`退出当前用户。查看文件内容时,`cat test.log | head -n 200`显示文件前200行,`cat test.log | tail -n 200`显示文件最后200行。
这些记录涵盖了开发过程中可能遇到的典型问题,对开发者来说是非常实用的参考资料,有助于解决日常开发中的各种技术难题。