我就废话不多说了,大家还是直接看代码吧

//执行的是删除信息的操作 String a=reque("name"); a = URLEncoder.encode(a, "ISO-8859-1"); String name = URLDecoder.decode(a, "UTF-8"); String num=reque("num"); Sy("name:"+name+"num:"+num); String sql="delete from person_info where name=? and num=?"; String sz[]={name,num}; JdbcU(sql, sz); //刷新操作\ String sqls="select * from person_info"; ResultSet rs=JdbcU(sqls, null); ArrayList<Person_info> list=new ArrayList<Person_info>(); try { while()){ Person_info pi=new Person_info(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getString(6)); li(pi); } reque("list", list); reque("Per;).forward(request, response); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }


image.png



补充知识:关于分页时怎么实现当本页面最后一条记录被删除时,自动向上一个页面跳转的实现(java实现)

问题详解

在做批量删除时,发现若批量删除整页时,会自动跳到第一页首页,而不是返回删除当前页的上一页,不符合产品要求且使界面交互不好,给用户带来糟糕体验。

思路详解

在controller层传参时要考虑到不仅要传入需要删除的id集合,同时传入pageSize,pageNum以及总条数集合的查询条件(如:本示例会传入groupId(分组id)),在删除成功后初始化当前页,先根据查询条件查询出总条数数量,在pageSize不等于null或为0的情况下。算出余数[(pageSize*pageNum-count)%pageSize ].若余数为0,则当前页等于pageNum-1;若余数不为0,则当前页=pageNum.将结果当前页传给前台即可。

后台代码实现

controller层#

@Api(description = "分组下的学生",value = "分组下的学生") @RestController @RequestMapping("studentGroup") public class StudentGroupController { @Autowired private RestStudentGroupService restStudentGroupService; @RequestMapping(value = "deleteGroupStudent",method = Reque) @ApiOperation(value = "删除分组中的学生",notes = "删除分组中的学生") public ResponseObj deleteGroupStudent(@RequestParam(value = "groupId",required = true)Long groupId, @RequestParam(value = "ids",required = true)String ids, @RequestParam(value = "pageSize",required = false)Integer pagesize, @RequestParam(value = "pageNum",required = false)Integer pageNum){ return re(groupId,ids,pagesize,pageNum); } }

service层#

@FeignClient(value = ServiceName.VALUE) public interface RestStudentGroupService { @RequestMapping(value = "/school/cloud/student/deleteGroupStudent",method = Reque) public ResponseObj deleteGroupStudent(@RequestParam(value = "groupId")Long groupId, @RequestParam(value = "ids")String ids, @RequestParam(value = "pageSize")Integer pagesize, @RequestParam(value = "pageNum")Integer pageNum); }

serviceImpl层#

