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

JDBC 编程基本步骤 

一、装载驱动程序

  

String DriveName="net.sourceforge.jtds.jdbc.Driver"
Class.forName(DriveName)

在使用JDBC之前必须引入 相应的驱动jar包,不同的数据库产品会有各自的jar包。 DriveName为驱动jar包中的类。

例如连接 sybase 可以使用 jtds-1.2.6.jar 和 jconn4.jar, 不同的数据库厂家都会对jdbc类做一些扩展,以便实现特殊功能。不过一般情况下使用标准的jdbc接口能满足大部分需求 。

二、建立连接

String ServerUrl="jdbc:sybase:Tds:HOSTNAME:5000/testdb";
String UserName="sa";
String Password="123456"; Connection conn=DriverManager.getConnection(ServerUrl,
UserName, Password);
ServerUrl 为连接字符串, 连接字符串包含jdbc使用的 subprotocol, 服务起地址和端口信息, 以及需要连接的数据库。连接字符串一般由驱动程序产家提供。 
UserName 为用户名, Password为相应的密码 三、创建操作对象
Statement stment=conn.createStatement();
ResutlSet rset=stment.executeQuery("SELECT * FROM T_SALES");

Statement对象提供了执行SQL的方法executeXXXX(), 对应查询有 executeQuery(String sql)方法. 另外,还有PreparedStatement对象,可以预先对SQL做处理。

PreparedStatement ppstment = conn.prepareStatement("insert into TXN_LOG  values (?, ?)");
  ppstment.setString(1, "first_field_content_here" ); // 1 对应第1个 ? 号
  ppstment.setString(2, "second_field_content_here" ); // 1 对应第1个 ? 号
  ppstment.execute();

四、处理结果

JDBC 使用 ResultSet对象存取select 语句返回的结果

ResultSet rst=null;
rst=stment.executeQuery("SELECT * FROM TXN_LOG");
while(rst.next())
{
String outline=null;
outline=rst.getString(1) +"|" ; // 通过序号1 找到Field中的内容
outline+=rst.getString("TXN"); // 通过字段名字找到Field中的内容
System.out.println(outline);
}

五、关闭连接

conn.close()

完成数据库操作之后,一般需要显示调用close方法,关闭连接。

JDBC事务处理 

一般JDBC连接数据库之后,默认设置为“自动提交”,即每次SQL操作都commit.  如果需要手动提交,则必须将自动提交功能设置为false.

conn.setAutoCommit(false);
....
....
conn.commit() // 提交

非自动提交模式下,代码中必须 调用 commit方法。

JDBC 批量处理

对于大批量的数据插入、数据更新操作, 一般需要使用JDBC批量提交的方式处理。Statement 对象和 PreparedStatement 提供了 addBatch() 和 executeBatch方法来实现批量提交。

// Statement实现
stment.addBatch("SQL1");
stment.addBatch("SQL2");
......
stment.executeBatch(); // 执行批量处理 // PreparedStatement 方式
ppstment.setString(1, sb.toString());
ppstment.setString(2, sb.toString());
ppstment.addBatch();

采用 批量处理的方式,可以大大提高处理性能

JDBC 连接字符串对处理性能的影响

今天测试Sybase的插入性能时,发现不同的连接字符串,处理性能不一样

同一个jar中的驱动程序名  "net.sourceforge.jtds.jdbc.Driver"    jtds-1.2.6.jar

1、"jdbc:jtds:sybase://ZHOUSHUANG02:5000/testdb"

2、“jdbc:sybase:Tds:ZHOUSHUANG02:5000/testdb”

采用同样的程序测试,批量提交方式每次 500条, 插入10w 条数据

标号 1 2 3 AVG
1 "jdbc:jtds:sybase://ZHOUSHUANG02:5000/testdb" 28s 71s 72s 5
2  “jdbc:sybase:Tds:ZHOUSHUANG02:5000/testdb” 14s 11s 11 13s

从统计数据可以看出,不同的连接字符串的处理时间不一致。

