一、知识归纳:
1. JDBC的作用:Java获取数据库中的数据或者将数据存储到数据库中
2. JDBC是什么:Java 操作数据库技术,一套API
3. JDBC的操作数据库过程
a) 加载驱动(前提:需要将对于的jar包添加到项目中)
Class.forName("驱动类");
b) 建立与数据库的连接
Connection conn = DriverManger.getConnection(url,username,password);
c) 创建声明对象
Statement stmt = conn.createStatement();
d) 执行SQL语句(创建结果集对象)
String sql="SQL语句"
ResultSet rs = stmt.executeQuery(sql); //在执行的时候需要提供SQL语句
[int rows = stmt.executeUpdate(sql) ;]
e) 解析结果集
while(rs.next()){
rs.getXXX("字段名") //表示获取当前行中该字段的值
}
f) 关闭
关闭结果集对象 rs.close();
关闭声明对象 stmt.close();
关闭连接对象 conn.close();
4. 预处理语句
String sql="SQL语句";
PreparedStatement pstmt = conn.preparedStatement(sql);
pstmt.setXXX(index, “值”);
pstmt.executeQuery();
[int rows = pstmt.executeUpdate() ;]
5.import
java.sql.Connection:连接
class MySqlConnection implements Connection{
//具体实现Mysql数据库的连接过程
}
java.sql.Statement:执行sql语句的
java.sql.ResultSet:结果集
java.sql.PreparedStatement:建立预处理语句的
小结:如果需要操作具体某个数据库则需要下载对应的“驱动包”
二、JDBC(Java DataBase Connectivity Java数据库连接)
JDBC是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
三、JDBC体系结构
JDBC API支持用于数据库访问的两层和三层处理模型,但通常,JDBC体系结构由两层组成:
JDBC API:这提供了应用程序到JDBC管理器连接。
JDBC驱动程序API:这支持JDBC管理器到驱动程序连接。
四、通用JDBC 组件
? DriverManager: 此类管理数据库驱动程序列表。使用通信子协议将来自java应用程序的连接请求与适当的数据库驱动程序匹配。
? Driver:此接口处理与数据库服务器的通信。通常很少会直接与Driver对象进行交互,而是使用DriverManager对象来管理这种类型的对象。
? Connection:该界面具有用于联系数据库的所有方法。连接对象表示通信上下文,即,与数据库的所有通信仅通过连接对象。
? Statement:使用从此接口创建的对象将SQL语句提交到数据库。除了执行存储过程之外,一些派生接口还接受参数。
? ResultSet:在使用Statement对象执行SQL查询后,这些对象保存从数据库检索的数据。它作为一个迭代器,允许我们移动其数据。
? SQLException:此类处理数据库应用程序中发生的任何错误。
五、抽出工具(Properties文件)
driverClass = com.mysql.jdbc.Driver
url = jdbc:mysql://localhost:3306/数据库
username = root
password = 123456
//读取Properties文件中的内容
public class Lesson {
public static void main(String[] args) {
Properties p = new Properties();
InputStream is = Lesson.class.getClassLoader().getResourceAsStream("jdbc.properties");
try {
p.load(is);
String driver = p.getProperty("driverClass");
System.out.println(driver);
} catch (IOException e) {
e.printStackTrace();
}
}
}
六、封装工具类(JdbcUtils)
package com.jdbc.util;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/**
* 实现对JDBC的封装
*/
public class JdbcUtils {
private static String driverName;
private static String url;
private static String username;
private static String password;
static {
Properties p = new Properties();
try {
p.load(JdbcUtils.class.getClassLoader().getResourceAsStream("jdbc.properties"));
driverName = p.getProperty("driverClass");
url = p.getProperty("url");
username = p.getProperty("username");
password = p.getProperty("password");
Class.forName(driverName);// 在JVM的内存中创建一个Driver对象
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
// 获取连接对象
public static Connection getConnection() {
Connection conn = null;
// 实现连接对象的创建
try {
conn = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
// 关闭操作
public static void closeRs(ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void closeStmt(Statement stmt) {
try {
if (stmt != null) {
stmt.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void closeConn(Connection conn) {
try {
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void closeAll(ResultSet rs, Statement stmt, Connection conn) {
closeRs(rs);
closeStmt(stmt);
closeConn(conn);
}
}
Java学习笔记—JDBC(Java Database Connectivity)-----JDBC基础(一)
原文:https://www.cnblogs.com/JKgrid/p/10699556.html