1.DriverManager用来建立和数据库的链接以及管理JDBC驱动程序

driverManager的常用方法

方法 描述
registerDriver(Driver driver) 在DerverManager中注册JDBC驱动程序
getConnection(String url,String user,String pwd) 建立和数据库的连接,返回Connection对象
setLoginTime(int seconds) 设定等待数据库连接的最长时间
setLogWriter(PrintWriter out) 设定输出数据库日志的PrintWriter对象

2.Connection代表Java程序和数据库的连接

Connection的常用方法

方法 描述
getMetaData()  获取一个 DatabaseMetaData 对象,该对象包含关于此 Connection 对象所连接的数据库的元数据。例如当前数据库连接的用户名,数据库的最大连接数,以及数据库的版本等。
createStatement() 创建并返回Statement对象
prepareStatement(String sql) 创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。

3.Statement用来执行静态的SQL语句。例如:对于insert,update和delete语句,可以调用executeUpdate(String sql)的方法;对于select语句,可以调用executeQuery(String sql方法),这个方法返回一个ResultSet对象。

例如:

String sql="select id,name,title,price from books where name='tom' and price=40";

ResultSet rs=stmt.executeQuery(sql);//stmt为Statement对象

4.PreparedStatement用来执行动态的SQL语句。

例如:

String sql="select id,name,title,price from books where name=? and price=?";

在这种情况,用PreparedStatement比Statement更方便,因为PreparedStatement允许sql语句中包含参数。

PreparedStatement具体使用如下:

(1)生产PreparedStatement对象。例如:SQL语句中name的值和price的值都用"?"来替代,他们表示两个可以被替换的参数:

  String sql="select id,name,title,price from books where name=? and price=?";

  PrepareStatement prepStmt=conn.prepareStatement(sql);

(2)调用PreparedStatement的setxxx方法,给参数赋值:

  prepStmt.setString(1,"tome");

  prepStmt.setString(2,40);

(3)执行SQL语句:

  ResultSet=prepStmt.executeQuery();

5.ResultSet表示select语句查询得到的记录集合。

(1)ResultSet的记录行号从1开始,一个Statement对象在同一时刻只能打开一个ResultSet对象。调用ResultSet的next()方法可以使游标定位到下一条记录。调用ResultSet的getxxx()方法可以取得某个字段的值。

(2)ResultSet既可以通过字段的序号来指定字段,也可以通过字段的名字来指定字段。

例如:

String sql="select id,name,title,price from books where name='tome' and price=40";

ResultSet rs=stmt.executeQuery(sql);

如果要访问id字段,可以用

rs.getString(1); 或者rs.getString("id");

如果要取出ResultSet中所有记录,可以采用下面的循环语句:

while(rs.next()){

  String col1=rs.getString(1);

  String col2=rs.getString(2);

  String col3=ts.getString(3);

  float col4=rs.getFloat(4);

}

6.总结介绍JDBC访问数据库的步骤

  (1)装载并注册数据库JDBC驱动程序,(其中JDBC-ODBC Driver是在JDK中自带的,默认已经注册,所以不需要再注册)

    //装载JdbcOdbcDriver.class(只需要装载,不需要注册)

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

    //装载并注册SQLServerDriver

    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

    java.sql.DriverManager.registerDriver(new com.microsoft.jdbc.sqlserver.SQLServerDriver());

    //装载并注册OracleDriver

    Class.forName("oracle.jdbc.driver.OracleDriver");

    java.sql.DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

    //装载并注册MySQLDriver

    Class.forName("com.mysql.jdbc.Driver");

    java.sql.DriverManager.registerDriver(new com.mysql.jdbc.Driver());//这个注册不上必要的

    说明:

      对于mysql的驱动程序类com.mysql.jdbc.Driver,在JVM加载这个类时,会执行以下静态代码

      static{

        try{

          java.sql.DriverManager.registerDriver(new Driver());

        }catch(){

          throw new RuntimeException("..");

        }

        ....

      }

      所以程序中只要通过Class.forName方法加载mysql driver类即可,可以不需要再注册。

  (2)建立与数据库的连接

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

    mysql: url="jdbc:mysql://localhost:3306/dbName";

  (3)创建Statement对象,准备调用SQL语句

    Statement stmt=conn.createStatement();

  (4)调用SQL语句:

    String sql="select id,name,title,price from books where name='tom' and price=40";

    ResultSet rs=stmt.executeQuery(sql);

  (5)访问ResultSet中的记录集    

  (6)一次关闭 ResultSet,Statement和Connection对象:

    rs.close();

    stmt.close();

    conn.close();

7.事务处理

  (1)在Connection类中提供了3个控制事物的方法:

    setAutoCommit(boolean autoCommit);设置是否自动提交事物

    commit();提交事物

    rollback();回滚事物

  (2)在DJBC API中,默认情况下为自动提交事物。可以通过调用setAutoCommit(false)来禁止提交事物。

    try{

      con.java.sql.DriverManager.getConnection(dbUrl,user,dbPwd);

      //禁止自动提交,设置回滚点

      con.setAutoCommit(false);

      stmt=con.createStatement();

      //数据库更新操作1

      stmt.executeUpdate("update account set money=money-1000 where name='zhangsan'");

      //数据库更新操作2

      stmt.executeUpdate("update account set money=money+1000 where name='lisi'");

      //事物提交

      con.commit();

    }catch(Exception e){

      e.printStackTrace();

      //操作不成功事物回滚

      con.rollback();

    }finally{

      stmt.close();

      con.close();

    }

