01.什么是JDBC
Java DataBase Connectivity(Java语言连接数据库)
02.JDBC的本质是什么?
JDBC是SUN公司制定的一套接口(interface)
java.sql.*; (这个软件包下有很多接口。)
03.JDBC编程六步(需要背会)
第一步:注册驱动(作用:告诉Java程序,即将要连接的是哪个品牌的数据库)
第二步:获取连接(表示JVM的进程和数据库进程之间的通道打开了,这属于进程之间的通信,重量级的,使用完之后一定要关闭通道。)
第三步:获取数据库操作对象(专门执行sql语句的对象)
第四步:执行SQL语句(DQL DML....)
第五步:处理查询结果集(只有当第四步执行的是select语句的时候,才有这第五步处理查询结果集。)
第六步:释放资源(使用完资源之后一定要关闭资源。Java和数据库属于进程间的通信,开启之后一定要关闭。)
04.第一个jdbc程序
public class TestJdbc {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//导入驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//用户信息和url
String url = "jdbc:mysql://localhost:3306/school?serverTimezone=UTC";
String username="root";
String password="123456789";
//连接成功 数据库对象 connection代表数据库
Connection connection = DriverManager.getConnection(url, username, password);
//执行sql对象
Statement statement = connection.createStatement();
String sql = "select * from subject";
//返回结果集
ResultSet resultSet = statement.executeQuery(sql);
while (resultSet.next()){
System.out.println("subjectno"+resultSet.getObject("subjectno"));
System.out.println("subjectname"+resultSet.getObject("subjectname"));
System.out.println("classhour"+resultSet.getObject("classhour"));
System.out.println("gradeid"+resultSet.getObject("gradeid"));
System.out.println("====================");
}
//关闭连接
resultSet.close();
statement.close();
connection.close();
}
}
05.封装jdbc工具类
package lession1;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
public class JdbcUtils {
private static String driver=null;
private static String url=null;
private static String username=null;
private static String password=null;
static {
try {
InputStream inputStream = JdbcUtils.class.getClassLoader().getResourceAsStream("db.properties");
Properties properties = new Properties();
properties.load(inputStream);//读取配置文件
//获取文件中的值
driver = properties.getProperty("driver");
url = properties.getProperty("url");
username = properties.getProperty("username");
password = properties.getProperty("password");
//驱动只用一次
Class.forName(driver);
} catch (Exception e) {
e.printStackTrace();
}finally {
}
}
//获取连接
public Connection getConnection() throws SQLException {
return DriverManager.getConnection(url,username,password);
}
//关闭连接
public void release(Connection connection, Statement statement, ResultSet resultSet){
if (resultSet!=null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement!=null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection!=null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
Statement对象
Delete
package lession1;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestDelete {
public static void main(String[] args) {
Connection connection=null;
Statement statement = null;
ResultSet resultSet = null;
try {
connection = JdbcUtils.getConnection();
statement=connection.createStatement();
String sql = "delete from student where id=3";
int i = statement.executeUpdate(s