连接数据库时遇到了如下问题:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
error:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
我用jsp调用时成功了,但是我用另外的应用程序调用时结果出了问题。
调用数据库连接的程序代码:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import java.net.*;
import java.io.*;
import java.util.*;
import DBConnector.*;
/**
*
* @author evol
*/
public class Receiver implements Runnable{
Connector conn;
//conn.connect();
public void setConnector(){}
public Connector getConnector(){return this.conn;}
public static void main(String args[]){
Receiver rec=new Receiver();
}
public Receiver(){
conn=new Connector();
conn.connect();
Thread thread=new Thread(this);
thread.start();
}
public void run(){
DatagramPacket receivePack=null;
DatagramSocket receiveSocket=null;
byte data[]=new byte[8192];
try{
receivePack=new DatagramPacket(data,data.length);
receiveSocket=new DatagramSocket(8888);
}catch(Exception e){e.printStackTrace();}
while(true){
if(receiveSocket==null)
break;
else{
try{
receiveSocket.receive(receivePack);
String ip=receivePack.getSocketAddress().toString();//get the client ip & port
String msg=new String(receivePack.getData(),0,receivePack.getLength());
System.out.println("ip:"+ip+"\nmsg:"+msg);
dataType(msg,ip);
}catch(Exception e){e.printStackTrace();}
}
}//while
}
public String getIP(String ip){
String IP;
int index=0;
for(index=0;index<ip.length();index++)
if(ip.charAt(index)==':'||ip.charAt(index)==':')
break;
IP=ip.substring(2, index);
return IP;
}
public void dataType(String msg,String ip){
//conn.connect();
char rMsgType;
if((!msg.equals(""))&&msg!=null){
rMsgType=msg.charAt(1);
switch(rMsgType){
case 'R':registerUser(msg,ip,conn);break;
case 'D':
case 'M':
case 'B':
String data[]=getData(msg);
double lat=Long.parseLong(data[1]);
double lng=Long.parseLong(data[2]);
float speed=Float.parseFloat(data[4]);
float degree=Float.parseFloat(data[5]);
//long dateTime=Date.parse(data[3]);
String updateString="insert into location(id,latitude,longitude,date,speed,degree)values("+data[0]+","+lat+","+lng+","+data[3]+","+speed+","+degree+")";
conn.executeUpdate(updateString);
break;
case 'S':break;
case 'L':break;
default:break;
}
}
}
public void registerUser(String msg,String ip,Connector conn){
String id=msg.substring(2);
String IP=getIP(ip);
conn.executeUpdate("insert into account(ip,id,pwd)values("+IP+","+id+"1234)");
}
public String[] getData(String msg){
String []data={"","","","","",""};
int index[]={0,0,0,0,0};
int k=0;
for(int i=0;i<msg.length();i++){
if(msg.charAt(i)==','||msg.charAt(i)==','){
index[k]=i;
k++;
}
}
data[0]=msg.substring(2,index[0]-1 );//id
data[1]=msg.substring(index[0]+1,index[1]-1);//latitude
data[2]=msg.substring(index[1]+1,index[2]-1);//longitude
data[3]=msg.substring(index[2]+1,index[3]-1 );//time
data[4]=msg.substring(index[3]+1,index[4]-1 );//speed
data[5]=msg.substring(index[4]+1);//degree
return data;
}
}
连接数哭的代码:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package DBConnector;
import java.sql.*;
import java.io.*;
/**
*
* @author Administrator
*/
public class Connector {
//variables
Connection conn=null;
//constuctor
public Connector(){
}
//methods
public void connect(){
String url="jdbc:mysql://localhost/GPSUserInfo";
String driver="com.mysql.jdbc.Driver";
try{
Class.forName(driver);
conn=DriverManager.getConnection(url, "root","root");
System.out.println("hey,I've got it.I got the DBLink.");
}catch(Exception e){
e.printStackTrace();
System.out.println("hello,evoloyeu,DB connection failed!");
}
}
public ResultSet executeQuery(String sql){
ResultSet rs=null;
try{
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
//conn.close();
}catch(SQLException e){e.printStackTrace();}
return rs;
}
public int executeUpdate(String sql){
int result=0;
try{
Statement stmt=conn.createStatement();
result=stmt.executeUpdate(sql);
//conn.close();
}catch(SQLException e){e.printStackTrace();}
return result;
}
}