我想大家都知道ODBC是什么?ODBC(OpenDatabaseConnectivity。开放数据库互连)是微软公司开放服务结构(WOSA,WindowsOpenServicesArchitecture)中有关数据库的一个组成部分。它建立了一组规范,并提供了一组对数据库訪问的标准API(应用程序编程接口)。

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于运行SQL语句的Java API,能够为多种关系数据库提供统一訪问。它由一组用Java语言编写的类和接口组成。事实上他们都是一样的,为连接数据库提供一组API!

理解JDBC

提供了统一方式訪问数据库的API,提供独立于平台的数据库訪问,对专有的数据库问题的是透明的。

JDBC驱动程序

我们来看一个图,JAVA引用程序是通过驱动呢来和数据库进行连接的。连接不同的数据库载入不同的驱动!

比如我们连接sql server 数据库,那么我们就要载入sql server 驱动。首先要从网上下载对应的驱动包sqljdbc_4.0.2206.100_chs.tar假设你的数据库是sql server 2008以后版本号的, 那么就能够用这个一个(sqljdbc4.jar)就能够了,当然假设是曾经的,你能够查一下我没研究过,但我想说(你真执着!)。

看一下用Eclipse 连接sql server 数据库的使用方法!有图有真相。

首先打开Eclipse后,随便的简历一个java 项目。然后随便的建一个包。包下边在创建一个类!

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhhbmdob25namllMDMwMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

然后右键单击项目名,选择Build Path  然后在选择Configure Build Path….

然后选择上边的Libraries,单击Add External JARs…. 然后找到你从网上下载好的sqljdbc4.jar文件, 一定要下载好正确的文件。否则你会非常懊悔!

所以建议你从这里下载(标准的sqljdbc4.jar)。

确定好有sqljdbc.jar文件以后(一定要看好后缀名),就能够单击OK了。

然后如图所看到的,当写代码的时候的驱动的路径就放在java.sql.Driver文件里,到时候为了防止写错,能够来这里粘贴!

而他真实使用的驱动类就放在com.microsoft.sqlserver.jdbc的包中,想看一下直接进去找,里边类有非常多,详细什么作用直接去网上查就能够了。

然后就能够进行编码了,编码前首先要引入几个文件,java.sql.Connection; java.sql.DriverManager; java.sql.PreparedStatement; java.sql.ResultSet;在程序中就能够直接使用这几个类了!

<span style="font-size:18px;">package com.tgb;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet; public class jdbcConn { public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
jdbcConn.test(); } public static void test() throws Exception{
Connection conn = null;
PreparedStatement ps=null;
ResultSet rs= null; try {
//定义驱动的路径,该路径在services下的java.sql.Driver中。
String driverPath="com.microsoft.sqlserver.jdbc.SQLServerDriver";
//载入驱动
Class.forName(driverPath);
//是从当前JVM的载入器(可能多个)中选取适合的数据库驱动并获得连接
conn=DriverManager .getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=DB_ChargeSystem","sa","123456");
//SQL语句
String sql = "select * from T_UserInfo";
//向已经连接的数据库中发送sql语句,该sql语句在PreparedStatement对象中已经惊醒了编译!
ps = conn.prepareStatement(sql);
//返回sql语句的运行结果。
rs = ps.executeQuery();
//对结果进行操作,现将他打印出来, 在实际中进行更复杂的操作!
while (rs.next()) {
System.out.println(rs.getString(1));
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
//关闭全部打开的连接,
try {
rs.close();
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}finally{
try {
ps.close();
} catch (Exception e3) {
// TODO: handle exception
e3.printStackTrace();
}finally{
conn.close();
}
}
}
}
}</span>

这个仅仅是一个简单的实例。在实际的应用中我们还要好好的对这种方法进行进一步的封装。然后就能够代码简化非常多。

上边的实例为sql server数据库的连接。事实上其它数据库的连接跟这个本质上是一样的。虽然JDBC在JAVA语言层面实现了统一,但不同数据库仍旧有很多差异。

为了更好地实现跨数据库操作,于是诞生了Hibernate目,Hibernate是对JDBC的再封装,实现了对数据库操作更宽泛的统一和更好的可移植性。

期待进一步的学习!

