由于昨天刚学到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("张飞"); }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)