简介:
开放数据库互连(Open Database Connectivity,ODBC)
是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。
这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC
第一步:设置ODBC数据源
打开控制面版——>>管理工具——>>设置ODBC数据源
点击添加,进行添加数据源
选择安装数据源驱动程序,SQL的就是SQL Server
不带密码的直接下一步,设计密码选择第二个单选框设置
勾选默认数据库,选择需要连接的数据库,点击下一步
直接点击完成
测试数据源
测试成功
第二步:在Java中使用
(1)加载ODBC驱动(在java8中抛弃了ODBC的连接方式)
也就是说java8以后不支持用ODBC连接数据库。
若想用则自行百度。
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
(2)创建Connection对象
DriverManager.getConnection(“jdbc:odbc:设置的ODBC数据源名称”);
如果设置了账户密码
DriverManager.getConnection(“jdbc:odbc:设置的ODBC数据源名称”,账户,密码 );
Connection con = DriverManager.getConnection("jdbc:odbc:Text1");
(3)创建Statement对象
Statement st = con.createStatement();
(4)执行SQL语句返回ResultSet对象
参数为SQL语句字符串
ResultSet rs = st.executeQuery("select Name,MajorName from SYS_Examinee");
下篇文章使用JDBC方式连接数据库将详细讲到ResultSet 使用
ODBC相对于的JDBC的区别:
优点: 无需下载驱动Jar包,直接引入底层驱动。
数据库接口统一,不同数据库设置不同数据源驱动程序,更换数据库只需更改数据源驱动程序。无需更改代码
缺点: 移植性低
demo示例
public class TextSoure {
public static void main(String[] args) throws ClassNotFoundException {
Statement st = null;
Connection con = null;
ResultSet rs = null;
try {
//加载驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//连接数据库
con = DriverManager.getConnection("jdbc:odbc:Text1");
st = con.createStatement();
rs = st.executeQuery("select Name,MajorName from SYS_Examinee");
while(rs.next()){//如果对象中有数据,就会循环打印出来
System.out.println(new String(rs.getBytes(1),Charset.forName("GBK")));
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
//关闭
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (con != null) {
con.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}