JDBC
数据库驱动
程序通过数据库驱动和数据库联系
SUN公司为了简化开发人员(对数据库的统一)操作,提供了一个(Java操作数据库的)规范,俗称JDBC ,这些规范的实现由具体的厂商实现
对开发人员来说只需要掌握JDBC接口的操作即可
第一个JDBC程序
需要的包
java.sql
javax.sql
还需要导入一个数据库驱动的包 mysql-connector-java-5.1.47.jar
下载数据库驱动的包
https://dev.mysql.com/downloads/connector/j/
新建一个lib,将mysql-connector-java-5.1.47.jar复制过去,并且 Add as Library(点击一下)
编写测试代码
package com.wang.test01;
import java.sql.*;
//第一个JDBC程序
public class JdbcFirstDemo {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// 加载驱动
Class.forName("com.mysql.cj.jdbc.Driver"); // 固定写法,加载驱动
//用户信息和url
//useUnicode=true&characterEncoding=utf8&useSSL=true
String url = "jdbc:mysql://localhost:3306/school?useUnicode=true&characterEncoding=utf8&useSSL=true";
String username = "root";
String password = "123456";
//连接成功 数据库对象 Connection 代表数据库
Connection connection = DriverManager.getConnection(url, username, password);
//执行SQL的对象 Statement 执行sql的对象
Statement statement = connection.createStatement();
// 执行SQL的对象 去 执行SQL 可能存在的结果 查看返回结果
String sql = "select * from student";
ResultSet resultSet = statement.executeQuery(sql); // 返回的结果集,结果集中封装了我们全部的查询的结果
while(resultSet.next()){
System.out.println(resultSet.getObject("id"));
System.out.println(resultSet.getObject("name"));
}
// 释放连接
resultSet.close();
statement.close();
connection.close();
}
}
/*实验结果
F:\code\java\jdbc\target\classes;F:\code\java\jdbc\lib\mysql-connector-j-8.3.0.jar com.wang.test01.JdbcFirstDemo
1
ww
2
wl
*/
步骤总结:
加载驱动 、 连接数据库DriverManager 、获得执行sql的对象Statement 、 获得返回的结果集、 释放连接
出现的问题
-
出现的问题 (来自 https://blog.csdn.net/qq_41943867/article/details/90574135)
Loading class
com.mysql.jdbc.Driver'. This is deprecated. The new driver class is
com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.5.x版本的驱动文件jar包对应的是: Class.forName("com.mysql.jdbc.Driver"); 语句来加载数据库驱动 而我使用的是8.0x版本的数据库驱动文件,对此,需要将加载数据库驱动的语句更改为: Class.forName("com.mysql.cj.jdbc.Driver"); 除此之外: url的设置也得进行修改,原本的url如下: String ur="jdbc:mysql://127.0.0.1:3306/student"; 应修改为如下:String url="jdbc:mysql://127.0.0.1:3306/student?useUnicode=true&characterEncoding=UTF-8&userSSL=false&serverTimezone=GMT%2B8";
对JDBC中对象的解释
DriverManager
//DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
Class.forName("com.mysql.cj.jdbc.Driver"); // 固定写法,加载驱动
Connection connection = DriverManager.getConnection(url, username, password);
// connection 代表数据库
// 数据库设置自动提交
// 事务提交
// 事务回滚
connection.rollback();
connection.commit();
connection.setAutoCommit();
URL
String url = "jdbc:mysql://localhost:3306/school?useUnicode=true&characterEncoding=utf8&useSSL=true";
//mysql默认是3306
//jdbc:mysql://主机地址:3306/数据库名?参数1&参数2&参数3
//oralca 默认端口是1521
//jdbc:oracle:thin@localhost:1521:sid
Statement 执行SQL 的对象
String sql = "select * from student";//编写SQL
statement.executeQuery();// 查询操作,返回ResultSet
statement.execute(); //执行任何的SQL
statement.executeUpdate();// 更新、插入、删除 都是用这个,返回的是一个受影响的行数
ResultSet 结果集对象(封装了所有的查询结果)
获取指定的数据类型
resultSet.getObject();//在不知道列的类型的情况下使用
resultSet.getInt();
resultSet.getString();
....
释放资源(必须)
// 释放连接
resultSet.close();
statement.close();
connection.close();// 耗资源 ,用完关闭
标签:jdbc,第一个,resultSet,数据库,程序,JDBC,mysql,com,String
From: https://www.cnblogs.com/shijili/p/18028201