JDBC是什么?
JDBC全名为 Java DataBase Connectivity 是一种用于执行Sql语句的Java API。
JDBC库包括通常与数据库使用相关的下面提到的每个任务的API:
1、连接数据库
2、创建Sql或MySQL语句
3、在数据库中执行sql的语句
4、查看和修改生成的记录
JDBC体系结构通常由两层组成:
-JDBC API:提供了应用程序到JDBC管理器的连接。(JDBC API)
-JDBC驱动程序API:这支持JDBC管理器到驱动程序连接。(JDBC Driver Manager)
Driver Manager: 进行驱动管理,不同的数据库对应不同的驱动
Driver:与数据库连接具体的驱动
Connection:联系数据库的方法,与数据库的所有通信仅通过连接对象
Statement: 用于Sql提交
ResultSet:查询所产生的结果集,传给Java就是用ResultSet储存
SqlException:数据库异常
上方为简单介绍,下面讲述了具体的代码操作,实际步骤:
步骤1:导入JDBC包
在项目下面创建一个lib文件夹,将文件放入到该文件,然后选择File ——>Project Structure
选择放入的jdbc的jar包
步骤2:注册JDBC驱动程序: 将JVM所需要的驱动程序实现加载到内存中
hostname:数据库所在位置的ip
port Number:数据库的端口号
databaseName:数据库名称
RDBMS | JDBC驱动程序名称 | 网址格式 |
Mysql 8 | com.mysql.cj.jdbc.Driver | jdbc:mysql://hostname:3306/databaseName?serverTimezone=UTC |
Mysql | com.mysql.jdbc.Driver | jdbc:mysql://hostname:3306/databaseName |
Oracle | oracle.jdbc.driver.OracleDriver | jdbc:oracle:thin:@hostname:port Number:databaseName |
DB2 | COM.ibm.db2.jdbc.net.DB2Driver | jdbc:db2:hostname:port Number / databaseName |
SYBASE | com.sybase.jdbc.SybDriver | jdbc:sybase:Tds:hostname:port Number / databaseName |
代码实现:
Class.forName("com.mysql.cj.jdbc.Driver");
步骤3:创建连接对象: 使用Driver Manager对象中的getConnection()方法,创建一个Connection对象,建立实际(物理连接);
创建连接对象需三种属性:数据库账户、数据库密码、数据库资源定位url
String username = "root"; //数据库用户名 String password = "zyj961226"; //数据库密码 String url = "jdbc:mysql://localhost:3306/zyj?serverTimezone=UTC"; Connection connection = DriverManager.getConnection(url,username,password);
步骤4:执行查询: 使用Statement的对象来构建和提交Sql语句
Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("select * from "); //查询
//增删改
//result 返回结果为受影响的行数
int result = statement.executeUpdate("delete from grade where gradeid = 4"); //删除
步骤5:从结果集中提取数据: 使用ResultSet.getXXX()方法接收数据
while(resultSet.next()){ // 取出数据:resultSet.get数据类型(列名字) System.out.println(resultSet.getInt("gradeid") +"\t"+resultSet.getString("gname")); }
步骤6:释放资源。
if(resultSet != null){ resultSet.close(); } if(statement != null){ statement.close(); } if(connection != null){ connection.close(); }
具体代码实现:
package com.view;
import java.sql.*;
public class Demo {
public static void main(String[] args) {
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try {
/**
* 1、加载驱动
*/
//mysql8之前的驱动应该为"com.mysql.jdbc.Driver",mysql8之后的驱动为"com.mysql.cj.jdbc.Driver"
Class.forName("com.mysql.cj.jdbc.Driver");
/**
* 2、获得连接
*/
String username = "root"; //数据库用户名
String password = "zyj961226"; //数据库密码
//url 为资源定位系统,一般mysql为 jdbc:mysql://hostname:3306/databaseName
//Mysql 8 以上为jdbc:mysql://hostname:3306/databaseName?serverTimezone=UTC
String url = "jdbc:mysql://localhost:3306/zyj?serverTimezone=UTC";
//使用DriverManager对象中的getConnection()方法,创建一个Connection对象,建立实际(物理连接)
connection = DriverManager.getConnection(url,username,password);
/**
* 3、定义sql,进行sql语句的发送( 使用Statement的对象来构建和提交Sql语句)
*/
statement = connection.createStatement();
resultSet = statement.executeQuery("select * from grade");
/**
* 4、取出结果集合
*/
//遍历集合
while(resultSet.next()){
// 取出数据:resultSet.get数据类型(列名字)
System.out.println(resultSet.getInt("gradeid") + "\t"+resultSet.getString("gname"));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
/**
* 5、关闭资源
*/
try {
if(resultSet != null){
resultSet.close();
}
if(statement != null){
statement.close();
}
if(connection != null){
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}