由于昨天刚学到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("张飞");
}版权声明:本文为qq_39741000原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。