JDBC数据库编程学习环境搭建

一、需求

面向对象程序设计课程学习中,使用Java教材有一章是介绍数据库编程的,很多同学在编写测试代码后,发现很多数据库环境方面的问题。

1. 实践教学环境基本需求

  • 安装配置简单,软件文件尺寸不能太大,便于网络分发。
  • 能够支持典型的数据库应用和技术的实训实验。
  • 对各类编程语言的接口驱动完整,学习资料丰富。

本文提出了基于mini-server软件的数据库环境的配置方案。

mini-server是基于 5.0.67-community-nt MySQL Community Edition (GPL) 版本的服务器软件,具有体积小,安装配置方便等优点。完整安装MySQL数据库需要500MB左右,而mini-server安装包只需要4MB,且保留了MySQL数据库引擎和常见功能,完全满足一般的教学使用。

2. 本文中安装配置主要内容

  • mini-server安装及其在Windows操作系统中常见问题。
  • 数据库中文支持配置
  • Java JDBC 中文支持配置
  • 其他注意事项

二、软件及系统环境

本次安装配置的操作系统环境为Windows11,命令行操作使用系统自带Windows Terminal。

  • MySQL服务器软件:mini server(MySQL)
  • JDBC连接库:mysql-connector-java-5.1.49.jar
  • 数据库默认root用户密码为root

注意:mini Server中MySQL版本是5.0.67,因此需要下载的connector是5.x版本,高版本不适合。

三、安装配置

1.安装

从以上的链接分别下载需要的2个文件。

  • 将mini_server_11.zip文件解压缩,为了避免Windows的很多权限问题,可以直接将整个文件夹解压缩到桌面上。
  • 将mysql-connector-java-5.1.49.jar文件可以保存到程序可以访问的任意位置,比如本文将其保存在C:\Program Files\Java\jdbc-drivers\mysql-connector-java-5.1.49.jar位置。

2.配置

mini-server可以通过修改udrive文件夹中的my.cnf配置文件。这里全部使用默认参数即可。

四、测试

1.连接数据库

  • 启动和关闭数据库引擎

mini-server软件的安装目录中包含了mysql_start.bat和mysql_stop.bat两个脚本,分别对应启动和关闭数据库引擎服务。通过双击以上脚本可以实现对数据库引擎的启动和关闭。第一次启动数据库时,如果操作系统开启了自带的防火墙,会要求允许服务器进程对网络的访问,需要设置为允许!

mini-server软件启动后会开启多个终端控制台窗口,直接关闭所有窗口不一定能关闭服务器进程,因此需要双击mysql_stop.bat脚本执行数据库停止操作。

注意: Windows版本的不同造成启动后的界面有所不同,本实验测试环境是Windows 11,使用Windows Terminal作为系统默认终端。

JDBC数据库编程学习环境搭建_第1张图片

  • 使用Windows Terminal连接

双击启动脚本后会打开3个控制台窗口,如果系统环境不同可能略有不同,请参考以下情况处理。

  1. 服务运行程序窗口。

JDBC数据库编程学习环境搭建_第2张图片

  1. 虚拟客户端窗口,包含了mysql.exe等客户端工具软件环境,以下界面中是启动后的内容,包含了常见的操作帮助信息。包括使用mysqladmin工具对数据库的用户和密码的管理等操作。

JDBC数据库编程学习环境搭建_第3张图片

  1. 数据库信息窗口,显示了数据库端口号以及本地虚拟的文件路径。
    JDBC数据库编程学习环境搭建_第4张图片

以上三个窗口中,除了最后一个窗口可以关闭外,第一个窗口是服务程序程序窗口,第二个是用于命令行访问的控制台窗口,在其中输入以下命令可以连接MySQL进行操作。

mysql --user=root --password=root --default-character-set=gbk

以上连接中使用了默认的root用户名,密码也是root。

2.新建数据库

  • 新建数据库

以下sql语句建立test数据库,并设置默认中文编码为gbk。

mysql> create database test DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;  
  • 新建表
mysql> use test
Database changed                                                                       
mysql> create table users( uid int primary key, uname varchar(10), uphone varchar(12));
Query OK, 0 rows affected (0.02 sec)       
  • 插入数据及查询
