栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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("张飞");
    }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/591930.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号