JDBC 基础的更多相关文章

  1. jdbc基础 (五) 连接池与数据源 DBCP以及C3P0的使用

    一.连接池的概念和使用 在实际应用开发中,特别是在WEB应用系统中,如果JSP.Servlet或EJB使用JDBC直接访问数据库中的数据,每一次数据访问请求都必须经历建立数据库连接.打开数据库.存取数 ...

  2. jdbc基础 (四) 批处理

    批处理,就是字面上的意思,一次性处理一批sql语句. 直接看例子吧: package com.cream.ice.jdbc; import java.sql.Connection; import ja ...

  3. jdbc基础 (三) 大文本、二进制数据处理

    LOB (Large Objects)   分为:CLOB和BLOB,即大文本和大二进制数据 CLOB:用于存储大文本 BLOB:用于存储二进制数据,例如图像.声音.二进制文件 在mysql中,只有B ...

  4. jdbc基础 (二) 通过properties配置文件连接数据库

    csdn博文地址:jdbc基础 (二) 通过properties配置文件连接数据库 上一篇描述了对mysql数据库的简单操作,下面来看一下开发中应该如何灵活应用. 因为jdbc对数据库的驱动加载.连接 ...

  5. JDBC基础教程

    本文实例讲述了JDBC基础知识与技巧.分享给大家供大家参考.具体分析如下: 1.什么是JDBC? 通俗来讲JDBC技术就是通过java程序来发送SQL语句到数据库,数据库收到SQL语句后执行,把结果返 ...

  6. Java 中 JDBC 基础配置

    Java 中 JDBC 基础配置 <resource auth="Container" driverclassname="oracle.jdbc.driver.Or ...

  7. Unit01: JDBC原理 、 JDBC基础编程

    Unit01: JDBC原理 . JDBC基础编程 这个文件里面有两块内容: 1.用比较麻烦的方式连接数据库,test1(),test4() 2.创建DBTool,测试DBTool连接数据库 ,tes ...

  8. Java应用程序连接数据库--JDBC基础

    Java应用程序连接数据库--JDBC基础   Java应用程序连接数据库–JDBC基础 <!-- MySQL驱动,连接数据库用,由数据库厂商提供 --> <dependency&g ...

  9. JDBC基础教程:tutorialspoint-jdbc

    来自turorialspoint的JDBC基础教程(英文),官网:https://www.tutorialspoint.com/jdbc/index.htm 这个教程在国内已经被翻译成中文(不过是属于 ...

  10. JDBC基础:JDBC快速入门,JDBC工具类,SQL注入攻击,JDBC管理事务

    JDBC基础 重难点梳理 一.JDBC快速入门 1.jdbc的概念 JDBC(Java DataBase Connectivity:java数据库连接)是一种用于执行SQL语句的Java API,可以 ...

随机推荐

  1. maven配置文件详解

    settings.xml 本篇文章主要对maven中setting.xml配置文件进行解释 1.声明规范 <settings xmlns="http://maven.apache.or ...

  2. bash中声明变量方法

    bash提供了declare命令来声明变量,该命令的基本语法如下: declare attribute variable      其中,attribute表示变量的属性,常用的属性有如下所述.   ...

  3. python操作mysql,增,删,改,查

    import MySQLdb conn = MySQLdb.connect(host='192.168.1.21',user='yangqw',passwd='1',db='free')cur = c ...

  4. Linux网络设备驱动架构

    Linux网络设备驱动程序体系结构分为四层:网络协议接口层.网络设备接口层.提供实际功能的设备驱动层以及网络设备与媒介层. (1)网络协议接口层向网络层协议提供统一的数据包收发接口,不论上层协议是AR ...

  5. 实现iota函数

    void Reverse(char *s) { char temp; char *p = s; char *q = s; while (*p != '\0') { p ++; } q --; whil ...

  6. kindeditor使用

    下载地址http://kindeditor.net/down.php @官方文档 使用步骤: 引入js <script charset="utf-8" src="r ...

  7. java IO(五):字节流、字符流的选择规律

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  8. MySQL复制相关变量

    server_id是必须设置在master和每个slave上的唯一标识ID,其取值范围 是1~4294967295之间,且同一个复制组之内不能重复 server_uuid:server_uuid会在G ...

  9. tomcat部署最佳实践(一)

    Tomcat部署最佳实践 标签: linux 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 tomcat是玩web软件必会技能之一,今天我给大家介绍一下tomc ...

  10. python 编写简单的setup.py

    学习python也已经有一段时间了,发现python作为脚本语言一个很重要的特点就是简单易用,而且拥有巨多的第三方库,几乎方方面面的库都有,无论你处于哪个行业,想做什么工作,几乎都能找到对应的第三方库 ...