@Service public class RestStudentGroupServiceImpl implements RestStudentGroupService { @Autowired private DubboStudentGroupService dubboStudentGroupService ; @Override public ResponseObj deleteGroupStudent(Long groupId,String ids,Integer pageSize,Integer pageNum) { List<Long> idList = Tex(ids); if(groupId == null || idList== null || idLi() == 0){ ResponseObj responseObj = Re("参数错误"); re(true); return responseObj; } ServiceResult<Long> serviceResult = dubboStudentGroupService .deleteCorpGroup(idList, groupId); if(!()){ throw new RuntimeException("分组下学生查询失败"); } //应前端要求加此dto,封装传给前台的当前页属性 CurrenPageDto currenPageDto=new CurrenPageDto(); //初始化当前页 Integer currentPage = 1; //查出该分组id下的学生数量 ServiceResult<Long> itemCountLongs = dubboS(groupId); Long itemCountLong= i(); Integer itemCount = itemCountLong!=null ? i() : 0; //"查询到学生数量:{},pageSize:{}", itemCount,pageSize; if(pageSize != null && pageSize != 0){ //算出余数 Integer temp = (pageNum*pageSize-itemCount)%pageSize; if(temp == 0){ //余数为0的话就pageNum-1 currentPage = (pageNum - 1) == 0 ? 1 : (pageNum -1) ; }else { //余数不为0则等于pageNum currentPage = pageNum; } currenPageD(currentPage); } ResponseObj responseObj = Re(); re(currenPageDto); return responseObj; } }

dubbo接口的service层#

①://删除分组下的学生 ServiceResult<Long> deleteCorpGroup(List<Long> idList,Long groupId); ②://根据条件查询对应的条目总数 ServiceResult<Long> getTotalCount(Long groupId);

dubbo接口的serviceImpl层#

`①:``//删除分组下的学生` `@Override` `public` `ServiceResult<Long> deleteCorpGroup(List<Long> idList, Long groupId) {` `ServiceResult<Long> result =` `new` `ServiceResult<>();` `try` `{` `(idList, groupId);` `}` `catch` `(Exception e) {` `log.error(``"调用{}方法 异常"``,` `"[RestStudentGroupServiceImpl .deleteCorpGroup]"``);` `log.error(``"方法使用参数:[idList:{},groupId:{}]"``, idList, groupId);` `log.error(``"异常信息:{}"``, e);` `re(``"调用deleteCorpGroup方法异常,异常信息:"` `+ e.getMessage());` `}` `return` `result;` `}` `②:``//根据条件查询对应的条目总数` `@Override` `public` `ServiceResult<Long> getTotalCount(Long groupId) {` `ServiceResult<Long> result =` `new` `ServiceResult<>();` `try` `{` `long` `count = (groupId);` `re(count);` `}` `catch` `(Exception e) {` `log.error(``"调用{}方法 异常"``,` `"[RestStudentGroupServiceImpl .getTotalCount]"``);` `log.error(``"方法使用参数:[groupId:{}]"``, groupId);` `log.error(``"异常信息:{}"``, e);` `re(``"调用getTotalCount方法异常,异常信息:"` `+ e.getMessage());` `}` `return` `result;` `}` | [](javascript:; "全选")[](javascript:; "复制java代码") <textarea style="margin: 0px; padding: 0px; outline: none; font: 16px / 24px tahoma, arial, 宋体;"></textarea> #dubbo接口的dao层# `①:``//删除分组下的学生` `Long deleteCorpGroup(``@Param``(value =` `"idList"``) List<Long> idList,``@Param``(value =` `"groupId"``) Long groupId);` `②:``//根据条件查询对应的条目总数` `Long getFindCorpGroupDirectoryCount(``@Param``(value =` `"groupId"``) Long groupId);` |

dubbo接口的sql#

①://删除分组下的学生 <delete id="deleteCorpGroup"> delete from student_group where group_id = #{groupId} and id in <foreach collection="idList" index="index" separator="," item="id" open="(" close=")"> #{id} </foreach> </delete> ②://根据条件查询对应的条目总数 <select id="getFindCorpGroupDirectoryCount" resultType="long"> SELECT COUNT(1) FROM student_group where group_id = #{groupId} </select>

Entity类(学生分组类)#(get,set函数省略)

|

public class StudentGroup implements java.io.Serializable {

/**

*

*/

private static final long serialVersionUID = 1L;

/**

* @描述:

* @字段:id BIGINT(19)

*/

private Long StudentGroupId;

/**

* @描述:

* @字段:group_id BIGINT(19)

*/

private Long groupId;

/**

* @描述:

* @字段:id BIGINT(19)

* 此id为学生表id

*/

private Long id;

/**

* @描述:创建时间

* @字段:create_time DATETIME(19)

*/

private java.u createTime;

* @描述:创建人用户名

* @字段:create_user_name VARCHAR(``30``)

*/

private String createUserName;

/**

* @描述:创建人用户ID

* @字段:create_user_id BIGINT(19)

*/

private Long createUserId;

/**

* @描述:更新时间

* @字段:update_time DATETIME(19)

*/

private java.u updateTime;

* @描述:更新人用户名

* @字段:update_user_name VARCHAR(``30``)

*/

private String updateUserName;

/**

* @描述:更新人用户ID

* @字段:update_user_id BIGINT(19)

*/

private Long updateUserId;

}

|

[](javascript:; "全选")[](javascript:; "复制java代码")

<textarea style="margin: 0px; padding: 0px; outline: none; font: 16px / 24px tahoma, arial, 宋体;"></textarea>

#Entity类(学生类)#(get,set函数省略) ```c `public` `clas` `Student` `implements` `java.io.Serializable {` `/**` `*` `*/` `private` `static` `final` `long` `serialVersionUID = 1L;` `private` `Long id;` `private` `String name ;` `private` `Integer age;`



1.《[java如何实现批量删除]java批量删除代码!》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《[java如何实现批量删除]java批量删除代码!》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/3222274.html