首页 新闻 会员 周边

jdbc 数据库连接代码问题 该怎么改

0
悬赏园豆:15 [已解决问题] 解决于 2016-11-24 17:02

<%@page import ="java.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<%
String driverName="com.mysql.jdbc.Driver";
String useName="root";
String userPasswd="root";
String dbName="mysql";
String tableName="word";

Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connnection=DriverManager.getConnection("jdbc:mysql://localhost/mysql?useUnicode=true&characterEncoding=UTF-8","root","root");
Statement statement =connnection.createStatement();
String mm="SELECT*FROM"+tableName;
ResultSet rs=statement.executeQuery(mm);
ResultSetMetaData rmeta=rs.getMetaData();
out.print("单词量测试, 共200道题");
while(rs.next()){
%>
<%=rs.getString(1)%>
<%=rs.getString(2)%>
<input type="radio"name ="A">
<%=rs.getString(3)%>
<input type="radio"name ="A">
<%=rs.getString(4)%>
<input type="radio"name ="A">
<%=rs.getString(5)%>
<input type="radio"name ="A">
<%=rs.getString(6)%>
<br>
<%
out.print("<br>");
rs.close();
statement.close();
connnection.close();
}
%>
</body>
</html>

零魂的主页 零魂 | 初学一级 | 园豆:135
提问于:2016-11-23 21:02
< >
分享
最佳答案
1
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@page import ="java.sql.*" %>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 8 <title>Insert title here</title>
 9 </head>
10 <body>
11 <%
12 request.setCharacterEncoding("utf-8");
13 String driverName="com.mysql.jdbc.Driver";
14 String userName="root";
15 String userPasswd="yangpeng1994";
16 String dbName="test";
17 String tableName="user";
18 Connection conn = null;
19 Statement statement = null;
20 ResultSet rs = null;
21 try{
22     //加载驱动
23     Class.forName("com.mysql.jdbc.Driver");
24     //创建连接
25     conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test",userName,userPasswd);
26     //创建sql执行对象
27     statement =conn.createStatement();
28     //sql注意空格
29     String mm="SELECT*FROM "+tableName;
30     //执行sql语句
31     rs=statement.executeQuery(mm);
32     //获取结果集的元数据
33     ResultSetMetaData rmeta=rs.getMetaData();
34     out.println("测试-------------------");
35     //遍历
36     while(rs.next()){
37         %>
38         <%=rs.getString(1)%>
39         <%=rs.getString(2)%>
40         <input type="radio"name ="A">
41         <%=rs.getString(3)%>
42         <input type="radio"name ="A">
43         <%=rs.getString(4)%>
44         <input type="radio"name ="A">
45         <%=rs.getString(5)%>
46         <input type="radio"name ="A">
47         <%=rs.getString(6)%>
48         <br>
49         <% 
50         out.print("<br>");
51     }
52     }catch(Exception e){
53         e.printStackTrace();
54     }finally{
55         //在这里用close先关闭,如果关闭出现异常,将之赋值为null,让垃圾回收器回收
56         try{
57             rs.close();
58         }catch(Exception e){
59             
60         }finally{
61             rs = null;
62         }
63         
64         try{
65             statement.close();
66         }catch(Exception e){
67             
68         }finally{
69             statement = null;
70         }
71         
72         try{
73             conn.close();
74         }catch(Exception e){
75             
76         }finally{
77             conn = null;
78         }
79     }
80 
81 %>
82 </body>
83 </html>

 

收获园豆:15
扬帆~起航 | 菜鸟二级 |园豆:217 | 2016-11-24 14:56

so sweet  感谢

零魂 | 园豆:135 (初学一级) | 2016-11-24 15:00

@零魂: 再问一个问题 我的数据库是一个试卷  一个题可以选择一个答案   但是我的代码所有的选择题只能选一个。。。这个是哪里的问题。。。。

零魂 | 园豆:135 (初学一级) | 2016-11-24 17:26

