服务器遇到一个意外的情况,阻止它完成请求。
用java写管理系统运行代码时报错了,这该怎么解决?
1条回答 默认 最新
- pzzhao 2022-12-28 08:55关注本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
package com.tom.demo.dao.impl; import com.sun.xml.internal.messaging.saaj.util.SAAJUtil; import com.tom.demo.dao.IStudentDao; import com.tom.demo.domain.Pagination; import com.tom.demo.domain.Student; import com.tom.demo.utils.JdbcUtils; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import java.util.*; public class StudentDaoImpl implements IStudentDao { private JdbcTemplate jt = new JdbcTemplate(JdbcUtils.getDataSource()); @Override public List<Student> findAll() { String sql = "select * from student"; return jt.query(sql, new BeanPropertyRowMapper<>(Student.class)); } @Override public boolean deleteStu(int id) { String sql = "delete from student where id = ?"; int count = jt.update(sql, id); return count == 1; } @Override public Student findStuById(int id) { String sql = "select * from student where id = ?"; List<Student> studentList = jt.query(sql, new BeanPropertyRowMapper<>(Student.class), id); return studentList.size() == 0 ? null : studentList.get(0); } @Override public boolean updateStuById(Student student) { String sql = "update student set username = ?, age = ?, gender = ?, " + "qq = ?, email = ? where id = ?"; int count = jt.update(sql, student.getUsername(), student.getAge(), student.getGender(), student.getQq(), student.getEmail(), student.getId()); return count == 1; } @Override public boolean addStudent(Student student) { String sql = "insert into student(number,username,age, gender, qq, email)" + "values(?, ?, ?,?, ?,?)"; int count = jt.update(sql, student.getNumber(), student.getUsername(), student.getAge(), student.getGender(), student.getQq(), student.getEmail()); return count == 1; } @Override public boolean batchDeleteStu(List<Object[]> stuList) { String sql = "delete from student where id = ?"; int[] updateCounts = jt.batchUpdate(sql, stuList); System.out.println("删除了: " + Arrays.toString(updateCounts)); return updateCounts.length != 0; } @Override public long counts() { String sql = "select count(id) from student"; Long counts = jt.queryForObject(sql, Long.class); return counts; } @Override public Pagination<Student> findStu(int curPageIndex, int pageNumbers) { Pagination<Student> pagination = new Pagination<>(); // 获取数据库的总条数 long counts = this.counts(); System.out.println("一共有: " + counts); // 1. 数据条数, 查询数据库去; // a. 把总条数设置到分页对象当中去; pagination.setTotal(counts); // b. 计算总页码数 int totalPages = (int) (counts % pageNumbers == 0 ? counts / pageNumbers : (counts / pageNumbers) + 1); System.out.println("计算出来的总页数是: " + totalPages); // 设置到页对象当中去 pagination.setTotalPages(totalPages); pagination.setCurPageIndex(curPageIndex); pagination.setPageNumbers(pageNumbers); // 封装分页对象中的list集合, 这里装的是Student对象; int curIndex = (curPageIndex -1) * pageNumbers; String sql = "select * from student limit ?,?"; List<Student> studentList = jt.query(sql, new BeanPropertyRowMapper<>(Student.class), curIndex, pageNumbers); System.out.println("得到的学生对象列表是: " + studentList); pagination.setList(studentList); return pagination; } @Override public Pagination conditionQuery(Map<String, String[]> condition) { Pagination<Student> pagination = new Pagination<>(); // where 1 = 1 Set<String> keySet = condition.keySet(); StringBuffer sb = new StringBuffer(); // 拼接动态sql // 这个sql语句后边的where 1 = 1, 不影响查询操作; 返回结果 // 最终是`select * from student`. where 1 = 1是为了拼接后边的sql, 直接and 不报错. 如果不 1= 1,则 // where and 这个sql语句不合法; sb.append("select * from student where 1 = 1"); // String sql = "select * from student where 1 = 1 and username like "%王%" and gender = "女" // key: username // gender // email for (String key1 : keySet) { String key = key1.trim(); String value = condition.get(key1)[0].trim(); if(!value.equals("")) { sb.append(" and "). append(key). append(" like "). append("\""). append("%"). append(value). append("%"). append("\""); } } // 拼接动态sql的注意事项: // 1. 注意语法规范; // 2. 空格注意一下; String sql = sb.toString() + " limit 0,20" ; System.out.println(sql); // 拿到了动态的sql语句; 下边根据sql语句进行查询操作. 然后封装对象; List<Student> studentList = jt.query(sql, new BeanPropertyRowMapper<>(Student.class)); // 查询出来的总条数, 也就是分页实体类当中的总条数. int counts = 0; int totalPage = 0; int curPageIndex = 1; int pageNumbers = 20; if(studentList.size() != 0){ counts = studentList.size(); //直接写死了. 不太好. 先暂时这样 totalPage = counts % pageNumbers == 0 ? counts / pageNumbers : counts / pageNumbers + 1; } pagination.setList(studentList); pagination.setTotal(counts); pagination.setTotalPages(totalPage); pagination.setCurPageIndex(curPageIndex); pagination.setPageNumbers(pageNumbers); return pagination; } }
赞回复展开全部5条评论