目录
3. PreparedStatement和Statement
1. JDBC概述
java程序连接数据库 (MySQL、SQL server、Oracle....),JDBC是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
问题:不同的数据库实现方式有所不同,那么java要连接不同的数据库,需要写不同实现细节(很麻烦,对于语言开发者来说不太友好)
解决(怎么来解决java程序连接不同的数据库问题呢):
- java语言开发者 制定出了一套标准的访问数据库接口 (程序对数据库的操作一般有 (新增,修改,删除 DML), 查询 ( save update delete query) )
- 由不同的数据库开发商来具体实现,实现java提供的标准对数据库操作的接口中的方法(save update delete query)
- 作为程序开发者,只需要学习标准接口的功能即可
JDBC API
供程序员调用的接口与类,集成在 java.sql 包中:
DriverManager 类:管理各种不同的JDBC驱动
Connection 接口 :实际返回的mysql 的实现类对象
Statement 接口 :执行sql
PreparedStatement 接口 :执行sql
ResultSet 接口 :接收查询结果
mysql 开发商将连接 mysql 具体的实现功能封装到 mysql-connector-java-8.0.16.jar文件中 我们连接 mysql 时,只需要将此包导入到项目中即可
2. JDBC搭建
-
导入mysql驱动包(实现了java标准接口的实现类)
-
注册驱动
-
建立与mysql的连接通道
-
向mysql发送sql句
-
接收返回结果
-
关闭与数据库的连接
import java.sql.*;
public class Demo1 {
public static void main(String[] args) {
/*try {
DriverManager.registerDriver(new Driver());
} catch (SQLException throwables) {
throwables.printStackTrace();
}*/
//1.注册JDBC驱动
try {
Class.forName("com.mysql.cj.jdbc.Driver");//以java反射机制来创建此类方法
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
String url = "jdbc:mysql://127.0.0.1:3306/school?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai";
Connection conn = null;
try {
//建立与MySQL连接
//Connection 接口 实际返回的mysql 的实现类对象
conn = DriverManager.getConnection(url,"root","123456");
//发送sql
Statement st = conn.createStatement();
//更新 st.executeUpdate();
st.executeUpdate("insert into course values(6,'张三','物理',60)");
//查询 st.executeQuery();
//关闭与数据库的链接通道
st.close();
conn.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}