之前一直听说过JDBC,但从来不知道它是何物的小伙伴们看过来啦!

一、概述

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成,是Java访问数据库的标准规范。

我们安装好数据库之后,我们的应用程序也是不能直接使用数据库的,必须要通过相应的数据库驱动程序,通过驱动程序去和数据库打交道。驱动是两个设备要进行通信,满足一定通信数据格式,数据格式由设备提供商规定,设备提供商为设备提供驱动软件,通过软件可以与该设备进行通信。

有了JDBC,程序员只需用JDBC API写一个程序,就可以访问所有数据库。将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。

JDBCAPI提供者是sun公司,供程序员调用的接口与类,集成在java.sql和javax.sql包中,可以管理各种不同的JDBC驱动,如:

1. DriverManager类:Driver接口由数据库厂家提供,作为java开发人员,只需要使用Driver接口就可以了。

2. Connection接口:Connection与特定数据库的连接(会话),在连接上下文中执行sql语句并返回结果。

3.Statement接口:用于执行静态SQL语句并返回它所生成结果的对象。

4.ResultSet接口:ResultSet提供检索不同类型字段的方法。

JDBC驱动的提供者是数据库厂商,负责连接各种不同的数据库。

JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。

那么JDBCAPI、JDBC驱动和JDBC三者有什么关系呢?

SUN公司是规范制定者,制定了规范JDBC(连接数据库规范);数据库厂商微软、甲骨文等分别提供实现JDBC接口的驱动jar包;程序员学习JDBC规范来应用这些jar包里的类。

JDBC访问数据库步骤:1.加载一个Driver驱动;2.创建数据库连接(Connection);3.创建SQL命令发送器Statement;4.通过Statement发送SQL命令并得到结果;5.处理结果(select语句);6.关闭数据库资源

二、JDBC语法总结

1. 加载驱动

2. 创建数据库连接

3. 创建Statement并发送命令

4. 处理ResultSet结果

5. 关闭数据库资源

三、使用PreparedSatement完善JDBC操作

如果需要多次执行一个SQL语句,可以使用PreparedStatement对象。在创建 PreparedStatement对象时,通过传递不同参数值多次执行PreparedStatement对象,可 以得到多个不同的结果。优势:执行效率高、代码可读性强、安全性高。

四、手动启动事务管理

在JDBC中,事务操作缺省是自动提交。一条对数据库的更新表达式代表一项事务操作,操作成功后,系统将自动调用commit()提交,否则调用rollback()回滚。

在JDBC中,事务操作方法都位于接口java.sql.Connection中,可以通过调用setAutoCommit(false)来禁止自动提交。之后就可以把多个数据库操作的表达式作为一个事务,在操作完成后调用commit()来进行整体提交,倘若其中一个表达式操作失败,都不会执行到commit(),并且将产生响应的异常;此时就可以在异常捕获时调用rollback()进行回滚,回复至数据初始状态。

事务结束的边界是commit或者rollback方法的调用。事务开始的边界则不是那么明显了,它会开始于组成当前事务的所有statement中的第一个被执行的时候。

五、采用分层实现JDBC案例

完成对雇员数据的多种操作

• 查询所有雇员

• 按照编号查询雇员

• 添加雇员

• 删除雇员

• 具体实现

• 定义包结构

• 定义实体类Employee

• 定义EmployeeDao接口

• 定义EmployeeDaoImpl

• 抽取BaseDao • 测试

