参照网上流传的例子
摘要: 本文主要介绍采用 JDBC 、 ODBC 接口实现了与 SQL Server2000 数据库的连接,并利用 Java 应用程序对其进行访问,同时通过图形用户界面实现了简单的查询功能。
关键词: Java , SQL Server ,数据库
前言
数据库技术和 网络技术 是当今计算机领域的两大热门话题,数据库技术自产生以来,在技术上已发展成熟。而作为前端访问的开发工具和环境仍处在不断完善和发展之中,除了网络上使用的 ASP 、 PHP 、 JSP 作为前端 连接数据库 技术外,小型系统上常用访问数据库技术有 Delphi 、 Visual Basic 、 PowerBuilder 及 VC++ 等,而 Java 也是其中之一。
Java 语言是编写数据库应用程序的杰出语言之一,它提供了方便访问数据的技术。利用 Java 语言中的 JDBC 技术,用户能方便地开发出基于 Web 网页 的数据库访问程序,从而扩充网络应用功能。 JDBC ( Java Database Connectivity , Java 数据库连接)是一种用于执行 SQL 语句的 Java API ,可以为多种关系数据库提供统一的访问接口。 JDBC 由一组用 Java 语言编写的类与接口组成,通过调用这些类和接口所提供的方法,用户能够以一致的方式连接多种不同的数据库系统(如 Access 、 SQL Server 2000 、 Oracle 、 Sybase 等),进而可使用标准的 SQL 语言来存取数据库中的数据,而不必再为每一种数据库系统编写不同的 Java 程序代码。
SQL Server2000 是 微软 公司新一代的数据库产品,它是在 SQL Server7.0 建立的坚固基础上产生的,并对 SQL Server7.0 做了大量扩展。 SQL Server2000 通过高端硬件平台以及最新网络和存储技术的支持,可为最大的 Web 站点和企业级应用提供可扩展性和高可靠性。
Java 通过 JDBC 、 ODBC 接口访问数据库
1 JDBC 、 ODBC 接口
Java 应用程序通过 JDBC API(java.sql) 与数据库连接,而实际的动作则是由 JDBC 驱动程序管理器 (JDBC Driver Manager) 通过 JDBC 驱动程序与数据库系统进行连接。 ODBC ( Open DataBase Connectivity )即开放式的接口,它为用户提供了一个访问关系数据库的标准接口,对于不同的数据库它提供了一套统一的 API ;可以使应用程序通 过 API 访问任何提供了 ODBC 驱动程序的数据库,而目前所有的关系数据库都提供了 ODBC 驱动程序,所以 ODBC 已经成为数据库访问的业界标准,并得到 了广泛应用。
JDBC-ODBC 桥是一种 JDBC 驱动程序,它通过将 JDBC 操作转换为 ODBC 操作来实现的。利用 JDBC-ODBC 桥可以使 程序开发 人员不 需要 学习更多的知识就可以编写 JDBC 应用程序,并能够充分利用现有的 ODBC 数据源。 JDBC-ODBC 桥驱动程序可以使 JDBC 能够访问几乎所有类型的数据库。
2 利用 Java 应用程序访问 SQL Server2000 数据库
( 1 )建立数据库
启动 “Microsoft SQL Server2000” ,打开 “ 企业管理器 ” 在 “ 数据库 ” 中建立名为 “mydata” 的数据库,并在其下制作名为 “wuzi” 的数据表,如图 1 所示。
图 1
( 2 )建立( ODBC )数据源和驱动程序
在控制面板上通过 “管理工具 ” 的 “ 数据源( ODBC ) ” 打开 “ODBC 数据源管理器 ” 对话框,单击 “ 系统 DSN” 选项卡,然后单击 “ 添加 ” 按钮,得到 “ 创建数据源 ” 对话框,选择 “SQL Server” 并单击 “ 完成 ” 按钮,在出现的 “ 建立新的数据源到 SQL Server” 对话框中的 “ 数据源名称 ” 项填写 “wzgl” 并选取 “服务器 名 ” ,然后单击 “ 下一步 ” 按钮,选择 “ 使用网络登录 ID 的 Windows NT 验证 ” 项目,单击 “ 下一步 ” 按钮,把默认的数据库改为 “mydata” ,再单击 “ 下一步 ” ,单击 “ 完成 ” 按钮,然后可以单击 “ 测试数据源 ” ,成功后,单击 “ 确定 ” 按钮,完成了( ODBC )数据源和驱动程序的建立。
前面和网上流传的一样。只是网上流传的源代码有些错误。做了点修正。我的表名叫做
TestTable
代码如下
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class TestJdbc{
public static void main(String args[]){
GUI gui=new GUI();
gui.pack();
}
}
class GUI extends Frame implements ActionListener{
TextArea text;
Panel panel;
TextField sno;
Button btn;
GUI(){
super("query result inform");
setLayout(new BorderLayout());
setBackground(Color.cyan);
setVisible(true);
text=new TextArea();
btn=new Button("query button");
sno=new TextField(16);
panel=new Panel();
panel.add(new Label("input query numbr id:"));
panel.add(sno); panel.add(btn);
add("North",panel);
add(text,"Center");
text.setEditable(false);
btn.addActionListener(this);
}
//addWindowListener(new WindowAdapter()){
// public void windowClosing(WindowEvent e){
//setSize(300,200);
// setVisible(false);
// System.exit(0);
// }
//}
// }
public void actionPerformed(ActionEvent e) {
if(e.getSource()==btn)
{
text.setText("result text:"+'/n');
try{
Liststudent();
}
catch(SQLException ee) {
}
}
}
public void Liststudent() throws SQLException
{
String bh,mc,xh,lb,dw,sj;
int sl; float dj,je;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e) {
}
Connection con=DriverManager.getConnection("jdbc:odbc:wzgl");
Statement sql=con.createStatement(); // 创建 Statement 对象
ResultSet rs=sql.executeQuery("select * from TestTable");
while(rs.next()) // 输出被查询的情况
{
bh=rs.getString("BillStrKey");
//if(bh.trim().equals(sno.getText().trim()))
{
text.append('/n'+"add: ="+bh +'/n');
}
}
text.append('/n'+"end"+'/n');
}
}
编译
javac TestJdbc.java
查看结果
java TestJdbc
备注:
如果用IDEA开发工具的话,添加JDBC驱动步骤如下:
TOOLS--->DATA SOURCE--->JDBC DATASOURCE——> 加号图标
访问数据库部分的代码同上面类似。