JDBC的执行过程

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/YJT180/article/details/99828947
  • JDBC 是什么?

JDBC(Java Data Base Connectivity, Java 数据库连接)是一种用于执行 SQL 语句的 Java API,是 Java 应用连接各种关系型数据库的基本的接口。可以为多种关系数据库提供统一访问。

  • JDBC有什么作用?

简单地说,JDBC 可做三件事:与数据库建立连接、发送 操作数据库的语句并处理结果。再简单具体就是完成了对数据库数据的增删改查等操作。

  • JDBC执行过程

一:引包

在执行JDBC前,首先我们要导入MySQL jar包

创建文件夹lib,并导入该包

二:加载驱动

Class.forName(“com.mysql.jdbc.Driver”);

三:建立连接

connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root");

扫描二维码关注公众号,回复: 7643399 查看本文章

 四:创建语句

statement = connection.createStatement();

五:执行语句

resultSet= statement.executeQuery(sql);

六:处理结果

rowMapper.rowMapper(resultSet);

七:释放资源

finally {
	if (resultSet!=null) {
	    try {
	            resultSet.close();
	        } catch (SQLException e) {
	            e.printStackTrace();
	        } 
	}		
	if (statement!=null) {
	    try {
	            statement.close();
	        } catch (SQLException e) {
	            e.printStackTrace();
	        } 
	}
        if (connection!=null) {
	    try {
	            connection.close();
	        } catch (SQLException e) {
	            e.printStackTrace();
		} 
	}

jdbc的完整代码为

package jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

interface IRowMapper{
	void rowMapper(ResultSet resultSet);
}

public class Test {

	public static void select(String sql,IRowMapper rowMapper) {
		Connection connection = null;
		Statement statement = null;
		ResultSet resultSet= null;
		try {
			Class.forName("com.mysql.jdbc.Driver");//d、加载驱动类
			connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root");//e、获取连接
			statement = connection.createStatement();//f、创建语句
			resultSet= statement.executeQuery(sql);//g、执行语句
			rowMapper.rowMapper(resultSet);//h、处理结果,以为rowMapper变量存的是IRowMapper接口实现类对象,所以程序运行时调用该对象中的rowMapper方法
		} catch (Exception e) {
			e.printStackTrace();
		}finally {//k、释放资源
			if (resultSet!=null) {
				try {
					resultSet.close();
				} catch (SQLException e) {
					e.printStackTrace();
				} 
			}
			
			if (statement!=null) {
				try {
					statement.close();
				} catch (SQLException e) {
					e.printStackTrace();
				} 
			}
			
			if (connection!=null) {
				try {
					connection.close();
				} catch (SQLException e) {
					e.printStackTrace();
				} 
			}
		}
	}//l select方法执行完毕,执行过程回到main方法
	
	public static void main(String[] args) {
		class RowMapper implements IRowMapper{
			@Override
			public void rowMapper(ResultSet resultSet) {
				try {
					while(resultSet.next()) {//i 遍历结果
						String id = resultSet.getString("id");
						String address = resultSet.getString("address");
						System.out.println(id);
						System.out.println(address);
					}
				} catch (Exception e) {
					e.printStackTrace();
				}
			}//j 内部类中rowMapper执行完毕,则执行流程再次回到select方法
		}
		
		String sql = "select * from student";//a、sql存的是字符串地址
		IRowMapper rowMapper = new RowMapper();//b、上转型对象,rowMapper存的是对象地址
		select(sql,rowMapper);//c、开始调用select方法,执行过程切换到select方法,传入sql语句字符串地址,和IRowMapper实现类创建的对象的地址
	}//m main方法结束,整个程序结束	
}

猜你喜欢

转载自blog.csdn.net/YJT180/article/details/99828947