这个程序是我用来测试数据库有没有通的,但是我编译时,可以生成CLASS文件,,但是打命令JAVA TEST时出现底下BUG。。package com.mingri.dbconn;
import java.sql.*;
import com.mingri.dbconn.DBResult;public class test
{
public static void main(String[] args)
{
try{

DBResult db=new DBResult();
                                 
ResultSet rs=db.getResult("select * from tb_user");

//显示结果
while(rs.next())
{
System.out.print("\t : "+rs.getString(1));
System.out.print("\t : "+rs.getString(2));
System.out.print("\t : "+rs.getString(3));
                                        System.out.print("\t : "+rs.getString(4));
                                     
System.out.println();

rs.close();  //释放资源


}catch(Exception e)
{
e.printStackTrace();
}
}}
------------------------------------------------------------------
bug::::
Exception in thread "main" java.lang.NoClassDefFoundError: test (wrong name: com
/mingri/dbconn/test)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)

解决方案 »

  1.   

    问题补充:
    我是用JNDI来连接数据库的,以下是我在TOMCAT中的一个SERVER.XML文件 
    <Context path="/TradeManage " reloadable="true" docBase="TradeManage">
    <Resource name="jdbc/mingri" auth="Container" type="javax.sql.DataSource"/>
    <ResourceParams name="jdbc/mingri">
    <parameter>
    <name>factory</name>
    <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    </parameter>
     <parameter>
              <name>driverClassName</name>
            <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
        </parameter>
    <parameter>
    <name>url</name>
    <value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=db_shopping</value>
    </parameter>
    <parameter>
    <name>username</name>
    <value>sa</value>
    </parameter>
    <parameter>
    <name>password</name>
    <value></value>
    </parameter>
    <parameter>
    <name>maxActive</name>
    <value>1000</value>
    </parameter>
    <parameter>
    <name>maxIdle</name>
    <value>50</value>
    </parameter>
    <parameter>
    <name>maxWait</name>
    <value>50</value>
    </parameter>
    </ResourceParams>
    </Context>
    配置了这个之后是不是不用再在程序-》管理工具--》数据源(ODBC)下配置数据源了的啊? (小弟不懂啊)
    望好心人  和高手帮忙啊~
    谢谢
      

  2.   

    test  是类名 ,是要大写的吧!!
      

  3.   

    打命令的时候  java  com.mingri.dbconn.test 试试, 需要带上包名吧 ,记不太清楚了
      

  4.   

    刚才自己测试了下  有两个问题,  
    1. 类名test  应该为大写 Test
    2. javac 是可以生成 class 文件,  但是 执行不了,  
     需要如此编译  (当前目录下 有 Test.java文件 且 有 com目录立面有 mingri目录,里面有dbconn目录 也就是 你的包 的目录结构 )执行下面命令  则在 dbconn 目录下面生成 Test.class文件 
    javac - d . Test.java java com.mingri.dbconn.Test则会出现预期结果 我测试了例子如下 :
    Test.java 文件内容如下:
    package com.test;
    class Test{
    public static void main(String[] args){
    System.out.print("1: ");
    System.out.print("2 : ");
    System.out.print("3 : ");
    System.out.print("4 : ");                                   
    System.out.println();
      }
    }
    编译命令 :
    javac -d . Test.java执行
    java com.test.Test
    执行结果:
    1: 2: 3: 4: