connectionsql

SQL的一些问题

1.连接数据库使用的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@page import="com.mysql.jdbc.Driver"%> 
<%@page import="java.sql.*"%>
<%
// 注册jdbc驱动
Class.forName("com.mysql.jdbc.Driver").newInstance();
// 设置连接字符串(包括主机名,端口,数据库名,用户名,密码等)
String uri = "jdbc:mysql://localhost:3306/checkmysql?user=root&password=123123";
// 建立数据库连接
Connection connection = DriverManager.getConnection(uri);
// 创建语句
Statement statement = connection.createStatement();
// 执行查询语句,并将结果保存在resultSet对象中
ResultSet resultSet = statement.executeQuery("SELECT * FROM emp");
// 循环读取表
while(resultSet.next()){
out.print(resultSet.getString(1)+"&&"+resultSet.getString(2)+"<br>");
}
%>

在这之前,需要在项目中引入mysql-connector-java-5.1.13-bin.jar这样的一个jar包

2、项目启动成功却报错了,具体应该是:java web 项目 无法找到com.mysql.jdbc.Driver。我的初步的解决方法是在Tomcat的lib目录下,把mysql-connector-java-5.1.13-bin.jar这个jar包放进去,之后运行就成功了!!

报错的部分代码是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 19 in E:\aboutmyeclipse\apache-tomcat-7.0.42\work\Catalina\localhost\testsql\org\apache\jsp\index_jsp.java/
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:423)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:308)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
com.xj.mobile.filter.EncodingFilter.doFilter(EncodingFilter.java:27)

对于上面的那个的详细解决方法是:

1
2
3
4
1:下载mysql-connector-java-x.x.x-bin.jar,目前最新版为mysql-connector-java-5.1.22-bin.jar。
在Eclipse中,选择 项目->属性->Java构建路径,在“库”选项卡中,选择“添加外部JAR”,找到下载的mysql-connector-java-5.1.22-bin.jar文件,将其添加进项目。
2: 在web项目中还需要把jar 文件放入tomcat 的lib 目录中

3、引入的外部的jar包为啥进不去WEB-INF的lib

解决方法:直接找到mysql-connector-java-5.1.22-bin.jar,然后复制,并粘贴到web项目的WEB_INF的lib目录下面即可。

4、访问出错:

1
org.apache.jasper.JasperException: java.lang.NullPointerException org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

解决方法:

你的工程/WEB-INF/lib下面看有没有servlet-api.jar、jsp-api.jar 等在Apache Software Foundation/Tomcat6.0/lib 下面已经存在的jar包, 如果有则删除。重启后,问题解决。

但是我的问题并没有解决:

报错如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
root cause
java.lang.NullPointerException
org.apache.jsp.check_005flogin_jsp._jspService(check_005flogin_jsp.java:90)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

对于上述的解决办法是:(在程序中,我的表名写错了!)

一:是在你的SQL语句上做修改,产生NULL的原因有可能是你数据库里的值就是NULL,这种情况可以用ORACLE的NVL函数来解决,例如:NVL(NULL, 0);

二:是在jsp页面做修改,虽然传到前台的值是NULL,可以在jsp页面把NULL转换成你所需要的值。例如:可以通过if语句判断后把你要显示在jsp页面的值赋予你想要的值(0)。

我改 表名之后就没有报错了