java jsp sqlserver

导读:
  Java连接数据库
  以SQL Server 2000为例
  Java 程序连接数据库的方法实际上有四种:1. JDBC-ODBC 桥和ODBC 驱动程序-- 在这种方式下,这是一个本地解决方案,因为ODBC 驱动程序和桥代码必须出现在用户的每台机器中。从根本上说这是一个临时解决方案。
  注意事项:
  (1)在使用这种方法的时候,首先要设置一个数据源,具体方法和以前使用ODBC的时候一样,都是到【控制面板】-【数据源】那里添加一个新的数据源,例如建立一个名字为student的SQL Server数据库。
  (2)然后就是编写代码啦,关键代码如下:
  //使用jdbc-odbc桥连接SQL Server数据库
  String sql;
  Connection conn;
  Statement stmt;
  ResultSet rs;
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  String url="jdbc:odbc:student";
  String user="sa";
  String password="";
  conn= DriverManager.getConnection(url,user,password);
  stmt=conn.createStatement();
  sql="select * from info";
  rs=stmt.executeQuery(sql);
  while(rs.next())
  {
  out.println(rs.getString(1));
  out.println(rs.getString(2));
  }
  rs.close();
  stmt.close();
  conn.close();
  (3)如果是使用java的话,以上应该没有问题了,但是如果是写成 jsp,我发现会出现错误,javax.servlet.ServletException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序,估计是没有驱动程序的问题,因为上面现在一般都是推荐使用纯jdbc来访问数据库的,而且大多数dbms厂商都会提供其DBMS的JDBC驱动程序的,但是为了兼容,JAVA也允许通过JDBC-ODBC桥的方式连接数据库(也就是这种方法),但是这个需要一个JDBC-ODBC-Brige驱动程序,好吧,听说sun的网站上有,但是我没有找到,用百度吧,反正找到就行了(注意不要找jdbc驱动,要找JDBC-ODBC桥驱动,根据我的理解,JDBC应该有很多,例如Orace有一个,SQL Server有一个,MySQL有一个,DB2有一个等等,但是JDBC-ODBC-BRIDGE应该只有一个,因为它要解决就是JDBC到ODBC的连接,而前者是解决JDBC到各种DBMS的连接,说白了,就是JDBC和ODBC是同一个等级的东西,但是JDBC要比ODBC先进很多罢了)。
  不过很奇怪,我使用JAVA编程就可以实现桥连接,但是使用 JSP就不行,就是上面的错误,我也觉得很奇怪,我在网上搜了2天,居然还是解决不了问题,正如我上面所说,似乎需要一个所谓的JDBC-ODBC桥驱动,但是网上的人都说在JDK里面已经包含了,不用安装了,我想可能是吧,不然为什么我在sun的网站上找了很久也没有发现可以下载的东西呢?!,但是我在JDK的安装目录下又找不到这个类,真是奇怪。Java可以,但是 jsp不行,这个问题更加奇怪,唉,现在还没有解决这个问题,郁闷。2. 本机代码和Java 驱动程序-- 它用另一个本地解决方案(该平台上的Java 可调用的本机代码)取代ODBC 和JDBC-ODBC 桥。
  ――没有使用过,呵呵!3. JDBC 网络的纯Java 驱动程序-- 由Java 驱动程序翻译的JDBC 形成传送给服务器的独立协议。然后,服务器可连接任何数量的数据库。这种方法使您可能从客户机Applet 中调用服务器,并将结果返回到您的Applet。在这种情况下,中间件软件提供商可提供服务器。
  ――也没有使用过,呵呵!4. 本机协议Java 驱动程序-- Java 驱动程序直接转换为该数据库的协议并进行调用。这种方法也可以通过网络使用,而且可以在Web 浏览器的Applet 中显示结果。在这种情况下,每个数据库厂商将提供驱动程序。
  这种应该就是我们应该尽量使用的方法了吧,就是纯粹的使用JDBC连接,就好像我们以前使用ODBC一样,使用JDBC连接到各种的DBMS。不过首先是要先下载相关的DBMS的JDBC驱动程序啦,毕竟JDBC不是MS的东西,没有在Windows里面集成了,例如对于S QL Server 2000,可以到MS公司的网站上下载它的JDBC驱程。
  安装之后就可以了,当然还有一些类似与路径和环境变量等等的东西还是要注意一下的,例如应该将安装目录下的lib目录下的3个jar文件添加到环境变量的path和classpath中,详细的内容可以参见以前的一篇文章:http://apollosysu.bokee.com/5397185.html
  这样连接方法的代码编写方法如下:
  String sql;
  Connection conn;
  Statement stmt;
  ResultSet rs;
  
  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
  String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=student";
  //注意这里的student不是ODBC数据源的名称,而是数据库本身的名称。
  String user="sa";
  String password="";
  conn= DriverManager.getConnection(url,user,password);
  //stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
  stmt=conn.createStatement();
  sql="select * from info";
  rs=stmt.executeQuery(sql);
  while(rs.next())
  {
  out.println(rs.getString(1));
  out.println(rs.getString(2)+"
");
  }
  rs.close();
  stmt.close();
  conn.close();
   下面转一篇网上看到的文章:
   浅谈 4种类型的JDBC驱动程序
  在网上下载JDBC驱动程序,常看见Type4字样,开始以为是厂商自己的标准,近来翻看资料,原来是SUN定义的JDBC标准。
  Type1 JDBC-ODBC桥作为JDK1.1后的一部分,是sun.jdbc.odbc包的一部分
  Application--->JDBC-ODBC Bridge(Type1 jdbc driver)---->JDBC-ODBC Library--->ODBC Driver-->Database
  适用于快速的原型系统,没有提供JDBC驱动的数据库如Access
  Type2 JAVA to Native API利用开发商提供的本地库来直接与数据库通信。
  Application--->JDBC Driver(Type2 jdbc driver)---->Native Database library---->Database
  比Type1性能略好。
  Type3 Java to netApplication--->Jdbc Driver(Type3 jdbc driver)----->java middleware--->JDBC Driver---->Database
  具有最大的灵活性,通常由那些非数据库厂商提供,是四种类型中最小的。
  Type4 JAVA to native dababaseApplication--->Jdbc driver(type4 jdbc driver)----->database engine--->database
  最高的性能,通过自己的本地协议直接与数据库引擎通信,具备在Internet装配的能力。

本文转自
http://hi.baidu.com/sdyaomingjun/blog/item/2e42e3548c27fc59d10906a8.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值