JDBC:Java Data Base Connection

JDBC是用于运行sql语句并从数据库中获取新新的java API.

JDBC是用来(让我们的程序)通过网络来操作数据库的,作用非常重要;JDBC技术也是Java核心技术之中的一个。

是使用JDBC驱动程序訪问数据库的首选方式

通过JDBC操作数据库——步骤:

  第1步:注冊驱动 (仅仅做一次)

  第2步:建立连接(Connection)

  第3步:创建运行SQL的语句(Statement)

  第4步:运行语句

  第5步:处理运行结果(ResultSet)

  第6步:释放资源

使用JDBC第一步:载入驱动

  注冊驱动有三种方式:

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

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

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

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

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

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

使用JDBC第二步:建立连接

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

  建立Connection接口类对象:

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

  当中URL的格式要求为:

  JDBC:子协议:子名称//主机名:port/数据库名?属性名=属性值&…

  如:"jdbc:mysql://localhost:3306/test“

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

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

使用JDBC第三步:创建运行对象

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

  Statement st = connection.createStatement();

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

  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存储过程所须要的參数

使用JDBC第四步:运行SQL语句

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

  executeQuery(Stringsql),该方法用于运行实现查询功能的sql语句。返回类型为ResultSet(结果集)。

  如:ResultSet  rs =st.executeQuery(sql);

  executeUpdate(Stringsql),该方法用于运行实现增、删、改功能的sql语句,返回类型为int,即受影响的行数。

  如:int flag = st.executeUpdate(sql);

使用JDBC第五步:处理运行结果

  ResultSet对象

  ResultSet对象负责保存Statement运行后所产生的查询结果。

  结果集ResultSet是通过游标来操作的。

  游标就是一个可控制的、能够指向随意一条记录的指针。

  有了这个指针我们就能轻易地指出我们要对结果集中的哪一条记录进行改动、删除,或者要在哪一条记录之前插入数据。一个结果集对象中仅仅包括一个游标。

  另外,借助ResultSetMetaData ,可以将数据表的结构信息都查出来。

  ResultSetMetaData rsmd= resultSet.getMetaData();

使用JDBC 第六步——释放资源

  见随笔:java mysql数据库链接与资源关闭

  数据库资源不关闭,其占用的内存不会被释放,徒耗资源,影响系统。

文章改动自: 学习Java JDBC,看这篇就够了

java JDBC编程流程步骤的更多相关文章

  1. JDBC编程的步骤

    一.进行JDBC编程的步骤大致如下: 1.      加载数据库驱动,通常使用Class类的forName()静态方法来加载驱动.如下代码: Class.forName(dirvirClass) 上面 ...

  2. Spring MVC 编程流程步骤

    Spring MVC 编程流程步骤 1. 建立Maven工程 2. 添加Spring MVC依赖 <dependencies> <dependency> <groupId ...

  3. Java JDBC编程套路教程

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5847020.html  学习Java开发,一个必须掌握的知识点,就是数据库操作.当程序需要用到的数据达到一定程 ...

  4. 小菜鸟之java JDBC编程

    JDBC技术 百度简介 :  JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一 ...

  5. JDBC编程流程以及详细代码

    加载驱动 打开连接 执行查询 处理结果 清理环境 import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Co ...

  6. Java JDBC下执行SQL的不同方式、参数化预编译防御

    相关学习资料 http://zh.wikipedia.org/wiki/Java数据库连接 http://lavasoft.blog.51cto.com/62575/20588 http://blog ...

  7. JavaEE之JDBC编程[详解]

    1.数据库简介 数据库(DB,Data Base ) 数据库管理系统(DBMS,Data Base Management System) 关系型数据库(RDB) 关系型数据库管理系统(RDBMS) S ...

  8. JDBC编程之程序优化

    -----------------siwuxie095 首先下载 MySQL 的 JDBC 驱动,下载链接: https://dev.mysql.com/downloads/connector/j/ ...

  9. JDBC编程之数据更新

    -------------------siwuxie095                             JDBC 编程之数据更新             首先下载 MySQL 的 JDBC ...

随机推荐

  1. K8S学习笔记之二进制部署Kubernetes v1.13.4 高可用集群

    0x00 概述 本次采用二进制文件方式部署,本文过程写成了更详细更多可选方案的ansible部署方案 https://github.com/zhangguanzhang/Kubernetes-ansi ...

  2. systemd 服务介绍

    CentOS7自定义系统服务 CentOS7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,需要开机不登陆就能运行的程序,存在系统 ...

  3. 国服最强JWT生成Token做登录校验讲解,看完保证你学会!

    转载于:https://blog.csdn.net/u011277123/article/details/78918390 Free码农 2017-12-28 00:08:02 JWT简介 JWT(j ...

  4. Quick Union

    Quick Union quick union就是快速连接 和quick find相同,也是构建一个数组id[],不过存的值换一种理解: 每个数组内的元素看做一个结点,结点内的值即id[i]看做i的前 ...

  5. StringUtils工具类常用方法汇总(截取、去除空白、包含、查询索引)

    一.截取   StringUtils中常用的截取字符串的方法如下: substring(String str,int start) substring(String str,int start, in ...

  6. 【Alpha】Scrum Meeting 6

    目录 前言 任务分配 燃尽图 会议照片 签入记录 困难 前言 第6次会议在4月10日22:00由PM在一公寓三楼召开. 交流确认了任务进度,对下一阶段任务进行分配.时长15min. 任务分配 姓名 当 ...

  7. AjaxPro对象参数传递

    1.客户端配置 2.服务端注册,配置 对象参数用到的方法 3.Web.config文件配置 需要注意的是ajax以及ajaxpro调用的方法必须是静态方法,如果存在非静态方法可以从页面作为参数传递

  8. 一: DRF web应用框架基础,及序列化器的使用

    ---恢复内容开始--- 一: web 应用模式(有两种) 1: 前后端不分离(前端从后端直接获取数据) 2: 前后端分离 二: api 接口 原因一: 为了在团队内部形成共识.防止个人习惯差异引起的 ...

  9. Vs10.设置.高亮(20190327)

    ZC:(20190327)只要使用的是 "Highlight all occurrences of selected word" 和 "Visual Assist X&q ...

  10. ubuntu解压命令(转)

    -c: 建立压缩档案 -x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的参数是 ...