什么是JDBC
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识
JDBC 是java database connectivity的缩写,是SUN公司提供的一套操作数据库的标准规范。它相当于java和数据库的桥梁。各大数据库厂商会提供数据库驱动实现标准规范,即API。
JDBC和数据库驱动的联系如下:
JDBC的典型用法
JDBC常用接口
JDBC有四个核心接口,分别如下
1.DriverManager:用于注册驱动并连接创建符合该驱动的数据库连接
2.Connection:表示与数据库创建的连接对象,即一个connection对应着一个会话,相当于在mysql workbench中打开了一个连接
3.Statement:操作数据库sql语句的对象,有两个实现类,statement和prepareStatement ,稍后介绍
4.ResultSet:从数据库中查询的结果集
数据库通过这4个接口实现java对数据库的增删改查
JDBC编程步骤
1.注册驱动
2.获取连接Connection
3.得到执行sql语句的对象statement
4.执行sql语句,并返回结果
5.处理结果
6.关闭connection
代码展示
// An highlighted block
ackage com.yan.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/**
* 使用JDBC技术实现查询数据库数据,并显示在控制台中
*
*/
public class JDBC_Test01 {
public static void main(String[] args) throws Exception {
//注册驱动
Class.forName("com.mysql.jdbc.Driver");
//获取连接Connection
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/Y", "root", "Y");
//得到执行sequel语句的对象Statement
Statement stmt = conn.createStatement();
//执行sql语句,并返回结果
ResultSet rs = stmt.executeQuery("select id,name,password,email,birthday from t_user");
//处理结果
while(rs.next()){
System.out.println(rs.getObject("id"));
System.out.println(rs.getObject("name"));
System.out.println(rs.getObject("password"));
System.out.println(rs.getObject("email"));
System.out.println(rs.getObject("birthday"));
System.out.println("-----------------");
}
//关闭资源
rs.close();
stmt.close();
conn.close();
}
}
类,接口详解
DriverManager 类
主要作用是创建连接,其中getConnection()获取数据库的连接
Statement 接口
作用是操作sql语句,并返回响应结果的对象
常用方法有:
- Resultset executeQuery(String sql)格局查询语句返回结果集,只能执行select语句。
- int executeUpdate(String sql)根据执行的DML(insert update delete)语句,返回收影响的行数
- boolean execute(String sql) 此方法可以执行任意的sql语句,返回boolean值。晋档执行select语句,且有返回结果true,其余都返回false
public class CRUD_Test01 {
@Test
public void testInsert() throws Exception{
//注册驱动
Class.forName("com.mysql.jdbc.Driver");
//获取连接Connection
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/monkey1024", "root", "monkey1024");
//得到执行sequel语句的对象Statement
Statement stmt = conn.createStatement();
//执行sql语句,并返回结果
int flag = stmt.executeUpdate("insert into t_user(name,password,email,birthday) values('cat','123456','cat@163.com','1993-11-11')");
//处理结果
if(flag > 0){
System.out.println("成功");
}
//关闭资源
stmt.close();
conn.close();
}
@Test
public void testUpdate() throws Exception{
//注册驱动
Class.forName("com.mysql.jdbc.Driver");
//获取连接Connection
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/monkey1024", "root", "monkey1024");
//得到执行sequel语句的对象Statement
Statement stmt = conn.createStatement();
//执行sql语句,并返回结果
int flag = stmt.executeUpdate("update t_user set password=123 where name='cat'");
//处理结果
if(flag > 0){
System.out.println("成功");
}
//关闭资源
stmt.close();
conn.close();
}
@Test
public void testDelete() throws Exception{
//注册驱动
Class.forName("com.mysql.jdbc.Driver");
//获取连接Connection
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/monkey1024", "root", "monkey1024");
//得到执行sequel语句的对象Statement
Statement stmt = conn.createStatement();
//执行sql语句,并返回结果
int flag = stmt.executeUpdate("delete from t_user where name='cat';");
//处理结果
if(flag > 0){
System.out.println("成功");
}
//关闭资源
stmt.close();
conn.close();
}
}
ResultSet
该接口的作用是用来封装结果集