idea 里 使用jdbc查询条件是中文字符串 导致ResultSet.next()为false 或者rs.next()为false

idea 里 使用jdbc查询条件是中文字符串 导致ResultSet.next()为false 或者rs.next()为false,第1张

idea 里 使用jdbc查询条件是中文字符串 导致ResultSet.next()为false 或者rs.next()为false

由于昨天刚学到jdbc 这些代码在老师电脑跑是没有任何问题的 但是到我们这里就嘎嘎报错

JDBC中rs.next()的返回值总为false的问题_dianba1952的博客-CSDN博客 感谢这位博主的解决方法

之前解决完url没有添加useSSL=false导致的报错 然后以为没事了 结果晚上同学问我为什么使用名字查询就查出来为空  这个问题找了半天昨晚没找到就睡了 一想到有bug就还是睡不着觉,索性早上起来继续找 最后找到了原因还是url的问题  因为使用名字是中文的 所以需要在url后添加characterEncoding=utf-8解决问题 记得使用连接符&& 下面代码奉上

public void getEmpByName(String empName) {
        Connection conn = null;
        Statement stat = null;
        ResultSet rs = null;
        Emp emp = null;

        try {
            //加载驱动类
            Class.forName("com.mysql.jdbc.Driver");
            //获取连接对象
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/empsys?useSSL=false&&characterEncoding=utf-8", "root", "123456");
            //编写sql语句
            String sql = "select * from emp where empName='" + empName+"'";
            //获得执行对象
            stat = conn.createStatement();
            //如果是查询,把查询得到的结果放入ResultSet结果集对象中
            rs = stat.executeQuery(sql);
            //遍历结果集对象
            if (rs.next()) {
                //把结果集对象中的值依次放入实体类属性中
                int empNo = rs.getInt("empNo");
                String empName1 = rs.getString("empName");
                String password = rs.getString("password");
                Date birthday = rs.getDate("birthday");
                int deptNo = rs.getInt("deptNo");
                emp = new Emp(empNo, empName1, password, birthday, deptNo);
                System.out.println(emp);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            //关闭三个对象
            try {
                rs.close();
                stat.close();
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {
        EmpDaoImpl empDao = new EmpDaoImpl();
        //empDao.getEmpById(2);
        empDao.getEmpByName("张飞");
    }

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5583124.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存