LT__9527 2021-04-27 17:20 采纳率: 50%
浏览 99

HTTP状态 500 - 内部服务器错误

 

 

package com.mingrisoft.dao;

import java.sql.Connection;                        //表示连接到某个数据库的连接
import java.sql.DriverManager;                    //用来获取数据库连接
import java.sql.PreparedStatement;                //用来执行SQL语句
import java.sql.ResultSet;                        //封装查询结果集
import java.sql.SQLException;                    //异常处理类


public class DB {
    private Connection con;                            //声明一个Connection对象
    private PreparedStatement pstm;                    //声明一个PreparedStatement对象
    private String user="sa";                        //登录数据库的默认用户名
    private String password="1";                        //登录数据库的密码
    private String className="com.microsoft.sqlserver.jdbc.SQLServerDriver";        //数据库驱动类路径
    private String url="jdbc:sqlserver://localhost:1433;DatabaseName=db_CityInfo";    //数据库URL
    
    public DB(){                                    //DB类的构造方法
        try{                                        //必须使用try-catch语句捕获加载数据库驱动时可能发生的异常
            Class.forName(className);                //加载数据库驱动
        }catch(ClassNotFoundException e){            //捕获ClassNotFoundException异常
            System.out.println("加载数据库驱动失败!");
            e.printStackTrace();                    //输出异常信息
        }
    }


    /**创建数据库连接*/
    public Connection getCon(){
        try {
            con=DriverManager.getConnection(url,user,password);    //建立连接,连接到由属性url指定的数据库URL,
                                                            //并指定登录数据库的用户名和密码
        } catch (SQLException e) {
            System.out.println("创建数据库连接失败!");
            con=null;
            e.printStackTrace();
        }
        return con;
    }

    
    public void doPstm(String sql,Object[] params){
        if(sql!=null&&!sql.equals("")){
            if(params==null)params=new Object[0];
            con = getCon();                                            //调用getCon()方法获取数据库连接
            if(con!=null){
                try{
                    pstm=con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                                ResultSet.CONCUR_READ_ONLY);
                    for(int i=0;i<params.length;i++){
                        pstm.setObject(i+1,params[i]);
                    }
                    pstm.execute();                            //执行SQL语句
                }catch(SQLException e){
                    System.out.println("doPstm()方法出错!");
                    e.printStackTrace();                        //输出错误信息
                }
            }
        }
    }

    
    public ResultSet getRs() throws SQLException{
        return pstm.getResultSet();            //调用PreparedStatement类对象的getResultSet()方法返回ResultSet对象
    }

    public int getCount() throws SQLException{
        return pstm.getUpdateCount();        //调用PreparedStatement类对象的getResultSet()方法返回影响的记录数
    }

    public void closed(){
        try{
            if(pstm!=null)
                pstm.close();            
        }catch(SQLException e){
            System.out.println("关闭pstm对象失败!");
            e.printStackTrace();
        }
        try{
            if(con!=null){
                con.close();
            }
        }catch(SQLException e){
            System.out.println("关闭con对象失败!");
            e.printStackTrace();
        }
    }
}

  • 写回答

1条回答 默认 最新

  • BCS-点心 2021-04-27 17:30
    关注

       public ResultSet getRs() throws SQLException{
            return pstm.getResultSet();            //调用PreparedStatement类对象的getResultSet()方法返回ResultSet对象
        }

     

    这里调用pstm时,还没有给它赋值,所以空指针错误

    评论

报告相同问题?

悬赏问题

  • ¥20 关于#qt#的问题:Qt代码的移植问题
  • ¥50 求图像处理的matlab方案
  • ¥50 winform中使用edge的Kiosk模式
  • ¥15 关于#python#的问题:功能监听网页
  • ¥15 怎么让wx群机器人发送音乐
  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化