java解析sql语句简书,Mybatis原理解析(一)--java.sql数据库操作的基本实现方式

在研究Mybatis原理之前,先看一下java中是如何实现一次对数据库的访问的:

public void testSql() {

Connection connection = null;

Statement statement = null;

try {

//1.获取dataSource,设置基本属性

DataSource dataSource = new BasicDataSource();

//2.从dataSource获取连接

connection = dataSource.getConnection();

//3.从连接获得sql执行体

statement = connection.createStatement();

//4.创建sql语句

String sql = "select 1 from table1 where id= 1";

//5.执行传入的sql

statement.execute(sql);

//6.获取执行结果

ResultSet resultSet = statement.getResultSet();

} catch (SQLException e) {

//7.处理异常

e.printStackTrace();

} finally {

//8.清理资源

try {

if (statement != null) {

statement.close();

}

if (connection != null) {

connection.close();

}

} catch (SQLException e) {

e.printStackTrace();

}

}

}

可以看到,一次完整的数据库访问过程最少包含注释中的8个操作,这个过程用面向对象的方式抽象成以下几个接口:DataSource、Connection、Statement、ResultSet,再加上期间产生的SQLException异常,就构成了基本的java数据库操作体系。

DataSource:数据库资源,存储数据库的url、port、userName、password等参数来建立数据库连接,可以用“池”的方式存储连接,在需要的时候提供现有连接,来减少建立连接的耗时。

Connection:一个连接建立好之后,应当提供关闭的方法--close(),设置连接状态的方法--setAutoCommit()、setReadOnly()等,获取连接状态的方法--getAutoCommit()、getReadOnly()等,获取sql执行语句的方法--createStatement()、prepareStatement()等,对执行的语句进行回滚的方法--rollback()。这些方法基本上包含了针对数据库的所有RUD操作。

Statement:sql执行语句。包含要执行的sql、sql的执行结果以及关闭的方法close()。

PreparedStatement:预制sql语句,继承自Statement。预编译并存储sql语句,可以通过setter(int ,object)方法设置sql语句中的参数,实现动态编写sql语句。

CallableStatement:可调用语句,继承自PreparedStatement。它提供了一种从 Java 程序中调用服务器上的存储过程的方式,也可以通过顺序位置或命名参数的方式输入参数。

**ResultSet **:返回的结果集,通过next()方法顺序访问结果中的每一列,支持获取指定javaType的结果和关闭的方法。

SQLException:数据库访问和操作过程中的异常。所有数据库异常的父类,需要针对具体的异常进行细化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值