jdbc终极解惑~兼初学者在登录sql容易忽略的问题

原创 2006年06月13日 20:24:00

说实话也是解决得有点突然。今天下午放学回家,看了看回帖,其中一位网友说到除了要放在ext这个目录里外还要在编译器里面把包导入,我照这个方法做后果然可以了,然后在命令行运行也成功了。

说来也奇怪,以前我试过在命令行运行似乎不行的,而且用jCreator导入包的时候又有点诡异,最初是死活也找不到我放在ext目录里的三个jdbc驱动的包,但资源管理器里面确实可以清楚看到我已经把包复制到里面了,然后又是不知道怎么地反复操作了几次又突然看到了三个包并导入了。不知道是不是jvm的问题。

然后就万事大吉了,终于可以连接成功。

不过唯一一个问题还没明确的解决,也就是用修改环境变量的方法还是不能成功,修改为CLASSPATH=.;C:/driver/msbase.jar;C:/driver/mssqlserver.jar;C:/driver/msutil.jar后,在命令行运行时还是不能找到类,看来还是暂时要把驱动放在/……/jdk/jre/lib/ext这里。

或者另外一个方法是用编辑器例如jCreator直接导入C:/driver里面的包也行,这样就不必再把包放进jdk里面的目录;

而用jdbc连sqlserver的时候还有一个需要注意的是,用户登录的问题,当然前提是sqlserver设置为混合登录模式,而登录的用户一定要具有对所定应数据库有对应操作的权限时才能正常管理。

不然的话会出现“jdbc对象名无效”这个异常,一般如果用sa登录时就会有这个问题出现

最后补充一下就是相关的补丁一定要打齐,sqlserver2000的sp4,还有jdbc的sp3都打上就万无一失

最后把我测试的两个程序贴出来留个底

jdbc直接连接sqlserver2000

import java.sql.SQLException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.PreparedStatement;

public class Jdbctest
{
 protected Jdbctest()
 {
  
 }
 
 public static void main(String [] args)
 {
  try
  {
   Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
   
   System.out.println("testing");
   
  }
  catch(ClassNotFoundException ce)
  {
   System.out.println(ce);
  }
  
  try
  {
   String url="jdbc:microsoft:sqlserver://localhost:1433;databassName=frends;";
   Connection con=DriverManager.getConnection(url,"test","1111");

   if(con!=null)
   {
    System.out.println("连接成功");
   }
   Statement s=con.createStatement();
   /*
   String sql="select * from friends";
   PreparedStatement pstmt=con.prepareStatement(sql);
   ResultSet rs=pstmt.executeQuery();
   */
   ResultSet rs=s.executeQuery("select * from friends");
   
   while(rs.next())
   {
    System.out.print(rs.getString(1)+"/t");
    System.out.print(rs.getString(2)+"/t");
    System.out.print(rs.getInt(3)+"/t");
    System.out.print(rs.getDate(4)+"/t");
    System.out.print(rs.getInt(5)+"/t");
    System.out.println(" ");
   }
   rs.close();
   s.close();
  }
  catch(SQLException ce)
  {
   System.out.println(ce);
  }
 }
}

其中test为自定义的一个超级用户

JdbcOdbc桥接

import java.sql.SQLException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;

public class jdbcOdbcTest
{
 protected jdbcOdbcTest(){}
 
 public static void main(String [] args)
 {
  try
  {
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
   
  }
  catch(ClassNotFoundException ce)
  {
   System.out.println(ce);
  }
  
  try
  {
   String url="jdbc:odbc:test";
   Connection con=DriverManager.getConnection(url);
   Statement s=con.createStatement();
   ResultSet rs=s.executeQuery("select * from friends");
   
   while(rs.next())
   {
    System.out.print(rs.getString(1)+"/t");
    System.out.print(rs.getString(2)+"/t");
    System.out.print(rs.getInt(3)+"/t");
    System.out.print(rs.getDate(4)+"/t");
    System.out.print(rs.getInt(5)+"/t");
    System.out.println(" ");
   }
   rs.close();
   s.close();
  }
  catch(SQLException ce)
  {
   System.out.println(ce);
  }
 }
}

其中test为系统DNS

【SQL解惑】谜题15:找出最近两次工资

解惑一: 1、创建表和插入数据 create table Salaries ( emp_name char(10) not null, sal_date date not...
  • jjjraddit
  • jjjraddit
  • 2017年12月12日 22:46
  • 122

HTML中忽略的小问题

1、padding和margin 例子 1 padding:10px 5px 15px 20px;(上,右,下,左) 上内边距是 10px右内边距是 5px下内边距是 15px左内边距是 20p...
  • u012503049
  • u012503049
  • 2014年03月04日 13:04
  • 402

asp.net初学者容易忽略的问题

   在做网页设计的时候,做为初学者最容易忽略的问题是系统的安全。因为自己也是个asp.net的初学者,只是最近在做毕业设计,所以对于系统的安全做进步的学习。下面转一些关于sql注入攻击的文章: 随着...
  • jackydream
  • jackydream
  • 2007年05月23日 23:42
  • 557

Java基础(容易忽略的java细节)

java基础片,大家经常忽略的一些细节性问题,在此分享一下public class Test1 { public static void main(String[] args) { ...
  • zhanggaofeixy
  • zhanggaofeixy
  • 2016年04月16日 14:02
  • 319

哲学三个终极问题

唯物三个终极问题 1.如何更好的认识宇宙世界、并解决关于宇宙的问题。 2.如何更好的认识人类社会、并解决关于人类的问题。 3.如何更好的认识自我人生、并解决关于人生的问题。 唯心三个终极...
  • terry_water
  • terry_water
  • 2016年02月18日 14:36
  • 991

容易忽略的问题

容易忽略的问题 1   isnull(name,'''')='''' 不等同于 name is NULL  2 ID=1 or ID=2 or  ID=3  或者 ID=1 and ID...
  • aTian2009
  • aTian2009
  • 2013年05月15日 10:34
  • 477

容易忽略的SQL语句

1 NOT关键字 我们很多时候都将NOT 和LIKE 关键字组合成NOT LIKE 来使用。但忘记了NOT自己也可以单独使用, 可以用来否定随后的表达式。例: SELECT * FROM CLPa...
  • highplayer
  • highplayer
  • 2011年10月16日 15:18
  • 588

C语言中容易被忽略的细节(第一篇)

前言:本文的目的是记录C语言中那些容易被忽略的细节。我打算每天抽出一点时间看书整理,坚持下去,今天是第一篇,也许下个月的今天是第二篇,明年的今天又是第几篇呢?……我坚信,好记性不如烂笔头。 ...
  • linxin3333520
  • linxin3333520
  • 2014年12月10日 17:22
  • 568

java中容易忽略的小细节

如果问大家private 、public和protected 这些修饰符的具体概念,想必大家肯定能回答的出,对了还有一种默认的访问权限 就是没有这些修饰符时(在同一包下,都能被访问);但是大家有没有想...
  • qq_27778869
  • qq_27778869
  • 2016年07月15日 11:27
  • 358

细说C++中那些容易忽略而又非常重要的知识点

C++基础重要知识点: 1、C++对C语言的加强之register关键字: ①、C语言中register关键字请求编译器对局部变量存储在寄存器中,无法取到register变量的地址; ...
  • qq_18824491
  • qq_18824491
  • 2017年12月25日 10:24
  • 65
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:jdbc终极解惑~兼初学者在登录sql容易忽略的问题
举报原因:
原因补充:

(最多只允许输入30个字)