String sql = “SELECT * FROM gjp_ledger”;
QueryRunner qr = new QueryRunner();
//执行query方法,传递连接对象,SQL语句,结果集处理方式
ArrayListHandler
List<Object[]> list = qr.query(conn, sql, new ArrayListHandler());
for(Object[] objects : list){
for(Object obj : objects){
System.out.print(obj+" ");
}
System.out.println();
}
}
- BeanHandler 将结果集第一行数据封装到一个对应的业务类实例中
(1): 定义业务数据类Ledger(实体类,javaBean)
public class Ledger {
//要生成空参、有参构造、set和get方法、toString方法
private int lid;
private String parent;
private double money;
private int sid;
private String account;
private String createtime;
private String ldesc;
}
(2)测试案例代码
public static void main(String[] args) throws Exception{
Connection conn = MyJDBCUtils.getConnection();
String sql = “SELECT * FROM gjp_ledger”;
QueryRunner qr = new QueryRunner();
//BeanHandler泛型,构造方法(和反射有关系的对象)
Ledger legder = qr.query(conn, sql, new BeanHandler(Ledger.class));
System.out.println(legder);
}
- BeanListHandler 将结果集中的每一行数据都封装到一个对应的业务类实例中,再将多个业务类实例对象存放到List里。
public static void main(String[] args) throws Exception {
Connection conn = MyJDBCUtils.getConnection();
String sql = “SELECT * FROM gjp_ledger”;
//结果集处理方式,BeanListHandler 每一行数据封装到业务数据类中
QueryRunner qr = new QueryRunner();
List list = qr.query(conn, sql, new BeanListHandler(Ledger.class));
for(Ledger ledger : list){
System.out.println(ledger);
}
}
- MapHandler 将结果集中的第一行数据封装到一个Map中,key是列名,value是对应的值。
public static void main(String[] args) throws Exception {
Connection conn = MyJDBCUtils.getConnection();
String sql = “SELECT * FROM gjp_ledger”;
//结果集处理方式,MapHandler 封装到一个Map集合中,存储键值对集合
QueryRunner qr = new QueryRunner();
Map<String,Object> map = qr.query(conn, sql,new MapHandler());
for(String key : map.keySet()){
System.out.println(key+" "+map.get(key));
}
}
- MapListHandler 将结果集中的每一行数据都封装到一个Map里,然后再将多个Map存放到List
public static void main(String[] args) throws Exception{
Connection conn = MyJDBCUtils.getConnection();
String sql = “SELECT * FROM gjp_ledger”;
//结果集处理方式,MapListHandler 数据中的每一行封装成Map集合,多个Map集合存储到List集合
QueryRunner qr = new QueryRunner();
List<Map<String,Object>> list = qr.query(conn, sql,new MapListHandler());
for(Map<String,Object> map : list){
for(String key : map.keySet()){
System.out.print(key+" "+map.get(key));
}
System.out.println();
QueryRunner qr = new QueryRunner();
@Override
public List getEmpList(Integer pageSize, Integer pageIndex, String empName) {
List empList = new ArrayList();
/*
//使用new BeanListHandler<>(Emp.class);会导致集合里面字段为空
Connection con = JdbcUtil.getCon();
String sql = “select emp_id empId,emp_name empName,emp_phone empPhone,emp_age empAge,emp_sex empSex,e.depa_id depaId, d.depa_name depaName FROM emp e INNER JOIN depa d ON e.depa_id=d.depa_id WHERE e.emp_name like ? limit ?,?”;
try {
empList = qr.query(con, sql, new BeanListHandler<>(Emp.class),
empName == null || “”.equals(empName) ? “%%” : “%” + empName + “%”,
(pageIndex - 1) * pageSize, pageSize);
} catch (SQLException e) {
e.printStackTrace();
} finally {
JdbcUtil.closeCon(con);
}
for (int i = 0; i < empList.size(); i++) {
System.out.println(empList.get(i));
}*/
//使用 new MapListHandler() 需要手动遍历
Connection con = JdbcUtil.getCon();
String sql = “select emp_id,emp_name,emp_phone,emp_age,emp_sex,e.depa_id, depa_name FROM emp e INNER JOIN depa d ON e.depa_id=d.depa_id WHERE e.emp_name like ? limit ?,?”;
try {
List<Map<String,Object>> list = qr.query(con, sql, new MapListHandler(),
empName == null || “”.equals(empName) ? “%%” : “%” + empName + “%”,
(pageIndex - 1) * pageSize, pageSize);
for(Map<String,Object> map:list){
Emp emp = new Emp();
for(String key: map.keySet()){
switch (key) {
case “emp_id”:
emp.setEmpId((Integer) map.get(key));
break;
case “emp_sex”:
emp.setEmpSex((String) map.get(key));
break;
case “emp_age”:
emp.setEmpAge((Integer) map.get(key));
break;
case “emp_phone”:
emp.setEmpPhone((String) map.get(key));
break;
case “emp_name”:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
写在最后
很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。
最后祝愿各位身体健康,顺利拿到心仪的offer!
由于文章的篇幅有限,所以这次的蚂蚁金服和京东面试题答案整理在了PDF文档里
9066)]
写在最后
很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。
最后祝愿各位身体健康,顺利拿到心仪的offer!
由于文章的篇幅有限,所以这次的蚂蚁金服和京东面试题答案整理在了PDF文档里
[外链图片转存中…(img-AiAP8yPF-1711750439067)]
[外链图片转存中…(img-xD4qAGfz-1711750439067)]
[外链图片转存中…(img-saXlTc2x-1711750439067)]