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:数据库访问和操作过程中的异常。所有数据库异常的父类,需要针对具体的异常进行细化。
java解析sql语句简书,Mybatis原理解析(一)--java.sql数据库操作的基本实现方式相关推荐
- 【java】Java即时编译(JIT)器原理解析及实践
1.概述 转载:Java即时编译(JIT)器原理解析及实践 一.导读 常见的编译型语言如C++,通常会把代码直接编译成CPU所能理解的机器码来运行.而Java为了实现"一次编译,处处运行&q ...
- c语言解析sql语句_如何在C语言里面执行SQL语句?
一.为什么要在C语言程序中执行SQL语句? 在C语言程序中执行SQL语句的原因有以下几个: (1)程序需要获取数据库中某数据表的字段值,并对这些字段值进行解析以执行后续操作. (2)程序需要更新数据库 ...
- python中for循环流程图_Python While循环语句实例演示及原理解析
这篇文章主要介绍了Python While循环语句实例演示及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Python 编程中 while ...
- java毕业设计摄影服务管理系统服务端mybatis+源码+调试部署+系统+数据库+lw
java毕业设计摄影服务管理系统服务端mybatis+源码+调试部署+系统+数据库+lw java毕业设计摄影服务管理系统服务端mybatis+源码+调试部署+系统+数据库+lw 本源码技术栈: 项目 ...
- java毕业设计阿博图书馆管理系统mybatis+源码+调试部署+系统+数据库+lw
java毕业设计阿博图书馆管理系统mybatis+源码+调试部署+系统+数据库+lw java毕业设计阿博图书馆管理系统mybatis+源码+调试部署+系统+数据库+lw 本源码技术栈: 项目架构:B ...
- java毕业设计大学生创业众筹系统mybatis+源码+调试部署+系统+数据库+lw
java毕业设计大学生创业众筹系统mybatis+源码+调试部署+系统+数据库+lw java毕业设计大学生创业众筹系统mybatis+源码+调试部署+系统+数据库+lw 本源码技术栈: 项目架构:B ...
- 计算机毕业设计JAVA毕业生就业去向登记管理系统mybatis+源码+调试部署+系统+数据库+lw
计算机毕业设计JAVA毕业生就业去向登记管理系统mybatis+源码+调试部署+系统+数据库+lw 计算机毕业设计JAVA毕业生就业去向登记管理系统mybatis+源码+调试部署+系统+数据库+lw ...
- java毕业设计校园内推系统mybatis+源码+调试部署+系统+数据库+lw
java毕业设计校园内推系统mybatis+源码+调试部署+系统+数据库+lw java毕业设计校园内推系统mybatis+源码+调试部署+系统+数据库+lw 本源码技术栈: 项目架构:B/S架构 开 ...
- 计算机毕业设计JAVA某市教育局综合信息管理平台mybatis+源码+调试部署+系统+数据库+lw
计算机毕业设计JAVA某市教育局综合信息管理平台mybatis+源码+调试部署+系统+数据库+lw 计算机毕业设计JAVA某市教育局综合信息管理平台mybatis+源码+调试部署+系统+数据库+lw ...
最新文章
- AI科技大本营在线公开课大放送(附演讲PPT)
- 雷军写代码水平如何?
- JAVA并发编程8_线程池的使用
- python如何读写文件-Python读写文件
- python怎么知道用哪个库使用-Python链接数据库,使用哪个库,怎么操作?
- Java对象的实例化
- 搭建Git服务器环境----Git hooks代码自动部署
- 配置Xmanager 连接AIX服务器
- ubantu获取信息_Ubuntu 下查看CPU 信息命令
- CentOS二进制安装Kubernetes
- PLSQL如何将千万数据快速插入到另一张表中_数据库设计中的 9 大常见错误
- 【机器学习】主成分分析 (PCA)、无监督特征提取
- SpringBoot异常处理机制之自定义404、500错误提示页面
- 候鸟浏览器cookie登录教程
- 智慧校园: 00 开发流程
- 指挥系统核心服务器,应急指挥中心指挥调度系统解决方案(一)
- visio2010绘制思维导图方法
- 大数据平台的元数据管理
- iOS视频播放的基本方法
- AcWing寒假每日一题 2058.笨拙的手指
热门文章
- IEEE-754标准与浮点数运算
- HttpClient 设置cookie的问题
- 【数据共享】深度学习异常行为数据集—疲劳驾驶数据集—行为分析数据集
- 《人群计数和密度估计方法综述》(阅读笔记20220315)
- springboot热部署该怎么实现?springboot热部署实现方式
- 使用C#通过串口控制IT6333B电流源
- linux .mo文件,MO 文件扩展名: 它是什么以及如何打开它?
- 网页中通过js修改img的src属性刷新图片时,图片缓存问题现象表述及问题解决
- linux 时间 环境变量,Linux环境变量的修改(永久,暂时)以及修改ls显示的时间格式...
- STM32电子钟万年历Proteus仿真_LCD1602显示