java与数据库连接odbc_详解java数据库连接之JDBC-ODBC桥连方式
java数据库连接方式有两种,其中JDBC-ODBC桥连方式属于之一,JDBC-ODBC桥连方式连接数据库适用于JDK1.8之前的JDK版本。具体的连接过程详见下文。
详析JDBC-ODBC桥连方式
JDK提供JDBC接口,JDBC是一种可以执行SQL语句的JavaAPI,是连接数据库和Java应用程序的纽带,但是注意提供的只是接口,数据库提供商实现这些接口,就是所谓数据库驱动。Java调用数据库驱动,驱动真正执行数据库操作。
ODBC(开放数据库互连)是Microsoft引进的一种早期数据库接口技术。它实际上是ADO的前身。早期的数据库连接是非常困难的. 每个数据库的格式都不一样,开发者得对他们所开发的每种数据库的底层API有深刻的了解. 因此,能处理各种各样数据库的通用的API就应运而生了. 也就是现在的ODBC(OpenDatabase Connectivity), ODBC是人们在创建通用API的早期产物. 有许多种数据库遵从了这种标准,被称为ODBC兼容的数据库.
JDBCC-ODBC桥是一个JDBC驱动程序,完成了从JDBC到ODBC之间的转换工作,使用JDBC-ODBC桥连方式连接数据库的步骤如下:
1、配置数据源
选择控制面板→管理工具→数据源,弹出如图对话框。
点击添加,选择SQL Server。
点击完成,弹出如下对话框。
点击下一步。
点击下一步。
默认连接的数据库为master,此处更改为实验要求数据库。
点击下一步,弹出如下对话框,不作任何改动,直接点击完成。
选择测试数据源。
配置数据源完成。
2、在程序中连接数据源
第一步:加载驱动(作用是把需要的驱动程序加入内存)。Class类是java.lang包中的一个类,通过该类的静态方法forName()可以加载sun.jdbc.odbc包中的类JdbcOdbcDriver来建立JDBC-ODBC桥连接器。
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
第二步:得到连接(指定连接到哪个数据源),如果配置数据源时选择的是Windows NT验证方式,则不需写出用户名和密码。使用java.sql包中的Connection接口,并通过DriverManager类的静态方法getConnection()创建连接对象。
Connectionct=DriverManager.getConnection("jdbc:odbc:simpledb","用户名","密码")
如果有用户名和密码,则在数据源之后写出。
第三步:向数据库发送SQL语句。使用Statement接口声明一个SQL语句对象,并通过刚才创建的数据库对象ct的createStatement()方法创建SQL对象。
Statement sql=ct.createStatement()
完整的代码如下:
package sqldemo;
import java.sql.*;
public class sql {
Connection con;
public ConnectiongetConnection() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println("数据驱动加载成功");
}catch(ClassNotFoundExceptione) {
e.printStackTrace();
}
try {
con=DriverManager.getConnection("jdbc:odbc:simpledb","用户名","密码");
System.out.println("数据库连接成功");
}catch(SQLExceptione) {
e.printStackTrace();
}
return con;
}
public static voidmain(String[] args) {
sqlconnection=new sql();
connection.getConnection();
}
}
上述代码中,第一个try...catch中的代码块通过java.lang包中的静态方法forName()来加载数据库驱动程序,如果加载失败会抛出ClassNotFoundException异常,应该确定数据库驱动是否成功加载到程序中。第二个try...catch中的代码块通过java.sql包中的DriverManager类的静态方法getConnection(Stringurl,String user,String password)建立数据库连接。
java与数据库连接odbc_详解java数据库连接之JDBC-ODBC桥连方式相关推荐
- java 引用传递_详解java的值传递、地址传递、引用传递
详解java的值传递.地址传递.引用传递 一直来觉得对值传递和地址传递了解的很清楚,刚才在开源中国上看到一篇帖子介绍了java中的值传递和地址传递,看完后感受颇深.下边总结下以便更容易理解. 按照以前 ...
- java内部格式_详解java内部类的访问格式和规则
详解java内部类的访问格式和规则 1.内部类的定义 定义一个类来描述事物,但是这个事物其中可能还有事物,这时候在类中再定义类来描述. 2.内部类访问规则 ①内部类可以直接访问外部类中的成员,包括私有 ...
- java comparator相等_详解Java中Comparable和Comparator接口的区别
详解Java中Comparable和Comparator接口的区别 发布于 2020-7-20| 复制链接 摘记: 详解Java中Comparable和Comparator接口的区别本文要来详细分析一 ...
- java switch中if_详解java中if语句和switch的使用
if语句 说起if语句,那么不得不提起三元运算符 a>b?c=0:c=1; 如果a>b结果为true,那么c=0,为false,c=1 那么下面看下if语句 if(a>b)c=0; ...
- python java混合编程_详解java调用python的几种用法(看这篇就够了)
java调用python的几种用法如下: 在java类中直接执行python语句 在java类中直接调用本地python脚本 使用Runtime.getRuntime()执行python脚本文件(推荐 ...
- java 自动装载_java_详解Java的Spring框架下bean的自动装载方式,Spring容器可以自动装配相互协 - phpStudy...
详解Java的Spring框架下bean的自动装载方式 Spring容器可以自动装配相互协作bean之间的关系,这有助于减少对XML配置,而无需编写一个大的基于Spring应用程序的较多的和元素. 自 ...
- Java implement意思_详解JAVA中implement和extends的区别
详解JAVA中implement和extends的区别 发布于 2020-4-14| 复制链接 摘记: 详解JAVA中implement和extends的区别extends是继承父类,只要那个类不是声 ...
- java sleep唤醒_详解Java中的线程让步yield()与线程休眠sleep()方法
Java中的线程让步会让线程让出优先级,而休眠则会让线程进入阻塞状态等待被唤醒,这里我们对比线程等待的wait()方法,来详解Java中的线程让步yield()与线程休眠sleep()方法 线程让步: ...
- java runnable 异常_详解Java中多线程异常捕获Runnable的实现
详解Java中多线程异常捕获Runnable的实现 1.背景: Java 多线程异常不向主线程抛,自己处理,外部捕获不了异常.所以要实现主线程对子线程异常的捕获. 2.工具: 实现Runnable接口 ...
- java 代码块_详解java中的四种代码块
在java中用{}括起来的称为代码块,代码块可分为以下四种: 一.简介 1.普通代码块: 类中方法的方法体 2.构造代码块: 构造块会在创建对象时被调用,每次创建时都会被调用,优先于类构造函数执行. ...
最新文章
- 146. Leetcode 51. N 皇后 (回溯算法-棋盘问题)
- pytorch之torch.backends.cudnn.benchmark=True——使用 GPU 来加速网络的训练
- Java虚拟机类加载机制——案例分析
- Redhat Enterprise Linux 5 实战系列(六)为RHEL5开启samba
- 实战—用户价值模型搭建
- 飞畅 8口RS-485集线器产品性能参数介绍
- 【2017001】IList转DataTable、DataTable转IList
- 对reids 服务器性能测试
- 全国计算机二级c语言和江苏教材一样吗,计算机二级省级和全国计算机二级考试内容一样吗...
- IJCAI 2019 | 为推荐系统生成高质量的文本解释:基于互注意力机制的多任务学习模型...
- 【图像压缩】基于matlab DCT变换图像压缩【含Matlab源码 804期】
- STM32 vcap引脚
- Linux账户管理详解
- 思考:Redis为什么这么快?
- Python编程之求数列20项和
- VR消防灭火模拟训练系统
- 激光投影电视和液晶电视哪个好 激光投影电视和液晶电视什么区别
- html 音乐切换不暂停,web-audio-api可视化音乐播放器,实现暂停切换歌曲功能,粉色系专场~...
- 蓝松视频编辑SDK使用说明
- 【ASCII如何理解?】