JDBC介绍的更多相关文章

  1. JDBC(1):JDBC介绍

    一,JDBC介绍 SUN公司为了简化.统一对数据库的操作,定义了一套Java操作数据库的规范(接口),称之为JDBC.这套接口由数据库厂商去实现,这样,开发人员只需要学习jdbc接口,并通过jdbc加 ...

  2. 关于Java(JDBC介绍)

    JDBC API 允许用户访问任何形式的表格数据,尤其是存储在关系数据库中的. JDBC 简单功能 连接数据源,如数据库 传给数据库查询和更新指令 获取并处理数据库返回结果(对查询等的响应) 示例代码 ...

  3. JAVA记录-JDBC介绍

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

  4. (一)mybatis之JDBC介绍

    前言:为什么在学mybatis之前要先了解JDBC呢?因为mybatis是以ORM模型为中心思想的框架,而所有的ORM模型都是基于JDBC进行封装的,不同的ORM模型对JDBC封装的强度是不一样的. ...

  5. 【Spring JDBC】spring jdbc 介绍(一)

    Spring JDBC模块是Spring框架的基础模块之一.在Spring JDBC模块中,所有的类可以被分到四个单独的包: core 核心包:它包含了JDBC的核心功能.此包内有很多重要的类,包括: ...

  6. JDBC介绍和Mybatis运行原理及事务处理

    本博客内容非自创,转载自以下三位,侵删: https://juejin.im/post/5ab7bd11f265da23906bfbc5 https://my.oschina.net/fifadxj/ ...

  7. day17-jdbc 2.jdbc介绍

    SQL是一种非过程性语言,只能写一条嘛,你写多条不行嘛.每个数据库都有自己的存储过程.你可以做编程,你可以写多条SQL语句把它放到一起.这就是存储过程.然后用的时候一调它就执行这个逻辑结构了.因为多条 ...

  8. 成都传智播客JDBC视频及讲师介绍

    成都传智播客java讲师,也许,你跟他很熟,你或者听过他的课,或者跟他争论过什么,又或者你们在一起共事,再者你们只是偶尔擦肩而过.在小编的印象中郭老师完全没有架子,和他相处会让你觉得不是面对一个老师, ...

  9. JDBC相关概念介绍

    一.JDBC相关概念介绍 1.1.数据库驱动 这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网卡 ...

随机推荐

  1. Android快乐贪吃蛇游戏实战项目开发教程-06虚拟方向键(五)绘制方向键箭头

    本系列教程概述与目录:http://www.cnblogs.com/chengyujia/p/5787111.html本系列教程项目源码GitHub地址:https://github.com/jack ...

  2. Fresnel Reflection - 菲涅尔反射

    [Fresnel Reflection - 菲涅尔反射] “菲涅尔”是一个人的名字,因为他发现了一个有关反射的光学现象,这个现象就用这个人的名字命名了.那么,是什么现象呢? 这就是反射/折射与视点角度 ...

  3. 作为前端应当了解的Web缓存知识

    缓存优点 通常所说的Web缓存指的是可以自动保存常见http请求副本的http设备.对于前端开发者来说,浏览器充当了重要角色.除此外常见的还有各种各样的代理服务器也可以做缓存.当Web请求到达缓存时, ...

  4. vuex复习方案

    这次复习vuex,发现官方vuex2.0的文档写得太简略了,有些看不懂了.然后看了看1.0的文档,感觉很不错.那以后需要复习的话,还是先看1.0的文档吧.

  5. 基于HTTP的断点传输

    最近项目需要做一个类似于迅雷的文件下载功能,这类需求可能比较常见,希望可以帮助到有需要的同学 要求: 1.支持断点传输 2. 多文件同时下载 3. 由于是客户内部试用,服务器只支持HTTP文件下载不支 ...

  6. MySql免安装版安装配置,附MySQL服务无法启动解决方案

          文首提要:             我下载的MySQL版本是:mysql-5.7.17-winx64.zip  Archive版:系统:Windows7 64位. 一.解压文件 下载好My ...

  7. Atitit osi tcp ip 对应attilax总结

    Atitit osi tcp ip 对应attilax总结 Atitit 网络摄像机又叫IP CAMERA(简称IPC)常见的协议组合 网络摄像机又叫IP CAMERA(简称IPC)由网络编码模块和模 ...

  8. 前端学HTTP之摘要认证

    前面的话 上一篇介绍的基本认证便捷灵活,但极不安全.用户名和密码都是以明文形式传送的,也没有采取任何措施防止对报文的篡改.安全使用基本认证的唯一方式就是将其与SSL配合使用 摘要认证与基本认证兼容,但 ...

  9. knockout+echarts实现图表展示

    一.需要学习的知识 knockout, require, director, echarts, jquery.简单的入一下门,网上的资料很多,最直接就是进官网校习. 二.效果展示 三.require的 ...

  10. 从零开始编写自己的C#框架(18)——Web层后端权限模块——菜单管理

    从本章开始,主要讲解的是页面中对框架相关功能的调用方法,比如列表页面(又分为有层次感列表和普通列表).编辑页面.多标签页面等,只要熟悉了这些函数的使用方法,那么开发起来就会很便捷了. 1.如图先创建菜 ...