应数据库课程作业要求,用Java编写了一个简单的图形界面化数据库查询程序,实际用于数据库编程的时间并不多,大部分时间都在做界面开发了。下面就分享一下开发经历和其中的一些坑。
环境配置
1. 数据库服务器操作系统: Windows10(把自己的笔记本当做数据库服务器,然后用数据库客户端连接localhost)
2. 数据库服务器: MySQL 8.0.13
3. 图形界面框架: Java Swing(jdk1.8)
4. JDBC: mysql-connector-java-8.0.12.jar
环境配置中的坑主要在于MySQL的安装。安装过程我主要参考的是菜鸟教程 | MySQL 安装。
- 首先要注意的是安装需要以管理员身份运行命令行工具。
- 然后要特别注意MySQL 5.7以后的版本下载下来如果有data目录的话,要删掉原来的data目录(如果没有data目录就不用删了),然后在命令行工具中执行下面的命令,该命令会自动生成data目录以及其中的文件。
mysqld --initialize-inseure
- 安装完成后,可以为mysql配置环境变量,这样任何地方的cmd都能进入mysql,进入命令为
mysql -u <USERNAME> -p
然后按要求输入密码即可。
- 以管理员身份运行CMD命令提示符中输入net start mysql开启mysql服务,输入net stop mysql关闭mysql服务
- 进入mysql后,作为测试,可以输入"SELECT Version();"查看mysql版本(注意SQL命令后面都需要跟分号;)
数据库编程
以下例子比较完整的展示了Java数据库编程的要点:
package testsql;
import java.sql.*;
public class Test {
static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; // jdbc driver name
static final String DB_URL =
"jdbc:mysql://localhost:3306/DATABASE_HOMEWORK?useSSL=false&serverTimezone=UTC";
// url = jdbc:mysql://$IP:$PORT/$DATABASENAME?useSSL=false&serverTimezone=UTC (for connector-java-8.0)
static final String USER = "root"; // mysql username
static final String PASS = ""; // mysql password
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
// register jdbc driver
Class.forName(JDBC_DRIVER);
// open connection
System.out.println("Connecting database...");
conn =