mysql> insert into users values(1, '无糖咖啡', '13912973300');
Query OK, 1 row affected (0.01 sec)
mysql> select * from users;
+-----+----------+-------------+
| uid | uname    | uphone      |
+-----+----------+-------------+
|   1 | 无糖咖啡 | 13912973300 |
+-----+----------+-------------+
1 row in set (0.00 sec)     

3.使用Java对数据库操作

  • 数据库连接

以下代码建立url变量存储了连接到本地的test数据库的连接字符串,characterEncoding指定了gbk中文编码。

String url = "jdbc:mysql://127.0.0.1:3311/test?characterEncoding=gbk";
  • 基本增删改查

新建rabbit.java源程序如下:

import java.sql.*;

public class rabbit{
    public static void main (String [] args)
    {
        System.out.println("MySQL数据库测试");
               
        String url = "jdbc:mysql://127.0.0.1:3311/test?characterEncoding=gbk";
        String sql_select = "select * from users";
        String sql_insert = "insert into users values(2, '太阳花', '18951652150')";
        try{
            Connection conn = DriverManager.getConnection(url, "root", "root");
            Statement stmt = conn.createStatement();
            
            ResultSet rst = stmt.executeQuery(sql_select);
            while(rst.next())
                System.out.println(rst.getInt(1)+ "\t" + rst.getString(2) + "\t" + rst.getString(3));
            
            stmt.executeUpdate(sql_insert);//插入一行数据
            
            rst = stmt.executeQuery(sql_select);
            while(rst.next())
                System.out.println(rst.getInt(1)+ "\t" + rst.getString(2) + "\t" + rst.getString(3));

        }catch(SQLException se){
           se.printStackTrace();
        }
    }
}

注意:

①源代码使用gbk编码保存。

②编译使用javac.exe $(Path) -encoding gbk命令,$(Path)是java代码文件完整路径。

③运行class文件,需要在其所在目录的命令行中执行

java -cp “.;C:\Program Files\Java\jdbc-drivers\mysql-connector-java-5.1.49.jar rabbit
JDBC数据库编程学习环境搭建_第5张图片

4.中文编码问题小结

以上的环境搭建包括实验代码均采用了gbk编码,也就是Windows Terminal的CP936,GB2312的环境。总结一下需要注意以下几方面:

  • 数据库连接

    直接操作MySQL数据库时,需要指定和数据库连接的编码,例如这里使用mysql命令行客户端连接,使用*–default-character-set=gbk*参数指定了连接编码,如果使用utf8编码,只需将以上参数的gbk进行替换。

  • 数据库默认编码

    一般在新建数据库时,可以通过create database命令的 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci 参数指定数据库的编码和内部排序的编码格式。

    如果使用utf8,请将gbk改成utf8mb4;将gbk_chinese_ci改成utf8mb4_zh_0900_as_cs

  • Java源程序编码及编译

    Java源代码编写可以使用gbk或utf8等,但需要注意的是使用javac编译时,如果时utf8的编码,需要在最后增加**-encoding utf8**参数才能正确编译。

  • 代码运行终端编码

    默认Windows环境下直接使用java命令运行采用的是gbk编码,如果使用utf8,建议首先命令行执行 chcp 65001命令切换一下终端的编码格式。

五、其他注意事项

  1. 所有的软件脚本在运行前必须先解压缩,部分同学习惯于直接双击,很多情况下直接打开压缩包就执行程序,会出现很多错误。

  2. Java的字节码运行时,需要使用java.exe加上“类”名的方式执行,初学者往往会在这里弄错,而使用完整的字节代码文件名。

  3. 在运行程序时,需要指定代码中调用的第三方类库的位置,如果在命令行中运行,比较简单的方式时使用 -cp参数,将类库的路径添加进去。例如本实验中,java -cp ".;C:\Program Files\Java\jdbc-drivers\mysql-connector-java-5.1.49.jar" rabbit,指定了本地路径和包含mysql连接库jar文件路径。

你可能感兴趣的:(教学内容,服务器,java,mysql)