Mybatis原理解析(一)--java.sql数据库操作的基本实现方式
2017-12-05 10:10
981 查看
在研究Mybatis原理之前,先看一下java中是如何实现一次对数据库的访问的:
可以看到,一次完整的数据库访问过程最少包含注释中的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:数据库访问和操作过程中的异常。所有数据库异常的父类,需要针对具体的异常进行细化。
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.printStackT 4000 race(); } } }
可以看到,一次完整的数据库访问过程最少包含注释中的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:数据库访问和操作过程中的异常。所有数据库异常的父类,需要针对具体的异常进行细化。
相关文章推荐
- HiveSQL解析原理:包括SQL转化为MapReduce过程及MapReduce如何实现基本SQL操作
- HiveSQL解析原理:包括SQL转化为MapReduce过程及MapReduce如何实现基本SQL操作
- HiveSQL解析原理:包括SQL转化为MapReduce过程及MapReduce如何实现基本SQL操作
- vb sql server创建数据库实现增、删、改、查等基本操作
- 【转载】MapReduce实现基本SQL操作的原理-join和group by,以及Dinstinct
- Java连接数据库,实现“增、删、改、查”的基本操作
- 解决mybatis继承SqlSessionDaoSupport方式操作数据库不打印sql日志的问题。
- JAVAWEB开发之mybatis详解(一)——mybatis的入门(实现增删改查操作)、自定义别名、抽取代码块以及动态SQL的使用
- MyBatis实现数据库操作DAO的三种方式
- java_security之base64原理解析以及三种代码的实现方式
- 利用Java+sqlserver 实现对数据库的操作
- java操作数据库的几种实现方式
- MapReduce实现基本SQL操作的原理-join和group by,以及Dinstinct
- Java使用SQLServerBulkCopy实现数据库批量操作
- 深入解析Spring架构与设计原理-数据库的操作实现
- Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作-------sql方式
- Atitit.sql ast 表达式 语法树 语法 解析原理与实现 java php c#.net js python
- mybatis实战之路,疯狂的数据库操作框架、动态sql的mybats之快速搭建基本环境
- mybatis实战之路,疯狂的数据库操作框架、动态sql实现CRUD及带条件的增CRUD
- Spring技术内幕——深入解析Spring架构与设计原理(三)数据库的操作实现