我直接在jsp页面中连接mysql数据库成功,代码如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.mysql.jdbc.Driver").newInstance();
String url ="jdbc:mysql://localhost/new2007?user=root&password=123&useUnicode=true&characterEncoding=8859_1";
//testDB为你的数据库名
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from tb_user";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
后来,我把它改成javabean+jsp的形式:
1、JDBConnection类如下:
package com;
import java.sql.*; //导入数据库操作的类public class JDBConnection //构造方法,初始化
{ private Connection conn; //连接对象
private Statement stmt; //语句对象
private ResultSet rs; //结果集对象
private String accessdriver; //保存Access驱动程序字符串
private String accessURL; //保存Access连接字符串 public JDBConnection()
{
//Access驱动程序
accessdriver = "com.mysql.jdbc.Driver";
//连接字符串
accessURL = "jdbc:mysql://localhost/new2007?user=root&password=123&useUnicode=true&characterEncoding=8859_1";
conn = null;
} //该方法从参数得到数据库路径,并加到连接字符串后面,然后再建立连接
public Connection getConnToAccess(){
try{
Class.forName(accessdriver);
conn = DriverManager.getConnection(accessURL);
}catch(Exception e){
System.out.println("操作数据库出错,请仔细检查");
System.err.println(e.getMessage());
}
return conn;
}
//关闭数据库连接
public void close()
{
try{
//rs.close();
//stmt.close();
conn.close();
}catch(SQLException sqlexception){
sqlexception.printStackTrace();
}
}
}
2、index.jsp代码如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<jsp:useBean id="DBConn" scope="request" class="com.JDBConnection"/>
<html>
<body>
<%
Connection conn= DBConn.getConnToAccess();
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from tb_user";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
但是运行时提示错误:
org.apache.jasper.JasperException: /index.jsp(3,0) The value for the useBean class attribute com.JDBConnection is invalid.
不知为什么?请高手指点,谢谢!!
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.mysql.jdbc.Driver").newInstance();
String url ="jdbc:mysql://localhost/new2007?user=root&password=123&useUnicode=true&characterEncoding=8859_1";
//testDB为你的数据库名
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from tb_user";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
后来,我把它改成javabean+jsp的形式:
1、JDBConnection类如下:
package com;
import java.sql.*; //导入数据库操作的类public class JDBConnection //构造方法,初始化
{ private Connection conn; //连接对象
private Statement stmt; //语句对象
private ResultSet rs; //结果集对象
private String accessdriver; //保存Access驱动程序字符串
private String accessURL; //保存Access连接字符串 public JDBConnection()
{
//Access驱动程序
accessdriver = "com.mysql.jdbc.Driver";
//连接字符串
accessURL = "jdbc:mysql://localhost/new2007?user=root&password=123&useUnicode=true&characterEncoding=8859_1";
conn = null;
} //该方法从参数得到数据库路径,并加到连接字符串后面,然后再建立连接
public Connection getConnToAccess(){
try{
Class.forName(accessdriver);
conn = DriverManager.getConnection(accessURL);
}catch(Exception e){
System.out.println("操作数据库出错,请仔细检查");
System.err.println(e.getMessage());
}
return conn;
}
//关闭数据库连接
public void close()
{
try{
//rs.close();
//stmt.close();
conn.close();
}catch(SQLException sqlexception){
sqlexception.printStackTrace();
}
}
}
2、index.jsp代码如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<jsp:useBean id="DBConn" scope="request" class="com.JDBConnection"/>
<html>
<body>
<%
Connection conn= DBConn.getConnToAccess();
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from tb_user";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
但是运行时提示错误:
org.apache.jasper.JasperException: /index.jsp(3,0) The value for the useBean class attribute com.JDBConnection is invalid.
不知为什么?请高手指点,谢谢!!
解决方案 »
- 上传文件到LINUX服务器,文件名中文乱码~~~~~求大神
- 不建议使用类型 DiskFileUpload
- 求助 解决一个问题!
- 事务的问题
- 数据库读取问题
- struts2 的标签遍历:list<map<String,String>>
- myeclipse连接池异常,hibernate连接池异常?
- @@@@@@@@@@@@@@@@@@小弟跪求spring+hibernate+struts例子(散分个一人,答案最好的)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- 本人求关于城市信息港的源码! 有的朋友请和我联系QQ:249841933 谢谢!
- 各位高手,一个JavaMail代码中问题,请教?
- 如何提取URL中的参数
- 操作access数据库
看一下web-inf\classes\com\下面有没有这个类
感觉怪怪的
scope为什么是request?
还不如
<%@ page import="java.sql.*"%>
<%@ page import="com.JDBConnection"%> <%
JDBConnection jDBConn = new JDBConnection();
Connection conn= jDBConn.getConnToAccess();
.................
%>
1、我已经把mysql-connector-java-3.1.14-bin-g.jar和mysql-connector-java-3.1.14-bin.jar放到Tomcat 5.5\common\lib目录下面了呀?
2、<jsp:useBean id="DBConn" scope="request" class="com.JDBConnection"/>scope之前也是page,但是还是运行错误。
是不是JDBConnection类连接代码有问题?麻烦各位帮我仔细检查一下。谢谢!!
该错误是指 JSP 中给定的 useBean 标签的 class 属性的值无效(不是 Bean 的属性值)。楼主仔细检查一下还有就是建议不要把数据库连接语句放在前台jsp页面中
在后台处理比较安全
最好都写成局部变量。这样对并发执行的时候才能不出现问题
package com;
import java.sql.*;
public class DB {
private static Connection getConn() {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager
.getConnection("jdbc:mysql://localhost:/bbs?user=root&password=root");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
} private static Statement getStmt(Connection conn) {
Statement stmt = null;
try {
stmt = conn.createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
return stmt;
} private static ResultSet getRs(Statement stmt, String sql) {
ResultSet rs = null;
try {
rs = stmt.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
} public static void closeConn(Connection conn) {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn = null;
}
} public static void closeStmt(Statement stmt) {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
stmt = null;
}
} public static void closeRs(ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
rs = null;
}
}
}
请楼主写代码时注意一下。
<%@ page import="com.JDBConnection"%> <jsp:useBean id="DBConn" scope="request" class="JDBConnection"/>
看看行不