@零魂: 你的所有的radio标签的name全是A,那么对于一个单选组内的单选按钮肯定只能有一个能选,

扬帆~起航 | 园豆:217 (菜鸟二级) | 2016-11-24 18:25

@扬帆~起航: thanks

零魂 | 园豆:135 (初学一级) | 2016-11-24 20:15
其他回答(2)
0

Class.forName("com.mysql.jdbc.Driver").newInstance();

改驱动

 

Connection connnection=DriverManager.getConnection("jdbc:mysql://localhost/mysql?useUnicode=true&characterEncoding=UTF-8","root","root");

改连接串,账号密码。

Daniel Cai | 园豆:10424 (专家六级) | 2016-11-24 09:09

这个是什么错误?   我该怎么修改?和数据库的连接驱动不应该是这样吗?求指教QAQ

 

支持(0) 反对(0) 零魂 | 园豆:135 (初学一级) | 2016-11-24 11:53

@零魂: 我只是告诉你这两行的意义,如果你报错了那么就应该根据错误去做响应调整。

支持(0) 反对(0) Daniel Cai | 园豆:10424 (专家六级) | 2016-11-24 11:56
0

我改用try catch实现   就可以了 

零魂 | 园豆:135 (初学一级) | 2016-11-24 12:12

try catch只是规避问题,你没解决问题,这里有异常,你把它输出出来看下啊。

支持(0) 反对(0) Daniel Cai | 园豆:10424 (专家六级) | 2016-11-24 13:25

@Daniel Cai: 额  我还修改了一些其他的   在修改后  它运行报错是An exception occurred processing JSP page   这类错误我百度之后 发现没有很好地解决方案  只能通过try来规避这类问题  晚上还打算发一个帖子打算问一下是否连接数据库必须用到try catch以保证运行时不会出现问题  

ps:你对这个问题有什么好的看法吗  我修改了很多地方  发现每改动一次  就会出现一个新的n exception occurred processing JSP page问题 

<%@page import ="java.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<%@ page contentType="text/html" pageEncoding="utf-8" language="java"%>
<title>Insert title here</title>
</head>
<body>
<%
String driverName="com.mysql.jdbc.Driver";
String useName="root";
String userPasswd="root";
String dbName="mysql";
String tableName="word";

Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost/mysql?useUnicode=true&characterEncoding=UTF-8","root","root");
Statement stat =conn.createStatement();

String mm="SELECT * FROM "+tableName;
try{
ResultSet rs=stat.executeQuery(mm);
ResultSetMetaData rmeta=rs.getMetaData();
out.print("单词量测试, 共200道题");
out.print("<br>");
while(rs.next()){
%>
<%=rs.getString(1)%>
<% out.print(".");%>
<%=rs.getString(2)%>
<input type="radio"name ="A">
<%=rs.getString(3)%>
<input type="radio"name ="A">
<%=rs.getString(4)%>
<input type="radio"name ="A">
<%=rs.getString(5)%>
<input type="radio"name ="A">
<%=rs.getString(6)%>
<br>
<%
out.print("<br>");

}
rs.close();
stat.close();
conn.close();
}
catch(SQLException e) {
e.printStackTrace();
}

%>
</body>
</html>

这是我最后的代码 

还请指教

支持(0) 反对(0) 零魂 | 园豆:135 (初学一级) | 2016-11-24 13:34

@零魂: 你debug下看下catch后抛出来的什么

支持(0) 反对(0) Daniel Cai | 园豆:10424 (专家六级) | 2016-11-24 13:38

@Daniel Cai: 尴尬   寝室断电  学校抠门QAQ

支持(0) 反对(0) 零魂 | 园豆:135 (初学一级) | 2016-11-24 13:40

@零魂: 牛掰,我上学的时候如果有你这样的精神就好了。

支持(0) 反对(0) Daniel Cai | 园豆:10424 (专家六级) | 2016-11-24 13:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册