总结初次用JDBC连接数据库
JDBC全称Java Database Connectivity,即java数据库连接,它是java官方的一套用于执行SQL语句的java API。
因为JDBC要求各个数据库厂商按照统一的规范提供数据库驱动程序,在程序中由JDBC和具体的数据库驱动程序联系,用户不必与底层的数据库交互,使得代码的通用性更强。
准备工作——下载对应数据库驱动程序的jar包
我这里使用的数据库是SQL server,所以我应该下载SQL server数据库驱动程序的jar包
下载链接
https://learn.microsoft.com/zh-cn/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver16
SQL server 提供的是包含驱动程序的压缩包 sqljdbc_12.8.0.0_chs
jar包在sqljdbc_12.8.0.0_chs\sqljdbc_12.8\chs\jars
将jar包导入到你的项目。
加载并注册数据库驱动程序
//1.通过 DriverManger的静态方法registerDriver()加载
DriverManager.registerDriver(Driver driver);
//2.通过 Class的静态方法forName()加载 (常用)
Class.forName(String DriverName);
//例
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
连接数据库
//使用DriverManager的静态方法getConnection()创建连接类(Connection)对象
Connection conn =DriverManager.getConnection(String url,String user,String pwd);
//后两个参数可省
//例
/*
jdbc:sqlserver://localhost:1433;指定数据库引擎和数据库位置
integratedSecurity=true 表示使用windows验证
DatabaseName=Jdata 指定连接的数据库
encrypt=true 表示启用SSL/TLS加密传输 (可省,默认为true)
trustServerCertificate=true 表示信任服务端的SSL/TLS证书
*/
/*
值得特别说明一下,当integratedSecurity=true(使用windows验证)时,
要为集成身份验证配置驱动程序,没有配会报错(我就吃了这个亏)。
具体操作就是,将包含驱动程序 sqljdbc_12.8.0.0_chs中的mssql-jdbc_auth-12.8.0.x64.dll复值到jdk的bin目录中
mssql-jdbc_auth-12.8.0.x64.dll具体位置
sqljdbc_12.8.0.0_chs\sqljdbc_12.8\chs\auth\x64
*/
String url="jdbc:sqlserver://localhost:1433;integratedSecurity=true;DatabaseName=Jdata;trustServerCertificate=true;";
Connection conn= DriverManager.getConnection(url);
实现第一个简单的JDBC程序
package com.gezishan;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Main {
public static void main(String[] args) throws Exception {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url="jdbc:sqlserver://localhost:1433;integratedSecurity=true;DatabaseName=Jdata;trustServerCertificate=true;";
Connection conn= DriverManager.getConnection(url);
Statement stat=conn.createStatement(); //创建操作数据库对象
String sql="select * from jbc"; //在数据库中已创建好对应Jdata数据库及表jbc
ResultSet rs=stat.executeQuery(sql); //执行sql返回结果存到 ResultSet对象中
while(rs.next()){
int id=rs.getInt("id");
String name=rs.getString("name");
System.out.println(id+" "+name);
}
}
}