奋进小牛 2022-12-28 08:30 采纳率: 88.6%
浏览 118
已结题

服务器遇到一个意外的情况,阻止它完成请求。

服务器遇到一个意外的情况,阻止它完成请求。
用java写管理系统运行代码时报错了,这该怎么解决?

img

  • 写回答

1条回答 默认 最新

  • pzzhao 2022-12-28 08:55
    关注

    student中的有个字段无法转换,建议使用jdk内置的Date接收,或者直接使用string接收

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    奋进小牛 2022-12-28 09:03

    请问具体解决方式是什么?

    回复
    pzzhao 回复 奋进小牛 2022-12-28 09:04

    你贴下你的student类代码,现在也看不出来你是哪个字段报的错

    回复
    奋进小牛 回复 pzzhao 2022-12-28 09:05

    
    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条评论
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 1月4日
  • 已采纳回答 12月28日
  • 创建了问题 12月28日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部