/* * Created on 2005-4-10 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */ package com.by.cngp;import java.sql.DriverManager; import java.sql.SQLException; import java.sql.*; /** * @author bin * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */ public class test { public static void main(String[] args){ String tablename; Connection sqlConn=null; PreparedStatement stmt=null; LogApp logapp = new LogApp(); try { Class.forName("com.mysql.jdbc.Driver").newInstance(); sqlConn = DriverManager.getConnection( "jdbc:mysql://localhost/phsdb?user=root&password=admin"); java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyyMMddHHmmsss"); java.util.Date rightNow = new java.util.Date(); String now = sdf.format(rightNow); System.out.println(now); tablename="tbrcvlog"+Integer.toString(rightNow.getMonth()+1);
我必须加上-classpath来加mysql 驱动,现在出这个错误: java -classpath .:../lib/log4j-1.2.8.jar:../lib/mysqldriver.jar com/by/cngp/test Exception in thread "main" java.lang.NoClassDefFoundError: java/sql/Savepoint at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:268) at java.sql.DriverManager.getConnection(DriverManager.java:517) at java.sql.DriverManager.getConnection(DriverManager.java:199) at com.by.cngp.test.main(test.java:27)
* Created on 2005-4-10
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.by.cngp;import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.*;
/**
* @author bin
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class test {
public static void main(String[] args){
String tablename;
Connection sqlConn=null;
PreparedStatement stmt=null;
LogApp logapp = new LogApp();
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
sqlConn = DriverManager.getConnection(
"jdbc:mysql://localhost/phsdb?user=root&password=admin");
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyyMMddHHmmsss");
java.util.Date rightNow = new java.util.Date();
String now = sdf.format(rightNow);
System.out.println(now);
tablename="tbrcvlog"+Integer.toString(rightNow.getMonth()+1);
stmt = sqlConn.prepareStatement("insert into tbrcv(msgid,isreport,msgformat,recvtime,srctermid,desttermid,msglength,msgcontent,ProtocolID_Parameter,Protocol_Length,Protocol_value,flag) values(?,?,?,?,?,?,?,?,?,?,?,?)");
stmt.setString(1,"0123456798");
stmt.setString(2,"1");
stmt.setString(3,"15");
stmt.setString(4,now);
stmt.setString(5,"106010180001023");
stmt.setString(6,"97171");
stmt.setInt(7,234);
stmt.setString(8,new String("你好啊噢测试哦".getBytes("GB2312"),"ISO8859-1"));
stmt.setDouble(9,2);
stmt.setDouble(10,3);
stmt.setInt(11,4);
stmt.setString(12,"N");
stmt.executeUpdate();
stmt = sqlConn.prepareStatement("insert into tbrcvlog(msgid,isreport,msgformat,recvtime,srctermid,desttermid,msglength,msgcontent,ProtocolID_Parameter,Protocol_Length,Protocol_value,flag) values(?,?,?,?,?,?,?,?,?,?,?,?)");
stmt.setString(1,"0123456798");
stmt.setString(2,"1");
stmt.setString(3,"15");
stmt.setString(4,now);
stmt.setString(5,"106010180001023");
stmt.setString(6,"97171");
stmt.setInt(7,234);
stmt.setString(8,new String("你好啊噢测试哦".getBytes("GB2312"),"ISO8859-1"));
stmt.setDouble(9,2.0);
stmt.setDouble(10,3);
stmt.setInt(11,4);
stmt.setString(12,"N");
stmt.executeUpdate();
}catch(SQLException e){
//display SQL specific exception information
logapp.log("********************");
logapp.log("SQLException in mainL"+e.getMessage());
logapp.log("**SQLState:"+e.getSQLState());
logapp.log("**SQL Error Code:"+e.getErrorCode());
logapp.log("********************");
e.printStackTrace();
}catch(Exception e){
LogApp.log("Exception in main:"+e.getMessage());
e.printStackTrace();
}finally{
try{
if(sqlConn!=null)
sqlConn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
}这使这个程序的全部代码,晕死了,不知道是TMD怎么回事,服务器上装得jdk1.3,是不是跟这个有关系阿,是不是要换成jdk1.4阿
异常怎么说是禁止访问java.sql.*这个包呢?
难道还和权限有关系?你试试重装一下jdk
确实是权限问题啊,你在服务器上面调试的?是不是没有权限?
而且你这个代码不需要指定classpath
直接用java xxx执行就行
linux上面,你肯定不是root用户,如果jdk是root安装的,那么你肯定没有权限使用的1.3的代码到1。4上面是没有问题的,只会有些警告
你直接用java xxx运行
我觉得不一定行inmport java.sql.xxx://不要用*了执行用java xxx//不要加-classpath ..了
还有你的服务器是专门给你们测试的吗?
如果是这样不应该存在权限问题的
java -classpath .:../lib/log4j-1.2.8.jar:../lib/mysqldriver.jar com/by/cngp/test
Exception in thread "main" java.lang.NoClassDefFoundError: java/sql/Savepoint
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:268)
at java.sql.DriverManager.getConnection(DriverManager.java:517)
at java.sql.DriverManager.getConnection(DriverManager.java:199)
at com.by.cngp.test.main(test.java:27)
这个东西jdk1.3里面没有
看来还是jdk版本的问题,呵呵
java -classpath .:../lib/log4j-1.2.8.jar:../lib/mysqldriver.jar:../lib/lib_1.4.2_03/rt.jar: com/by/cngp/test
DEBUG - ********************
DEBUG - SQLException in mainLCannot load connection class because of underlying exception: 'java.lang.SecurityException: Prohibited package name: java.sql'.
DEBUG - **SQLState:08001
DEBUG - **SQL Error Code:0
DEBUG - ********************
java.sql.SQLException: Cannot load connection class because of underlying exception: 'java.lang.SecurityException: Prohibited package name: java.sql'.
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:277)
at java.sql.DriverManager.getConnection(DriverManager.java:517)
at java.sql.DriverManager.getConnection(DriverManager.java:199)
at com.by.cngp.test.main(test.java:27)
bash-2.04$
<<java深度历险>>你就知道了,使用-classpath是很有意思的事情
类加载的顺序是有一定顺序的,有可能去系统路径里面寻找的,所有会有权限问题你最好把log4j和mysql驱动加到CLASSPATH里面使用
所以我之前就是一直建议你不要加-classpath参数加载类就是这个原因