JDBC(Java Database Connectivity):java数据库连接
sun公司提供的一种java访问数据的规范。
简单来说就是,就是能通过java代码连接并操作数据库
一、为什么会出现JDBC呢?
数据库的种类有很多,每种数据库的连接方式还不一样,sun公司就提供了一种规范,让数据库厂商根据这种规范去实现底层的访问规则。我们要连接数据库时,只需要使用sun公司提供的驱动即可(即jar包)。
二、怎么连接数据库
1、导入sun公司提供的jar包
jar包下载地址:https://dev.mysql.com/downloads/connector/j/
选择Platform Independent(平台无关的)
将jar包复制到项目中的lib文件夹中,普通java项目自己在工程目录下新建lib文件
右键jar包->Build Path->Add to Build Path,将jar包添加到java项目中
2、加载数据库驱动
新建一个测试类Test.java,在main方法中加载数据库驱动
3、连接数据库
4、使用查询语句
5、释放资源,释放顺序ResultSet->Statement->Connection,可以在finally代码块中释放
6、完整代码
package com.yzh.test;
import java.io.ObjectInputStream.GetField;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCTest {
public static void main(String[] args) {
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
//1、加载数据库驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2、从DriverManager类中获取连接对象,需要三个参数:url,user,password
//url:数据库的连接地址,jdbc:mysql://localhost:3306/,这一段是后面接的是数据库的名字
//user和password分别是数据库的用户名和密码
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bin_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC","root","123456");
//3、从连接对象获取Statement对象
st = conn.createStatement();
//4、用Statement对象执行sql语句,获得ResultSet对象
String sql = "select * from paper";
rs = st.executeQuery(sql);
//5、遍历ResultSet
while(rs.next()){
int id_p = rs.getInt("id_p");
String name = rs.getString("name");
System.out.println("id_p="+id_p + " name=" + name);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
rs = null;
}
}
if(st != null){
try {
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
st = null;
}
}
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
conn = null;
}
}
}
}
}
7、注意事项
mysql8.0以前加载驱动为"com.mysql.jdbc.Driver"
mysql8.0以后加载驱动为"com.mysqk.cj.jdbc.Driver"
在url处8.0后的mysql需要添加多个参数,例如时区等问题,现在本人还弄不清楚,先记上,以后解决