JDBC数据库操作

启动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中的数据

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值