JDBC(Java Data Base Connectivity ,Java数据库连接技术)是一种用于执行SQL语句的java API,可以为多种关系数据库提供一访问,它是由java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
JDBC连接步骤:
1.注册驱动
Class.forName(driver);
mysql驱动:driver=com.mysql.jdbc.Driver
oracle驱动:driver=oracle.jdbc.driver.OracleDriver
2.获取连接
DriverManager.getConnection(url, user, password)
zmysql为自己创建的一个数据库,3306为MySQL的端口号
- oracle的url:jdbc:oracle:thin:@localhost:1521:XE
oracle的url格式固定
user:自己创建mysql的用户名
passwo:创建mysql的密码
3 创建PreparedStatement对象
pstmt = conn.prepareStatement(sql);
- 如果有占位符替换占位符
4 执行SQL
增删改: executeUpdate()
查 :executeQuery()
5 如果有结果集,处理结果集
6 释放资源
Connection.close()
PreparedStatement.close()
ResultSet.close()
- 后创建的先释放
实例代码:以学生表student(id,name,age)为例
try catch语句省略
class basic
{
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet result = null;
driver = "com.mysql.jdbc.Driver";
url = "jdbc:mysql://127.0.0.1:3306/zmysql";
user = "root";
password = "root";
// 注册驱动
Class.forName(driver);
//获取连接
conn = DriverManager.getConnection(url, user, password);
// 创建pstmt
String sql = "select *from tbl_student";
pstmt = conn.prepareStatement(sql);
// 执行查询
result = pstmt.executeQuery();
System.out.println(result+"==");
// 处理结果集
while (result.next()) {
Long id = result.getLong("id");
String name = result.getString("name");
int age = result.getInt("age");
System.out.println("id=" + id + "name=" + name + "age=" +age);
}
//释放资源
if (rs != null) {
rs.close();
}
if (conn != null) {
conn.close();
}
if (pstmt != null) {
pstmt.close();
}
}
知识拓展:
怎样在JDBC技术中体现封装思想?
- 把相同的部分封装在基础类中
public class ConnectionFactory {
static String driver;
static String url;
static String user;
static String password;
static {
driver = "com.mysql.jdbc.Driver";
url = "jdbc:mysql://127.0.0.1:3306/ssh";
user = "root";
password = "980687451";
}
/**
- 获取连接
*/
public static Connection getConnection() throws Exception {
Class.forName(driver);
return DriverManager.getConnection(url, user, password);
}
/**
释放资源
*/
public static void close(ResultSet rs, Connection conn, PreparedStatement pstmt) throws Exception {
if (rs != null) {
rs.close();
}
if (conn != null) {
conn.close();
}
if (pstmt != null) {
pstmt.close();
}
}
}