import java.sql.*;
import java.util.*;
import java.io.*;public class Derby_test1
{
public static void main(String[] args){
String sql = "create table student(sid char(5),"+"sname varchar(20),"+"sage int,"+"sclass char(5))";
Connection con = null;
Statement st;
try{
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
if(!isDataBaseExists()){
con = DriverManager.getConnection("jdbc:derby:db/test","","");
st = con.createStatement();
st.execute(sql);
}
else{
con = DriverManager.getConnection("jdbc:derby:db/test","","");
st = con.createStatement();
}
st.executeUpdate("insert into student values('10001','王强',21,'97001')");
st.executeUpdate("insert into student values('10002','李勇',23,'97002')");
ResultSet rs = st.executeQuery("select * from student");
System.out.println("学号\t姓名\t年龄\t班级");
while(rs.next()){
String sid = rs.getString(1);
String sname = rs.getString(2);
String sage = rs.getString(3);
String sclass = rs.getString(4);
System.out.println(sid+"\t"+sname+"\t"+sage+"\t"+sclass);
}
rs.close();
st.close();
}catch(Exception e){
e.printStackTrace();
}finally{
try{
con.close();
}catch(SQLException e){
e.printStackTrace();
}try{
DriverManager.getConnection("jdbc:derby:;shutdown=true");
}catch(SQLException e){
e.printStackTrace();
}
}
}
public static boolean isDataBaseExists(){
boolean dbExists = false;
File dbFileDir = new File("db/test");
if(dbFileDir.exists()){
dbExists = true;
}
return dbExists;
}
}
报错:
D:\javacode>java Derby_test1
java.lang.ClassNotFoundException: org.apache.derby.
        at java.net.URLClassLoader$1.run(URLClassLo
        at java.security.AccessController.doPrivile
        at java.net.URLClassLoader.findClass(URLCla
        at java.lang.ClassLoader.loadClass(ClassLoa
        at sun.misc.Launcher$AppClassLoader.loadCla
        at java.lang.ClassLoader.loadClass(ClassLoa
        at java.lang.ClassLoader.loadClassInternal(
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at Derby_test1.main(Derby_test1.java:12)
Exception in thread "main" java.lang.NullPointerExc
        at Derby_test1.main(Derby_test1.java:39)
没用IDE,直接在CMD里运行的。 相关环境变量都设置了的。不知道我在什么地方疏忽了。
DERBY_HOME:
C:\Program Files\Java\db-derby-10.5.3.0-bin
DERBY_INSTALL:
C:\Program Files\Java\db-derby-10.5.3.0-bin
CLASS_PATH:
.;%DERBY_HOME%\lib\derby.jar;%DERBY_HOME%\lib\derbytools.jar;%DERBY_HOME%\lib
Path:
%DERBY_HOME%\bin;%JAVA_HOME%\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
JAVA_HOME:
C:\Program Files\Java\jdk1.6.0_16

解决方案 »

  1.   

    CLASS_PATH里追加 %DERBY_HOME%\lib\derbyclient.jar
      

  2.   

    添加了还是不行啊!
    还有谁能帮我一下啊!
    CLASS_PATH:
    .;%DERBY_HOME%\lib\derby.jar;%DERBY_HOME%\lib\derbytools.jar;%DERBY_HOME%\lib\derbyclient.jar;%DERBY_HOME%\libD:\javacode>javac Derby_test1.javaD:\javacode>java Derby_test1
    java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver
            at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
            at java.lang.Class.forName0(Native Method)
            at java.lang.Class.forName(Class.java:169)
            at Derby_test1.main(Derby_test1.java:12)
    Exception in thread "main" java.lang.NullPointerException
            at Derby_test1.main(Derby_test1.java:39)D:\javacode>
      

  3.   

    1、代码运行窗口:2、derby安装目录3、代码目录