JDBC流程


最近要学习Mybatis的源码,因此对JDBC的使用进行总结。

一、JDBC概述

JDBC的定义
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

JDBC的作用
让我们通过我们的程序操作数据库,是java的核心技术之一。

二、JDBC流程详解

JDBC操作数据库共包括6个步骤:

  • 注冊驱动 (仅仅做一次)

  • 建立连接(Connection)

  • 创建传输器Statement

  • 运行SQL语句

  • 处理运行结果(ResultSet)

  • 释放资源

下面就分别针对六个步骤进行说明。

第一步:注册驱动

注冊驱动有三种方式:

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

推荐这样的方式,不会对详细的驱动类产生依赖

2、DriverManager.registerDriver(com.mysql.jdbc.Driver);

会对详细的驱动类产生依赖

3、System.setProperty(“jdbc.drivers”, “driver1:driver2”);

尽管不会对详细的驱动类产生依赖,但注冊不太方便,所以非常少使用

第二步:建立连接

通过Connection建立连接,Connection是一个接口类。其功能是与数据库进行连接(会话)。

建立Connection接口类对象:

Connection conn =DriverManager.getConnection(url, user, password);

user为登录数据库的username,如root

password为登录数据库的密码,为空填””

当中url的格式要求为:

//子协议:子名称//主机名:port/数据库名?属性名=属性值&…
url = "jdbc:mysql://localhost:3306/test“

第三步:创建传输器Statement

运行对象Statement负责运行SQL语句。由Connection对象产生。

Statement st = connection.createStatement();

Statement接口类还派生出两个接口类PreparedStatement和CallableStatement,这两个接口类对象为我们提供了更加强大的数据訪问功能。

PreparedStatement接口

PreparedStatement能够对SQL语句进行预编译,这样防止了SQL注入,提高了安全性。

PreparedStatement ps=connection.prepareStatement( "update user set id = ? where username = ?); 
//sql语句中用?作为通配符,变量值通过参数设入:ps.setObject(1, object);

此外预编译结果能够存储在PreparedStatement对象中,当多次运行SQL语句时能够提高效率。作为Statement的子类,PreparedStatement继承了Statement的全部函数。

CallableStatement接口

CallableStatement类继承了PreparedStatement类,他主要用于运行SQL存储过程。

在JDBC中运行SQL存储过程须要转义。

JDBC API提供了一个SQL存储过程的转义语法:

{
   call<procedure-name>[<arg1>,<arg2>, ...]}
//procedure-name:是所要运行的SQL存储过程的名字
//[<arg1>,<arg2>, ...]:是相相应的SQL存储过程所须要的參数

第四步:运行SQL语句

运行对象Statement 或 PreparedStatement 提供两个经常使用的方法来运行SQL语句:

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值