J2EE的13个规范之(二) JDBC 及其使用的更多相关文章

  1. (转)J2EE中13个规范

       今天在做连接oracle数据库的时候,感受到了什么是规范.平时听到别人说学习j2ee一定要学习他的十三个规范,大概的知道每个规范是做什么的,每个“接口”是做什么的.          很早就听过 ...

  2. 【java 理论篇 2】J2EE的13种规范

    导读:看完了J2EE的视频,没有什么技术实践,现在就从理论上说明一下J2EE的13种规范,以及现在的自己对它的一个理解.可能会有偏差,但是,算是做为目前的一个记录. 一.13种规范 1.1.JDBC( ...

  3. J2EE的13个规范总结

    转载自:http://blog.csdn.net/zhuanzhe117/article/details/38763483 什么是J2EE? 在企业级应用中,都有一些通用企业需求模块,如数据库连接,邮 ...

  4. J2EE之13个规范标准概念

    主要是关于j2EE十三个规范的总结. java基础知识 首先java分为三类:J2ME.J2SE.J2EE. 依据开发软件的大小和量级他们的作用分别不同,J2ME是开发为机顶盒.移动电话和PDA之类嵌 ...

  5. J2EE的13个规范之JDBC

    假设让你接触一样新的东西.你可能感觉无所适从,可是假设本来就是旧事物的话,你学习起来还难吗? 一.ODBC,我们的老朋友 ODBC(Open Database Connectivity)是微软公司与数 ...

  6. J2ee的13个规范

    以下来自于网络. 1.JDBC(java Database Connectivity): JDBC API为访问不同的数据库提供了一种统一的途径,就像ODBC一样,JDBC对开发者屏蔽了一些细节问题, ...

  7. J2EE的13种规范

    1.JDBC(Java Databaes Connectivity):JDBC API为访问不同的数据库提供了一种统一的途径,就像ODBC一样,JDBC对开发者屏蔽了一些细节问题,同时,JDBC对数据 ...

  8. J2EE的13个规范之(三) Servlet简单介绍

    Servlet是一种server端脚本,它是一个特殊的Java类,继承自HttpServlet.开发中主要用于处理和响应client的请求. Servlet在容器中执行,事实上例的和销毁创建由容器进行 ...

  9. j2ee的十三个规范

    转载 今天在做连接oracle数据库的时候,感受到了什么是规范.平时听到别人说学习j2ee一定要学习他的十三个规范,大概的知道每个规范是做什么的,每个“接口”是做什么的.          很早就听过 ...

随机推荐

  1. JAVA GUI学习 - JOptionPane对话框组件学习

    /** * 对话框 - 学习笔记 * @author Wfei * */ public class JoptionPaneKnow extends JFrame { public JoptionPan ...

  2. QT renered html for js

    voidMainWindow::on_pushButton_clicked() { QStringurl="http://www.baidu.com"; url="htt ...

  3. [译]Stairway to Integration Services Level 6 - SSIS 工作流管理基础

    简介 在之前的章节中,我们学习了增量载入数据. 本文中.我们通过优先约束(Precedence Constraints)来管理SSIS的工作流. 添加一个SSIS包 图 1 将新建的Package1. ...

  4. 关于Repeater中使用DorpWownList的问题

    关于Repeater中使用DorpWownList的问题 前台: <asp:Repeater ID="Repeater1" runat="server" ...

  5. java中只能有一个实例的类的创建

    Java中,如果我们创建一个类,想让这个类只有一个对象,那么我们可以 1:把该类的构造方法设计为private 2:在该类中定义一个static方法,在该方法中创建对象 package test; / ...

  6. BZOJ 2748 音量调节

           这道题我开始做时想用搜索来做,但是失败了,后来仔细一想发现这就是一个背包问题,之后一切就简单多了.        代码如下: #include<cstdio> #includ ...

  7. JavaSE学习总结第24天_多线程2

      24.01  JDK5之后的Lock锁的概述和使用 虽然我们可以理解同步代码块和同步方法的锁对象问题,但是我们并没有直接看到在哪里加上了锁,在哪里释放了锁,为了更清晰的表达如何加锁和释放锁,JDK ...

  8. BZOJ 1726: [Usaco2006 Nov]Roadblocks第二短路( 最短路 )

    从起点和终点各跑一次最短路 , 然后枚举每一条边 , 更新answer ---------------------------------------------------------------- ...

  9. 关于java中强制转换

    在百度上遇到一个问题,描述如下: 在java中,定义两个变量 byte x = (byte) 128; byte y = (byte)-129; 输出后,为什么结果是-128和128? 借此机会,自己 ...

  10. 安卓开发37:自定义的HorizontalScrollView类,使其pageScroll的时候焦点不选中

    自定义一个HorizontalScrollView类,主要为了让这个HorizontalScrollView不能鼠标点击,不能左右按键,并且没有焦点. public class ImageMoveHo ...