java中sql语句怎么把开始和结束时间作为参数写sql查询_JDBC数据库连接怎么操作?...相关推荐

  1. java中sql语句怎么把开始和结束时间作为参数写sql查询_聊一聊MyBatis 和 SQL 注入间的恩恩怨怨

    整理了一些Java方面的架构.面试资料(微服务.集群.分布式.中间件等),有需要的小伙伴可以关注公众号[程序员内点事],无套路自行领取 引言 MyBatis 是一种持久层框架,介于 JDBC 和 Hi ...

  2. java中sql语句怎么把开始和结束时间作为参数写sql查询_java程序员跳槽的一道坎,大公司面试官都会问的Mybatis...

    一.什么是Mybatis? 1. Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动.创建连接.创建statement ...

  3. java中获取一天的开始时间和结束时间

    首先得导入hutool的核心包依赖, 因为获取开始和结束时间用的hutool中的DateUtil工具类. <dependency><groupId>cn.hutool</ ...

  4. Java中打印程序执行的开始时间和结束时间

    在程序开发中经常会用到比较代码执行效率问题,可以用System.currentTimeMillis()方法来记录一下 long start,end; start = System.currentTim ...

  5. java中goto用法源代码,java中goto语句解析12

    hi, 今天无意中看到有个兄弟在java程序中多次用到了goto语句,感觉很是怪异,copy来编译下发现有很多错误! 为此,我付出了一下午时间去研究这个块被人遗忘了的可怕的"魔鬼" ...

  6. Java中import语句的作用

    Java中import语句的作用 为了能够使用某一个包的成员,我们需要在 Java 程序中明确导入该包.使用"import"语句可完成此功能.在 java 源文件中 import ...

  7. 关于 Java 中 finally 语句块的深度辨析

    可不能小看这个简单的 finally,看似简单的问题背后,却隐藏了无数的玄机.接下来我就带您一步一步的揭开这个 finally 的神秘面纱. 问题分析 首先来问大家一个问题:finally 语句块一定 ...

  8. java switch中if_详解java中if语句和switch的使用

    if语句 说起if语句,那么不得不提起三元运算符 a>b?c=0:c=1; 如果a>b结果为true,那么c=0,为false,c=1 那么下面看下if语句 if(a>b)c=0; ...

  9. java中if语句的用法_Java中的if判断语句用法介绍

    在实际生活中经常需要做出一些判断,比如开车来到一个十字路口,这时需要对红绿灯进行判断,如果前面是红灯,就停车等候,如果是绿灯,就通行.Java中有一种特殊的语句叫做选择语句,它也需要对一些条件做出判断 ...

最新文章

  1. 使用Tensor Expression张量表达式处理算子
  2. bs4爬取的时候有两个标签相同_python爬虫初体验,爬取中国最好大学网大学名次...
  3. 利用WebClient类向服务器上载文件(转孟子的)
  4. 算法 - php - 二叉树遍历
  5. c++ assert()断言
  6. ASP.NET2.0 验证cookie详解
  7. 称重传感器知识:型号,认证,性能与选择
  8. Java 8 异步 API、循环、日期,用好提高生产力!
  9. Merry Christmas
  10. PC版微信/QQ防撤回工具(支持最新版)
  11. java+围棋+棋谱回放_聂卫平对战围棋高手Master完整比赛视频回放 全局棋谱复盘...
  12. 米家扫地机器人怎么加水_扫地机买什么 篇十:极速开箱! 米家扫地机1S 升级了啥?...
  13. 史上最全APP推广渠道,看看你最熟悉哪一种
  14. php 逻辑思维题,倘若3分钟内,你能答对这道智力题,说明你的逻辑思维能力很强...
  15. 数据可视化实验-茎叶图
  16. MTK平台设备和驱动的配置及使用--pmic驱动 pinctrl驱动
  17. HCTF2017-Web-Writeup
  18. 互联网二次造富:从技术公司到运营平台的蜕变
  19. 0day攻击防护措施有哪些?
  20. 第十一单元 面向对象-多态

热门文章

  1. Python SHA1加密算法
  2. Tensorflow Object detection API 在 Windows10 配置
  3. latex摘要目录页眉缺少一个空格
  4. 帝国cms php替换,帝国CMS内容关键字替换图片标签解决方法
  5. linux内核网络raw_cpu_add,深入理解Linux网络技术内幕-设备注册和初始化(四)
  6. oracle 随机排列,oracle的随机排序
  7. python中deepcopy函数_Python学习笔记函数之copy()和deepcopy()
  8. spss数据_怎么建立SPSS数据库、录入数据?
  9. WeX5 3.8开发工具之蓝牙打印(全流程记录不是最全,胜似最全)
  10. java基础学习笔记(一)