Java 实现连接sql server 2000(JDBC数据库访问例子)
更新时间:2024-04-28 16:34:01 阅读量: 综合文库 文档下载
- java培训班推荐度:
- 相关推荐
第一种:通过ODBC连接数据库
JAVA语言的跨平台的工作能力(Write Once ,Run Anywhere)、优秀的图像处理能力(我相信现在没有那种语言可以超过JAVA在网络上的图形处理能力)、网络通信功能、通过JDBC数据库访问技术等等,让我们谁都不可否认JAVA语言是SUN公司对于计算机界的一个巨大的贡献。笔者可以描述这样一个场景:有一天你上网完全可以不用IE 或者NETSCAPE,上网就像是玩游戏,你可以获得游戏那么精美的图像和互动的感觉,如果你玩过UO,也许你就知道那种感觉了,但是JAVA做成的东西一定会超过UO的,因为不单单是游戏,也不是单单是浏览器,如果你愿意(要你有钱,有时间,有优秀的JAVA人才)你可以把所有的这一切用Java完全集成出来!!!我不是夸大JAVA的功能,大家可以访问一下
http://www.simchina.net的那个社区程序,你就能找到一种感觉了:相信我没有说什么假话 。好了,不说废话了,现在我向你介绍JAVA的数据库访问技术----JDBC数据库访问技术(你可千万不要搞成ODBC了!)。
JDBC技术事实上是一种能通过JAVA语言访问任何结构化数据库的应用程序接口(API)(Sun这样说的,我也不知道是不是真的),而且现在的JDBC 3.0据Sun说也能访问Execel等电子表格程序!
JDBC对于数据库的访问有四种方式,我们这里只是介绍两种:
第一种是通过ODBC做为“桥”(Bridge)对数据库访问,第二种是直接对数据库访问。
我们先来看看第一种JDBC<-->ODBC访问的流程:
JDBC Driver Mannager->JDBC<->ODBC桥->ODBC->数据库客户机驱动库->数据库服务器->返回查询结果,在这种访问中值的我们注意的是虽然JAVA是
\Once ,Run Anywhere\,但是如果通过这种访问的话,需要客户端必须设置ODBC和有相应的数据库客户机的驱动,当你看了下面的另外一个流程的时候或许你会想:明明下一种更方面,为什么还要有这个东西的产生!呵呵,因为,未必所有的数据库服务器提供商都提供下面的JDBC驱动程序(给JDBC访问提供相应的接口),所以就有了JDBC<->ODBC Bridge。 接着再让我们来看看第二种访问流程:
JDBC Driver Mannager->局部JDBC驱动->客户端数据库->数据库服务器->返回查询结果,这种访问事实上是转换JDBC调用为相应的数据库(Oracle, Sybase, Informix, DB2, 和其他的数据库数据库管理系统)的客户端API调用(这么说,不知道大家能不能懂,说简单点就好像ASP不是通过DSN对数据库访问而是通过OLEDB访问,说道这里我还是不知道大家能不能明白我的意思。哎呀,不要扔鸡蛋嘛!),这种方式的访问需要相应的数据库提供商提供相应的JDBC驱动程序,但是有一种好处,可以独立于odbc用于可以随处可Run的客户端的浏览器中的Applet程序。
我们下面将给大家一个通过JDBC-ODBC桥数据库访问的实例,但是在看下面的事例前我想问大家一次:JDK1.3装了吗?数据库驱动装了吗(我使用的是
SQLserver)?你该没有使用Linux吧?虽然java支持Linux,但是我这里是用WINDOWS的啊,照顾大家啊。(这同JAVA的Write Once ,Run Anywhere没有关系),由于使用了运行于Win下面的ODBC,我建议你看看这篇东西
http://www.aspcn.com/showarticle.asp?id=112,否则你要是有了问题,出不了结果那岂不是要怪我(不过欲加之罪,何患无吃... ...),冤枉呀! 哎呀,说了这么多的废话,还是让我们来看看到底JDBC的调用吧!既然我们是通过odbc访问数据库,所以这个odbc是跑不了的,我们先来设置你的odbc:打开你的odbc数据源->选择系统dsn(Click加新的dsn-)->接下来输入选择数据库类型、输入dsn名:、选择服务器、连接数据库的方式、输入数据库的登陆用户和密码->测试连接,如果测试成功的话,那么你的dsn就建立好了,我的dsn名为Sqlserver.使用的是sqlserver7.0,以 “sa”登陆,密码为空。这些东西都是后面要用道的!
好了下面让我们来看程序代码: (该代码已经通过运行)
//########################################################### //代码开始
//########################################################### import java.sql.*;
//加载java数据连接包,java基本所有的数据库的调用的都在这个东西里面 public class InsertCoffees {
public static void main(String args[]) { String url = \
//取得连接的url名,注意sqlserver是dsn名 Connection con;
//实例化一个Connection对象 Statement stmt;
String query = \//选择所有的Col_link表中的数据输出
try {
Class.forName(\//加载jdbc-odbc桥驱动
} catch(java.lang.ClassNotFoundException e) { System.err.print(\//加载jdbc-odbc桥错误
System.err.println(e.getMessage());
//其他错误 } try {
con = DriverManager.getConnection(url, \//数据库连接
stmt = con.createStatement(); //Create 一个声明
stmt.executeUpdate(\NULL ,siteurl varchar (50) NULL) \
//执行了一个sql语句生成了一个表col_link的表
stmt.executeUpdate(\中华网','http://www.aspcn.com')\
stmt.executeUpdate(\永远到底有多远','http://xuankong.com')\//执行一个insert into语句
stmt.executeUpdate(\
siteurl='http://www.aspcn.com/xuankong/xuankongt.jpg' where siteurl='http://xuankong.com'\//执行一个update语句,更新数据库
ResultSet rs = stmt.executeQuery(query); //返回一个结果集
System.out.println(\表中的数据如下(原始数据)\
//下面的语句使用了一个while循环打印出了col_link表中的所有的数据 System.out.println(\站点名 \站点地址\
System.out.println(\while (rs.next()) {
String s = rs.getString(\String f = rs.getString(\//取得数据库中的数据
System.out.println(s + \/*String t = rs.getString(1); String l = rs.getString(2);
System.out.println(t + \
/*jdbc提供了两种方法识别字段,一种是使用getXXX(注意这里的getXXX表示取不同类型字段的不同的方法)获得字段名,
第二种*是通过字段索引,在这里我把第二种方法注释了*/ /*你可以访问这个连接获得getxxx的用法:
http://java.sun.com/docs/books/tutorial/jdbc/basics/_retrievingTable.html*/ }
stmt.close();
con.close();
//上面的语句关闭声明和连接 } catch(SQLException ex) {
System.err.println(\//显示数据库连接错误或者查询错误 } } }
//########################################################### //代码结束
//###########################################################
在上面这个程序中我想你展示了如何使用JDBC-ODBC连接数据库,使用SQL语句生成一个表,使用SELECT、INSERT 、UPDATE语句取的、插入和更新一个表中的数据,如何通过字段名和字段索引访问数据库中的东东!我希望你能从上面的代码真正的学习到一些东西!
发挥你的想象力,设想一下JAVA到底,比如说可以通过数据库做一个不需要GUI(图形用户界面)的聊天室,呵呵,感觉起来就像在DOS环境下打字的聊天室!哈哈!
最后需要说的是我的调试上面程序的环境:WIN2000 , JDK1.3,MS SQLSERVER编辑软件:EDITPLUS 2.01a(这最后的东西可不是废话,虽然早就了一些专业的JAVA开发工具,但是我建议JAVA初学者使用文本软件开发JAVA程序)
第二种:直接用jdbc访问数据库
(1) 该实例已经运行通过
jsp连接Sql Server7.0/2000数据库 testsqlserver.jsp如下:
<%@ page contentType=\ <%@ page import=\
<%Class.forName(\stance(); String
url=\ //pubs为你的数据库的 String user=\ String password=\
Connection conn= DriverManager.getConnection(url,user,password); Statement
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql=\
ResultSet rs=stmt.executeQuery(sql); while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1);%> 您的第二个字段内容为:<%=rs.getString(2);%> <%}%>
<%out.print(\数据库操作成功,恭喜你\ <%rs.close(); stmt.close(); conn.close(); %>
(2)java访问sqlserver服务器 第一步:安装jdbc
点击SQL Server for JDBC驱动程序安装程序setup.exe(可以到微软网站下载 http://msdn.microsoft.com/library/default.asp?rul=/downloads/list/sqlserver.asp下载)
第二步:设置系统变量classpath
假设SQL Server for JDBC 驱动程序安装在d:\\jdbc\\,则classpath应该设置如下:
classpath:=.;?;d:\\jdbc\\lib; d:\\jdbc\\lib\\mssqlserver.jar; d:\\jdbc\\lib\\msutil.jar; d:\\jdbc\\lib\\msbase.jar; 注意:设置时要在最前面的点号和分号 第三步:编辑java程序并且运行
实例1如下:
//import com.microsoft.*; import java.sql.*; import java.net.URL; class insert {
public static void main(String[] args) {
String
url=\\
String query=\ String query1=\values(10,'Hanbao','Sweet')\
String query2=\values(11,'Naicha','Coffee taste')\ try {
Class.forName(\erDriver\
Connection
con=DriverManager.getConnection(url,\ Statement stmt=con.createStatement(); stmt.executeUpdate(query1); stmt.executeUpdate(query2);
stmt.close(); con.close();
}
catch(SQLException ex) {
}
catch(java.lang.Exception ex) {
ex.printStackTrace(); } } }
实例2如下:
//import com.microsoft.*; import java.sql.*; import java.net.URL; class java2sqlserver {
public static void main(String[] args) {
String
url=\5;DatabaseName=northwind\
String query=\ try {
Class.forName(\ServerDriver\
//DriverManager.setLogStream(System.out); Connection
con=DriverManager.getConnection(url);
checkForWarning(con.getWarnings()); Statement stmt=con.createStatement(); ResultSet rs=stmt.executeQuery(query); dispResultSet(rs); rs.close(); stmt.close(); con.close(); }
catch(SQLException ex) {
System.out.println(ex.toString()+\caught----\
while(ex!=null) {
System.out.print(\ate());
System.out.print(\e());
System.out.print(\de());
ex=ex.getNextException();
System.out.println(\ } }
catch(java.lang.Exception ex) {
ex.printStackTrace(); } }
private {
boolean rc=false; if(warn!=null) {
System.out.println(\ rc=true;
while(warn!=null) {
static boolean checkForWarning(SQLWarning warn) System.out.print(\State());
System.out.print(\age());
System.out.print(\Code());
System.out.println(\ warn=warn.getNextWarning();
} }
return rc; }
private static void dispResultSet(ResultSet rs) throws SQLException { int i;
ResultSetMetaData rsmd=rs.getMetaData(); int numCols=rsmd.getColumnCount(); for(i=1;i<=numCols;i++) {
if(i>1) System.out.print(\ System.out.print(rsmd.getColumnLabel(i));
}
System.out.println(\ boolean more=rs.next(); while(more) {
for(i=1;i if(i<1) System.out.print(\ System.out.println(rs.getString(i)); } System.out.println(\ more=rs.next(); } } //System.out.println(\ } } System.out.println(\ boolean more=rs.next(); while(more) { for(i=1;i if(i<1) System.out.print(\ System.out.println(rs.getString(i)); } System.out.println(\ more=rs.next(); } } //System.out.println(\ }
正在阅读:
Java 实现连接sql server 2000(JDBC数据库访问例子)04-28
中美关系的发展前景(原创)05-10
晨读通讯稿12-06
菊花作文400字04-01
《清稗类钞》着述类 性理类 经术类05-19
C语言实验报告(答案)05-31
六年级下册数学导学案10-07
断层封闭性研究综述01-22
机械原理教案good06-05
绿化工真题及答案304-15
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 例子
- 连接
- 实现
- 数据库
- server
- 访问
- Java
- 2000
- JDBC
- sql
- 2013-2014学年度五年级级数学计划Microsoft Word 文档
- 超星尔雅大学生职业生涯规划免费题库
- 现代环境测试技术实验讲义
- 重庆市建设工程施工合同(20111017)
- 考研教育学专业基础综合考试真题2008年
- 江西省论文选题 - 图文
- 山东省济宁市2018年中考数学试题(word版含解析)
- 如何激发小学生进行英语口语交际的兴趣
- 粮食库存管理中的一些常见问题(完)
- 湘教版小学一年级上册美术《大眼睛》教学实录
- 卓越班软件工程经济学考试习题
- 2018年秋七年级英语上册Unit9Myfavoritesubjectisscience复习导
- 户外广告喷绘布的选择大学问
- 2013大学生创新创业训练计划申报表(王晨旭、胡望意)(1) - 图文
- 首届万人环怀自行车骑行活动(1) - 图文
- 王亮亮1007240816《ANSYS工程分析与应用》大作业(2010级)
- 【小站教育】GMAT数学笔记
- 第三次数学危机
- 2010—2011学年第二学期一年级数学(下册)教学进度表
- SWITCH交换机基础知识