JDBC接口简述以及JDBC编程步骤

JDBC常用接口


Driver接口

Driver接口是由数据库厂家提供的,对于java开发者而言,只需要使用Driver接口就可以了。


导包

在编程中要连接数据库,就必须先装载数据库驱动程序,不同的数据库有不同的装载方法.
装载MySQL驱动:Class.forName("com.mysql.jdbc.Driver");


驱动管理(DriverManager接口)

DriverManager接口是JDBC的管理层,作用于用户和驱动之间。
用于管理JDBC驱动的服务类。程序中使用该类的的主要功能是获取Connection对象
是处理驱动和程序之间的桥梁。
重要方法


连接接口(Connection接口,由DriverManager创建)

Connection与数据库连接,在连接上下文中执行SQL语句并返回结果
Connection代表数据库连接对象,每个Connection代表一个物理连接会话。要想访问数据库,必须先得到数据库连接。
DriverManager的getConnection()方法建立在JDBC URL中定义的数据库Connection连接上。

连接MySQL数据库:
在这里插入图片描述
Connection接口源码:
在这里插入图片描述


Statement接口

用于执行sql语句的工具接口。该对象既可以执行DDL,DCL语句,也可以用于执行DML语句,还可以用于执行sql查询。当执行sql查询时,返回查询到的结果集。
用于执行静态SQL语句 并 返回他所生成的对象。
常用方法:
execute();运行语句,返回是否有结果集。
executeQuery();运行select语句,返回ResultSet结果集(一个容器,下标从1开始)。
executeUpdate();运行insert、update、delete操作,返回更新的行数。
Statement接口源码:
JDBC接口简述以及JDBC编程步骤_第1张图片


PreparedStatement接口(最常用)

预编译的Statement对象,PreparedStatement是Statement的子接口,它允许数据库预编译sql语句(这些sql语句通常带有参数),以后每次只改变sql命令的参数,避免数据库每次都需要编译sql语句,无需再传入sql语句,只要为预编译的sql语句传入参数值即可。
继承Statement接口,功能更多更强大。可以预处理,批处理,延迟加载。


ResultSet接口

结果集对象。该对象包含访问查询结果的方法,ResultSet可以通过列索引或列名获得列数据。它包含了如下常用方法来移动记录指针。
返回结果,放在ResultSet容器里面
常用方法:
getString(); getFloat(); getDate(); getBoolean(); 等。。。

ResultSet源码:
• boolean next() throws SQLException;
• void close() throws SQLException;
• String getString(int columnIndex) throws SQLException;
• String getString(String columnLabel) throws SQLException;
• boolean getBoolean(int columnIndex) throws SQLException;



※※JDBC的编程步骤(以下步骤都需要捕捉异常)

  1. 载数据库驱动
Class.forName(“com.mysql.jdbc.Driver”);  //反射机制创建
  1. 利用DriverManager.getConnection 建立数据库连接
Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/数据库名”, “user”,”pwd”);
  1. 利用 Connection对象执行 SQL 语句并返回它所生成结果的对象Statement
Statement stmt = conn.createStatement( );
  1. 利用 Statement 执行 SQL(通过executeQuery执行SQL语句返回到ResultSets容器):
ResultSets rs = stmt.executeQuery(“Select * from Stu”);
  1. 利用 ResultSet, while循环读取结果集
rs.getXXX(“fieldName”);
  1. 依序关闭使用之对象及连接:(原则:先开后关)
    这里有个小知识点,当咱们捕捉异常以后,这个关闭连接应该在finally里面书写。 首先先判定是否非空,然后close();关闭连接。

    ResultSet --> Statement --> Connection


Statement执行的sql语句主要分为两种:

  1. 查找(executequery)
  2. 更新(executeUpdate)包含增删改,insert、update、delete

Resultset是查询的结果,所以他只能用executequery来获取,当获取到多条的时候,要用到循环来获取,判断是否存在下一条用next方法。

释放资源:原则是先开后关

开启的顺序:connection-statement-resultset。
关闭的顺序:resultset-statement-connection。


简单来说:

  1. 连接MySQL驱动
  2. 创建数据库连接
  3. 创建预处理对象
  4. 根据位置获取查询结果
public class JdbcDao {
	public void myJdbc(){
		try {
			Class.forName("com.mysql.jdbc.Driver");  //加载MySQL驱动																	
			Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名称", "user", "pwd");	//创建数据库链接
			Statement stmt = conn.createStatement();   //通过connn获取数据库处理对象statement
			ResultSet rs = stmt.executeQuery("select * from XXX(SQL查询语句)");//通过stmt的executequery方法来执行sql查询语句,返回结果是resultset
			while(rs.next()){  //循环通过rs.next判断是否有下一条
				System.out.println(rs.getInt(1));
				System.out.println(rs.getString("ename"));
			}
		} catch (ClassNotFoundException | SQLException e) {
			e.printStackTrace();
		}
	}	
	public static void main(String[] args) {
		JdbcDao jd=new JdbcDao();//创建jdbcdao对象
		jd.myJdbc();//调用myjdbc方法
	}
}

你可能感兴趣的:(JDBC)