同样的代码,JAVA能连MYSQL,但JSP确出异常,请高手帮忙啊,
发布网友
发布时间:2022-04-10 09:17
我来回答
共9个回答
热心网友
时间:2022-04-10 10:46
连续几天安装配置和连接Mysql数据库,今天终于成功了,回想这几天,真的是甜酸苦辣都有,单mysql就重装了不下10次,而在eclipse上编写的连接数据库的程序总是报错.我都已经down了oracal准备放弃mysql了,不过...就象电视剧演的那样,转机总是在这个时候出现,先是看到了saulzy关于mysql4.1.11版本的安装介绍,接着又找到了一款不错的mysql 界面插件,最后在网友的帮助下把mysql的JDBC驱动配好并连通了.一连5天,日子真不好过阿,不过这个过程中,我也觉得自己学到不少东西,呵呵,反正都撑过来了,就要继续往前走.现在,就这几天弄的总结一下,希望对同是正在学习JAVA技术的同道中人能有帮助.
(相关链接:"配置Eclpise+tomcat并实现JSP的编写与部署")
一. 软件下载
Mysql
下载版本:4.1.11
http://dev.mysql.com/downloads/mysql/4.1.html
JDBC驱动
下载版本:3.1.8
http://dev.mysql.com/downloads/connector/j/3.1.html
Mysql界面插件:mysql-front
下载版本镜像:HongKong(我下回来安装就是中文版了)
http://www.mysqlfront.de/download.html
二. 软件安装
1.安装mysql
请参阅相关文章,推荐文章:http://blog.csdn.net/saulzy/archive/2005/04/23/359648.aspx
2.JDBC驱动:mysql-connector-java-3.1.8
这只是一个压缩包,并不需要安装,只要将其解压,我么使用的是文件夹mysql-connector-java-3.1.8里的文件:mysql-connector-java-3.1.8-bin.jar.
3. Mysql界面插件:mysql-front
这是一个安装程序,按照提示安装就可以了.
三. 环境配置
首先,我要说明的是我现在tomcat的安装路径是: D:\Program Files\Java\Tomcat;JDK的安装路径是:D:\Program Files\Java\j2sdk。
在这里,需要配置环境变量的是JDBC驱动.在配置前先要把刚才说到的mysql-connector-java-3.1.8-bin.jar本地硬盘某处(我放的地方:D:\Program Files\Java\mysqlforjdbc),然后根据你放的地方,配置classpath,我的配置是这样的:
D:\Program files\Java\j2sdk\lib\tools.jar;
D:\Program Files\Java\j2sdk\lib\mysql-connector-java-3.1.8-bin-g.jar;
D:\Program Files\Java\mysqlforjdbc\mysql-connector-java-3.1.8-bin.jar
配置这个的目的是让你的java应用程序找到连接mysql的驱动.
配置完环境变量后还有很重要一步就是为JSP连接数据库配置驱动,这个其实很简单,就是把mysql-connector-java-3.1.8-bin.jar拷到某些文件夹里就行了,我在网上看了很多资料问了很多人,各种说法都有,我综合了一下,为了保险,我都全做了,呵呵,反正就是拷一个400K的文件而已,现列出要把mysql-connector-java-3.1.8-bin.jar拷进去的文件夹,如下:
D:\Program Files\Java\Tomcat\common\lib
D:\Program Files\Java\Tomcat\shared\lib
四. 数据库的使用
Mysql安装完毕以后,还有一些要注意的地方(推荐文章):http://blog.csdn.net/saulzy/archive/2005/04/23/359811.aspx
就象在文章提到的,mysql安装好后最重要一样就是要看数据库有没有作为系统服务启动了,所以在大家进行数据库操作前,应要看看,在操作系统的开始->运行->输入services.msc,确定你在安装时你设置的关于mysql的那个服务已经启动,这样你在操作数据库时不会报连接不上的错误.
上面提到了一个较方便的mysql界面插件,但是这个界面是我在已经开始使用mysql后才找到的,刚开始我是在dos下用命令行进行操作的.虽然那个界面也可以进行建库啊,设定权限等操作,但是,我觉得懂得在使用命令行也是一个很重要的技能,所以我先从命令行开始说,怎样简单使用mysql.到后面会谈及mysql-front的使用.
现在我想在mysql里建一个数据库shujuku,以及在数据库里建一个表biao.具体的命令如下(假设mysql我是刚安装好的)
1. 进入dos状态(记住命令行的要运行在mysql的安装目录下的bin目录的)
2. 连接mysql
输入:mysql –h localhost –u root –p
输入在安装时已设好的密码,就近入了mysql的命令编辑界面了。
3. 使用mysql的基本命令(在mysql命令行编辑每输入完命令后最后一定要有分号,不然会报错)
显示数据库:show databases;
使用数据库:use 数据库名;
4.建库
命令:create database shujuku;
5.为数据库设置权限(用户和密码)
命令:grant all privileges on shujuku.* to test@localhost identified by “123456”;
当你执行完这个命令以后,只要你再以用户名:test,密码:123456登录时你就只可以对shujuku这个数据库操作,这样避开使用root,对数据库的安全有很大帮助.
6.建表
命令:create table biao(id int(8) primary key,name varchar(10));
剩下来的与标准sqsl命令基本上是一样的,具体操作略
值得一提的是,你在命令行上输入”?”,就会有mysql命令的简单帮助,如下:
呵呵,那样,我们还可以知道退出,就是”exit”,呵呵!
五. 关于mysql-front的使用
我找了好几个mysql的界面工具,觉得最简洁方便还是mysql-front,可惜的是要收费,不过还好有试用期,呵呵,可以先感受感受一下,最重要一点是mysql-front有简体中文版的,英文不好的我用起来就舒服多了.下面简单说说使用吧.
首先,安装就不用说了,有向导,而且很简单.安装好后第一次运行时会跳出来一个要求添加对话的框,在这里你可以添加例如上面已经设定好的shujuku,过程如下:
当你在注册的复选框里填上你在上面mysql设定好的用户名和密码后,在选择数据库框里就有shujuku 的数据库了,选上,按确定.进入mysql-fron后,你就会看到下面的界面,这是你就可以进行操作了.
要说明的是,你还可以把root用户也加进去,这要你在mysql-fron的界面上选设置->对话->新建,再按上面进行就可以,出了root你还可以加入更多的用户,方法还是一样的,设置不同的用户,是方便对不同数据库进行管理,呵呵,root是权限最高的,可不要随便让别人使用你的root用户,保正你数据库的安全.
六. JSP连接mysql
现在就是尝试用jsp连接mysql了
我在eclipse里建了个test_mysql.jsp页面,代码如下:
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page language="java" %>
<%@ page import="com.mysql.jdbc.Driver" %>
<%@ page import="java.sql.*" %>
<%
//驱动程序名
String driverName="com.mysql.jdbc.Driver";
//数据库用户名
String userName="cl41";
//密码
String userPasswd="123456";
//数据库名
String dbName="db";
//表名
String tableName="dbtest";
//联结字符串
String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection=DriverManager.getConnection(url);
Statement statement = connection.createStatement();
String sql="SELECT * FROM "+tableName;
ResultSet rs = statement.executeQuery(sql);
//获得数据结果集合
ResultSetMetaData rmeta = rs.getMetaData();
//确定数据集的列数,亦字段数
int numColumns=rmeta.getColumnCount();
// 输出每一个数据值
out.print("id");
out.print("|");
out.print("num");
out.print("<br>");
while(rs.next()) {
out.print(rs.getString(1)+" ");
out.print("|");
out.print(rs.getString(2));
out.print("<br>");
}
out.print("<br>");
out.print("数据库操作成功,恭喜你");
rs.close();
statement.close();
connection.close();
%>
然后把test_mysql.jsp部署到tomcat处,如何部署可参考"配置Eclpise+tomcat并实现JSP的编写与部署",在浏览器中就可以看到结果了。
希望这篇文章的你有帮助!Good luck!
参考资料:http://www.ingenuus.com.cn/html/15/13/13109/1.htm
热心网友
时间:2022-04-10 12:04
请检查你的WEB-INF下的lib目录中是否引入了mysql-connector-java-5.1.5-bin.jar 这个文件
热心网友
时间:2022-04-10 13:39
把mysql的jar包复制到tomcat的lib下面,然后重启tomcat
热心网友
时间:2022-04-10 15:30
TOMCAT 5.0.28 ,MYSQL 5.1 驱动包mysql-connector-java-5.1.5-bin.jar 这个包没有添加吧
热心网友
时间:2022-04-10 17:38
绝对不是驱动的问题,这上面只是说:服务器产生一个错误阻止了本次请求
热心网友
时间:2022-04-10 20:03
1提
public class Shuchu{
public static void main(String args[]){
System.out.println("java test!");}}
2.
import java.awt.Graphics;
import java.applet.Applet;
public class Shuchu extends Applet{
public void paint(Graphics g){
g.drawString("Java test!",20,30);}}
html文件中
<HTML>
<HEAD>
<applet code="Shuchu.class" width=300 height=300>
</applet>
</body>
</html>
3.
import java.util.*;
public class Ex{
public static void main(String args[]){
int i,count=0;
Random rand=new Random();
while (true){
i=rand.nextInt()%100;
count++;
System.out.print("\ti="+i);
if(i==50)
break;
if(count%5==0)
System.out.println("\n");}
System.out.println("\n");
System.out.println("*生的随机个数="+count);}}
4
public class Q{
public static void main(String args[]){
int n=Integer.parseInt( args[0]);
if(n%4==0&&n%100!=0||n%400==0)
System.out.println(n+"是闰年");
else
System.out.println(n+"不是闰年");
}}
注:建立文件时要选file下的java file dos下进行对编号的文件进行编译、运行,要进到相应的java目录当中
5体
public class cd{
public static void main(String args[]) {
int x=Integer.parseInt( args[0]);
int i=0,j=0,k=0;
i=x%10;
j=(x%100)/10;
k=x/100;
System.out.println("i="+i+"\tj="+j+"\tk="+k);}}
6.
public class Gh{
public static void main(String args[]){
final int max=15;
int i=0,j=1,k=0;
do{
System.out.print(" "+i+" "+j);
i=i+j;
j=i+j;
k=k+2;
}while(k<max);
}}
方法二:
public class F{
public static void main(String args[]){
int i=0,j=1,k;
int n;
for(n=1;n<=15;n++)
{k=i+j;
System.out.print(" "+k);
i=j;
j=k;
}
}
}
7
import java.util.*;
public class G{
public static void main(String args[])
{int x,i=0,j=0;
Random rand=new Random();
x=rand.nextInt()%100;
if(x<0)
x=-x;
if(x%10==x)
i=x;
else
{i=x%10;
j=(x%100)/10;}
System.out.println("x="+x);
System.out.println("i="+i+"\tj="+j);}}
方法二:
import java.util.*;
public class h{
public static void main(String args[]){
int i,j,k;
Random rand=new Random();
i=rand.nextInt();
if(i<0)
i=-i;
System.out.println(" i="+i);
while(i!=0)
{
k=i%10;
System.out.print(" "+k);
i=i/10;}
}
}
8
import java.util.*;
public class J{
public static void main(String args[]){
int a,b,c,max,min;
Random rand=new Random();
a=rand.nextInt();
b=rand.nextInt();
c=rand.nextInt();
if(a>b)
{if(a>c)
{max=a;
if(b<c)
min=c;
else min=b;}
else
max=c;min=b;}
else
if(b>c)
{max=b;
if(a>c)
min=c;
else min=a;}
else
{max=c;min=a;}
System.out.println("a="+a+"\tb="+b+"\tc="+c);
System.out.println("max="+max+"\tmin="+min);}}
9
public class F{
public static void main(String args[])
{int x=Integer.parseInt(args[0]);
switch(x/10){
case 0:System.out.println("no pass");break;
case 1:System.out.println("no pass");break;
case 2:System.out.println("no pass");break;
case 3:System.out.println("no pass");break;
case 4:System.out.println("no pass");break;
case 5:System.out.println("no pass");break;
case 6:System.out.println("D");break;
case 7:System.out.println("C");break;
case 8:System.out.println("B");break;
case 9:System.out.println("A");break;
case 10:System.out.println("A");break;
default:System.out.println("Data Error!");break;}
}
}
10.
public class Q{
public static void main(String args[]){
double s=0,a=1;
do{
s=s+1./a;
a++;}
while (1/a>0.12345);
System.out.println("s="+s);}}
11.
public class Q{
int h;
int s;
int m;
void setvalue(int n,int c,int D){
h=n;
s=c;
m=D;}
void show(){
System.out.println("时间是:"+h+"时:"+s+"分:"+m+"秒");
}
public static void main(String args[]){
Q time=new Q();
time.setvalue(16,4,4);
time.show();}
}
柱:出现非法表达式的开始说明前面没加分号
12
public class Q{
String name;
int age;
int english;
int maths;
int computer;
int number;
Q(String d,int a,int n, int e,int m, int c){
name=d; age=a; english=e; maths=m; computer=c;
number=n;
}
int average(){
int r=(english+maths+computer)/3;
return r;}
void output(){
System.out.println("姓名:"+name+"\t年龄:"+age+"\t学号:"+number);
System.out.println("英语:"+english+"\t数学:"+maths+"\t计算机:"+computer);
}
public static void main(String args[]){
Q b1;
b1=new Q("李四",16,85,95,100,89);
b1.output();
System.out.println("平均分:"+b1.average());}
}
13
class Q{
static int bh;
String name;
float price;
Q(String n,float k){
name=n;
price=k;
bh++;
}
void output(){
System.out.println("booknumber:"+bh+"\t"+"name:"+name+"\t"+"price:"+price);}
void setdata(String s,float p){
name=s;
price=p;
bh=3;}
public static void main(String args[]){
Q b1=new Q("java2",23.8f);
b1.output();
Q b2=new Q("c语言",34.6f);
b2.output();
Q b3=new Q("多媒体",45.2f);
b3.output();
Q b4=new Q("数据库",45f);
b4.output();
System.out.println("对booknumber3进行修改");
b3.setdata("多媒体技术",23.8f);
b3.output();}}
14
class Q{
float x,y;
Q(float a,float b){
this.x=a; this.y=b;}
public boolean equals(Q m){
if(this.x==m.x&&this.y==m.y)
return true;
else
return false;}
public static void main(String args[]){
Q k1=new Q(123.4f,321.5f);
Q k2=new Q(12.4f,321.5f);
boolean b;
b=k1.equals(k2);
if(b==true)
System.out.println("两个成员变量相同");
else
System.out.println("两个成员变量不相同");}
}
15
interface studeninfor{
int year=2005;
void showInfor();}
interface studentscore{
float total();
float ave();}
public class B implements studeninfor,studentscore{
String name;
int birth,da,english,maths,computer;
B(String n,int d,int b,int e,int m,int c){
name=n;
birth=b;
da=d;
english=e;
maths=m;
computer=c;}
int age(){
int z=year-birth;
return z;}
public void showInfor(){
System.out.println("姓名:"+name+"\t学号:"+da+"\t出生年份:"+birth);
System.out.println("英语:"+english+"\t数学:"+maths+"\t计算机:"+computer);}
public float total(){
int k=english+maths+computer;
return k;}
public float ave(){
int v=(english+maths+computer)/3;
return v;}
public static void main(String args[]){
B b1;
b1=new B("李四",16,1987,81,90,100);
b1.showInfor();
System.out.println("该同学的年龄是:"+b1.age()+"岁");
System.out.println("总成绩:"+b1.total());
System.out.println("平均分:"+b1.ave());}
}
16
public class Q{
public static void main(String args[]){
int a[]={20,10,50,40,30,70,60,89,90,100};
int i,j,t;
for(i=0;i<10;i++)
System.out.print(a[i]+" ");
for(j=0;j<=8;j++)
{for(i=0;i<=8-j;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];
a[i+1]=t;}}
System.out.print("\n");
System.out.println("排序后输出");
for(i=9;i>=0;i--)
System.out.print(a[i]+" ");}
}
17.class B{
static String arr[]={"java","c","c++","for","Basic","Go"};
public static void main(String args[]){
int j,i;
for(j=0;j<arr.length;j++)
System.out.print(arr[j]+" ");
System.out.print("\n");
System.out.print("按字母顺序输出:");
System.out.print("\n");
for(j=0;j<arr.length;j++){
for(i=j+1;i<arr.length;i++){
if(arr[i].compareTo(arr[j])<0)
{String t=arr[j]; arr[j]=arr[i];arr[i]=t;}
}
System.out.print(arr[j]+" ");}
}
}
18
public class Q{
public static void main(String args[]){
int n=Integer.parseInt(args[0]);
int k;
while (n!=0)
{k=n%10;
System.out.print(k);
n=n/10;}}}
19
public class d {
static String a[]={"bnm","thj","tj","tde","tjehfse","TjkhfsE","tjdfE","Tjkhfse"};
public static void main(String[] args) {
for (int i=0;i<a.length;i++)
if ((a[i].startsWith("t")||a[i].startsWith("T"))&&a[i].endsWith("e"))
System.out.println(a[i]);
}
}
20.杨辉三角形:
class Q{
public static void main(String args[]){
int i,j;
int yangH[][]={{1},{1,1},{1,2,1},{1,3,3,1},{1,4,6,4,1}};
for(i=0;i<yangH.length;i++)
{
for(j=0;j<yangH.length-i;j++)
System.out.print(" ");
for(j=0;j<yangH[i].length;j++)
System.out.print(" "+yangH[i][j]);
System.out.println();
}
System.out.println();
}
}
</PIXTEL_MMI_EBOOK_2005><PIXTEL_MMI_EBOOK_2005>1 </PIXTEL_MMI_EBOOK_2005>
热心网友
时间:2022-04-10 22:44
加了驱动没有,如果驱动加了的话,那就是代码的问题了.
热心网友
时间:2022-04-11 01:42
你导数据库连接的JAR包了么?
热心网友
时间:2022-04-11 04:57
好像导包了,是不是在和数据库建立连接时出错了?
同样的代码,JAVA能连MYSQL,但JSP确出异常,请高手帮忙啊,
在这里,需要配置环境变量的是JDBC驱动.在配置前先要把刚才说到的mysql-connector-java-3.1.8-bin.jar本地硬盘某处(我放的地方:D:\Program Files\Java\mysqlforjdbc),然后根据你放的地方,配置classpath,我的配置是这样的: D:\Program files\Java\j2sdk\lib\tools.jar; D:\Program Files\Java\j2sdk\lib\mysq...
jsp 获取mysql一列数据arraylist发生了问题,求高手帮忙
根据你报的异常 root causejavax.servlet.ServletException: java.lang.NoSuchMethodError NoSuchMethodError不用解释了吧,就是在调用这个方法的时候出问题了,没找到这个方法。而最上面的异常:org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)就是因为调用这个方法出现问...
mysql错误,请高手帮忙!
1.首先查清原先MYSQL版本号;2.下载并安装与原先一样的版本号的MYSQL;3.把原来数据复元到这个新装的MYSQL中;4.使用Navicat Premium或PHPADMIN等工具把数据导出为TXT格式,或者SQL等文本格式;5.安装新版本的MYSQL(这个版本数据最好要跟你新服务器的MYSQL版本一致才行,否则又出现一样的问题)到另一...
java怎么连接mysql,谢高手解答。
1.String url = Class.forName("com.mysql.jdbc.Driver");String url = Class.forName("com.mysql.jdbc.Driver").newInstance();2.你还要捕获错误,不会报notfoundclassexception错误;l 3. executeUpdate改成stmt.executeQuery executeQuery是执行查询的,executeUpdate则是执行更新的 .最后,我觉得你最好...
JSP连接MSSQL数据库时,无法显示数据库中的汉字,并且也无法将汉字写入数...
2 tomcat对get方式提交的请求对query-string 处理时采用了和post方法不一样的处理方式。(与tomcat4不一样,所以设置setCharacterEncoding(“gbk”))不起作用。解决办法:首先所有的jsp文件都加上:1 实现一个Filter.设置处理字符集为GBK。(在tomcat的webapps/servlet-examples目录有一个完整的例子。请参考...
...用java 一直连接不上 mysql 5.5,请高手帮忙!!! 原程序如下:
= DriverManager.getConnection("jdbc:mysql://localhost:3306/mydata","root","root"); 如果你非要设置那个字符编码,那么使用下面这一串Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydata?useUnicode=true&characterEncoding=gbk ","root","root");不用链接符号 ...
Java程序实现mysql数据库导出,命令执行成功了,可是导出的文件是空的...
应该是一些特殊符被转义了,你可以把mysqldump -u root -proot --opt mysql > C:/Users/success/ak.sql 这句写到一个bat文件里面,然后java中就直接调用这个bat文件就可以避免了
list.size()服务器抛出NullPointerException 请高手帮帮忙 谢谢!!!
这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即...
用ajax+jsp实现用户登录的问题:无论登录有没有成功,在页面上都没有显 ...
你在checklogin.jsp里打印点东西或是输出点什么 看看是否调用到了checklogin.jsp还有你为什么自己写ajax请求,完全可以用jquery啊 更方便,你自己写的不知道是否适用浏览器,不同的浏览器获取xmlhttp是不一样的
...代码,但是不知道怎么在tomcat里部署,求高手帮忙啊!
建议几点,希望对你有帮助 1.必须有运行环境,比如jdk,数据库 2.源代码不经编译不能在tomcat运行 3.mysql与sqlServer见表语句不同,需要进行转换