启动MySQL数据库服务
网络课堂中共享的MySQL 5.1压缩包下载后,直接在C盘根目录下解压后, 进入bin目录,执行“启动服务.cmd”即可启动服务器(如果未放在C盘根目 录下,需要修改配置文件my.ini和启动服务.cmd)。 注意:使用MySQL期间不可关闭本窗口。可使用Ctrl+C关闭MySQL服务器。
如果启动时提示端口已经被占用(例如开机后自动启动了MySQL 8),可修改my.ini文件中的端口配置,由3306改为其它空闲的端口号。
root用户
MySQL数据库服务器启动后, MySQL默认授权可以访问该服务 器的用户只有一个,名字是root,密码为空。
应用程序以及MySQL客户端管理工具软件,都必须借助MySQL 授权的“用户”来访问数据库服务器。
MySQL数据库服务器启动后,不仅可以用root用户访问数据库服 务器,而且可以再授权能访问数据库服务器的新用户(只有root 用户有权利建立新的用户)。
MySQL客户端管理工具
Navicat for MySQL:可以在搜索引擎搜索Navicat for MySQL或登录: http://www.navicat.com.cn/download下载试用版或购买商业版,例如 下载navicat112_mysql_cs_x64.exe安装即可 (温馨提示:可以到网络课堂下载一个可用版)
启动navicat for MySQL 出现主界面。
在navicat for MySQL中点击连接,输入信息后确定
在连接名处右击,创建新数据库,输入数据库名,字符集和校对均选择gb2312...
如果在mysql里输入语句创建数据库 ,则会显示已存在数据库EDUC。我是在mysql里创建的。
但是,想插入数据时,却发现出现了中文编码的问题。
在网上试了几个,发现这个链接的可以帮助我。
ERROR 1366 (HY000): Incorrect string value: '\xC5\xAE' for column 'sex' at row 1
JDBC
Java提供了专门用于操作数据库的API,即JDBC (Java DataBase Connection)。JDBC操作不同的数据库仅仅是连接方式上的差 异而已,使用JDBC的应用程序一旦和数据库建立连接,就可以 使用JDBC提供的API操作数据库。
➢ 程序经常使用JDBC进行如下的操作 :
(1)与一个数据库建立连接。
(2)向数据库发送SQL语句。
(3)处理数据库返回的结果。
连接MySQL数据库
MySQL数据库服务器启动后,应用程序为了能和数据库交互 信息,必须首先和MySQL数据库服务器上的数据库建立连接。 目前常用的连接数据库的方式是加载JDBC-数据库驱动(连接 器,即调用本地的JDBC-数据库驱动和相应的数据库建立连接。 Java运行环境将JDBC-数据库驱动转换为DBMS所使用的专用 协议来实现和特定的DBMS交互信息。
1.下载JDBC-MySQL数据库驱动
教材下载的是mysql-connector-java-5.1.40.zip,将该zip文件解压至硬盘, 在解压后的目录下的mysql-connector-java-5.1.40-bin.jar文件就是连接 MySQL数据库的JDBC-数据库驱动。将该驱动复制到JDK的扩展目录中, 比如:E:\jdk1.8\jre\lib\ext。
2.加载JDBC-MySQL数据库驱动
应用程序负责加载的JDBC-MySQL数据库驱动,代码如下:
try{ Class.forName("com.mysql.jdbc.Driver"); } catch(Exception e){ }
MySQL数据库驱动被封装在Driver类中,该类的包名是 com.mysql.jdbc,该类不是Java运行环境类库中的类,所以需要放 置在jre的扩展中
3.连接数据库
应用程序要和MySQL数据库服务器管理的数据库students(在11.3节建 立的数据库)建立连接,而有权访问数据库students的用户的id和密码分别是root和空,那么使用 Connection getConnection(java.lang.String) 方法建立连接的代码如下:
Connection con;
String uri = "jdbc:mysql://192.168.100.1:3306/students?user=root&password=&useSSL=true"; try{
con = DriverManager.getConnection(uri); //连接代码
} catch(SQLException e)
{
System.out.println(e);
}
如果root用户密码是99,将&password=更改为&password=99即可
使用 Connection getConnection(java.lang.String, java.lang.String, java.lang.String) 方法建立连接的代码如下:
Connection con;
String uri = "jdbc:mysql:// 192.168.100.1:3306/students? useSSL=true"; String user ="root"; String password ="";
try{ con = DriverManager.getConnection(uri,user,password); //连接代码
} catch(SQLException e){
System.out.println(e);
}
4.注意汉字问题
需要特别注意的是,如果数据库的表中的记录有汉字,那么在建立 连接时需要额外多传递一个参数characterEncoding,并取值gb2312或 utf-8
String uri = "jdbc:mysql://localhost/students?useSSL=true&characterEncoding=utf-8";
con = DriverManager.getConnection(uri, "root",""); //连接代码
查 询 操 作
查询操作的具体步骤如下
1.得到SQL查询语句对象
try{ Statement sql=con.createStatement(); } catch(SQLException e ){}
2.处理查询结果
有了SQL语句对象后,这个对象就可以调用相应的方法实现对数据库中表的查询和修改,并将查询结果存放在一个ResultSet类声明的对象中。也就是说 SQL查询语句对数据库的查询操作将返回一个ResultSet对象,ResultSet对象 是按“列”(字段)组织的数据行构成。
ResultSet rs = sql.executeQuery("SELECT * FROM students");
结果集rs的列数是4列,刚好和students的列数相同
对于
ResultSet rs = sql.executeQuery("SELECT sname, ssex FROM students");
内存的结果集对象rs列数只有两列,第一列是sname列,第2列是ssex列
ResultSet对象一次只能看到一个数据行,使用next()方法移到下一个数 据行,获得一行数据后,ResultSet对象可以使用getXxx方法获得字段 值(列值),将位置索引(第一列使用1,第二列使用2等)或列名传 递给getXxx方法的参数即可。表11.1给出了ResultSet对象的若干方法。
无论字段是何种属性,总可以使用 getString(int columnIndex)或 getString(String columnName) 方法返回字段值的字符串表示
3.关闭连接
ResultSet对象和数据库连接对象(Connection对象)实现了紧密的绑定,一旦连接对象被关闭,ResultSet对象中的数据立刻消失。这 就意味着,应用程序在使用ResultSet对象中的数据时,就必须始终保持和数据库的连接,直到应用程序将ResultSet对象中的数据查看完毕。
如果在代码
ResultSet rs = sql.executeQuery("SELECT sname, ssex FROM students");
之后立刻关闭连接 con.close();
程序将无法获取rs中的数据