java中数据库连接异常如何捕捉? 10
jsp页面<%ConnDBconn=newConnDB();Stringsql="selectidfrommytable";ResultSetrs=conn.execut...
jsp页面
<%
ConnDB conn=new ConnDB();
String sql="select id from mytable";
ResultSet rs=conn.executeQuery(sql);
while(rs.next()){
id=rs.getInt("id");
}
rs.close();
conn.close();
%>
当数据库没有启动时,执行到 ResultSet rs=conn.executeQuery(sql);这一行提示错误.
如何捕捉到这个异常,并且jsp页面有提示
当前这个错误如何办呢? 展开
<%
ConnDB conn=new ConnDB();
String sql="select id from mytable";
ResultSet rs=conn.executeQuery(sql);
while(rs.next()){
id=rs.getInt("id");
}
rs.close();
conn.close();
%>
当数据库没有启动时,执行到 ResultSet rs=conn.executeQuery(sql);这一行提示错误.
如何捕捉到这个异常,并且jsp页面有提示
当前这个错误如何办呢? 展开
3个回答
展开全部
ResultSet rs = null;
try {
rs=conn.executeQuery(sql);
while(rs.next()){
id=rs.getInt("id");
}
} catch (Exception e) {
e.printStackTrace();
}finally{
rs.close();
conn.close();
}
try {
rs=conn.executeQuery(sql);
while(rs.next()){
id=rs.getInt("id");
}
} catch (Exception e) {
e.printStackTrace();
}finally{
rs.close();
conn.close();
}
更多追问追答
追问
在第3行rs=conn.executeQuery(sql);报错啊
我想出现这个错误时 页面友好提示 错误
追答
在catch里面返回一个提示语到前台页面接收显示就可以了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
package com.jdbc;
import java.sql.Connection; //代表对特定数据库的连接
import java.sql.DriverManager; //处理数据的调入并且对产生新的数据库连接提供支持
import java.sql.ResultSet; //控制执行查询语句得到的结果集
import java.sql.SQLException;
import java.sql.Statement; //代表一个特定的容器,容纳并执行一条SQL语句
public class JdbcText {
// URL数据库连接串信息,ip是你服务器的IP地址,“80”为默认端口,“orcl”为sid
String URL = "jdbc:oracle:thin:@ip:80:orcl";
String user = "scott"; //数据库用户名
String password = "password"; //登陆数据库密码
Connection conn = null;
Statement stmt;
// 初始化连接
public JdbcText(){
try
{
//构造驱动实例
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
// 与url指定的数据源建立连接
conn = DriverManager.getConnection(URL, user, password);
System.out.println("成功连接数据库!");
// 采用Statement进行查询
stmt = conn.createStatement(); // 创建连接状态对象
} catch (Exception e)
{
System.out.println("连接数据库失败!");
e.printStackTrace();
}
}
// 执行查询 获取结果存入容器中
public ResultSet executeQuery(String sql) {
ResultSet rs = null;
try
{
rs = stmt.executeQuery(sql); //执行SQL语句,将获取内容存入 rs
} catch (SQLException e)
{
System.out.println("SQL语句书写错误!");
e.printStackTrace();
}
return rs;
}
public void close() {
try
{
conn.close();
stmt.close();
} catch (Exception e)
{
e.printStackTrace();
}
}
public static void main(String[] args) {
ResultSet rs;
JdbcText jdbc = new JdbcText();
rs = jdbc.executeQuery("SELECT empno,ename from emp"); //从emp表中查询数据
try
{
while (rs.next()) // 遍历结果集
{
System.out.print(rs.getString("empno"));
System.out.println(":" + rs.getString("ename"));
}
} catch (Exception e)
{
e.printStackTrace();
}
jdbc.close();
}
}
首先保证你Oracle相关服务是正常打开的
可能出项的异常:
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
没有加载数据库驱动,执行代码 看查询结果就可以了
import java.sql.Connection; //代表对特定数据库的连接
import java.sql.DriverManager; //处理数据的调入并且对产生新的数据库连接提供支持
import java.sql.ResultSet; //控制执行查询语句得到的结果集
import java.sql.SQLException;
import java.sql.Statement; //代表一个特定的容器,容纳并执行一条SQL语句
public class JdbcText {
// URL数据库连接串信息,ip是你服务器的IP地址,“80”为默认端口,“orcl”为sid
String URL = "jdbc:oracle:thin:@ip:80:orcl";
String user = "scott"; //数据库用户名
String password = "password"; //登陆数据库密码
Connection conn = null;
Statement stmt;
// 初始化连接
public JdbcText(){
try
{
//构造驱动实例
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
// 与url指定的数据源建立连接
conn = DriverManager.getConnection(URL, user, password);
System.out.println("成功连接数据库!");
// 采用Statement进行查询
stmt = conn.createStatement(); // 创建连接状态对象
} catch (Exception e)
{
System.out.println("连接数据库失败!");
e.printStackTrace();
}
}
// 执行查询 获取结果存入容器中
public ResultSet executeQuery(String sql) {
ResultSet rs = null;
try
{
rs = stmt.executeQuery(sql); //执行SQL语句,将获取内容存入 rs
} catch (SQLException e)
{
System.out.println("SQL语句书写错误!");
e.printStackTrace();
}
return rs;
}
public void close() {
try
{
conn.close();
stmt.close();
} catch (Exception e)
{
e.printStackTrace();
}
}
public static void main(String[] args) {
ResultSet rs;
JdbcText jdbc = new JdbcText();
rs = jdbc.executeQuery("SELECT empno,ename from emp"); //从emp表中查询数据
try
{
while (rs.next()) // 遍历结果集
{
System.out.print(rs.getString("empno"));
System.out.println(":" + rs.getString("ename"));
}
} catch (Exception e)
{
e.printStackTrace();
}
jdbc.close();
}
}
首先保证你Oracle相关服务是正常打开的
可能出项的异常:
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
没有加载数据库驱动,执行代码 看查询结果就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
页面应该有显示啊,500内部服务器异常
更多追问追答
追问
如何友好提示这个
追答
那就像楼上说
String mes = "";
try{
ConnDB conn=new ConnDB();
String sql="select id from mytable";
ResultSet rs=conn.executeQuery(sql);
while(rs.next()){
id=rs.getInt("id");
}
}catch(Exception e){
//在这里
mes = "服务器繁忙,请稍后再试";
out.print(mes);
}finally{
rs.close();
conn.close();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |