目录
JDBC
简介:
-
javaDatabaseConnectivity:Java访问数据库的解决方案
-
希望用相同的方式访问不同的数据库,以实现与具体数据库无关的Java操作界面
-
JDBC定义一套标准接口,即访问数据库的通用API,不同的数据库厂商根据各自数据库的特点去实现这些接口
工作原理:
-
JDBC定义接口
-
数据库厂商实现接口
-
程序员调用接口,实际调用的是底层数据库厂商的实现部分
工作过程:
-
加载驱动,建立连接
-
创建语句对象
-
执行SQL语句
-
处理结果集
-
关闭连接
ResultSet接口
-
执行查询SQL语句后返回的结果集,由ResultSet接口接收
-
常用处理方式:遍历/判断是否有结果(登录)
使用JDBC
package util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBUtil {
public static Connection getConnection(){
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection connection= DriverManager.getConnection("jdbc:mysql://localhost:3306/jyz?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false",
"root","root");
return connection;
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
package jdbc;
import entity.Student;
import util.DBUtil;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class MyJDBC {
//查询单条
public static void selectById() throws SQLException {
//2.创建Statement对象==>帮助我们执行sql语句
Connection connection=DBUtil.getConnection();
Statement statement= connection.createStatement();
//根据主键查询信息
String sql="select * from student where id=2";
ResultSet resultSet=statement.executeQuery(sql);//执行查询语句,会返回一个结果集,结果集的数据就是查询出来的数据
//遍历ResultSet
/*
* mysql java
* int int
* char String
* varchar String
* date String
* */
while(resultSet.next()){
int id=resultSet.getInt("id");
String name=resultSet.getString("name");
int age=resultSet.getInt("age");
String gender=resultSet.getString("gender");
String entryTime=resultSet.getString("entryTime");
//可以用String或LocalDateTime接受
Student student=new Student();
student.setId(id);
student.setName(name);
student.setAge(age);
student.setGender(gender);
student.setEntryTime(entryTime);
System.out.println(student)