Spring+SpringMVC+Mybatis(开发必备技能)02、完整DML&DQL语句demo示例
Spring+SpringMVC+Mybatis(开发必备技能)
02、完整DML&DQL语句demo示例
承接【Spring+SpringMVC+Mybatis(开发必备技能)01、基础idea环境配置】项目
目录
Spring+SpringMVC+Mybatis(开发必备技能)
02、完整DML&DQL语句demo示例
1、修改【resources/mapper/UsersMapper.xml】文件
2、修改【dao层UsersMapper.java】文件
3、修改【service/UsersService.java】文件
4、修改【serviceimpl/UsersServiceImpl.java】
5、修改【controller/UsersController.java】文件
6、修改【/views/GetInfo.jsp】文件
7、添加【/views/UserAddInfo.jsp】文件
8、添加【/views/UserUpdateInfo.jsp】文件
9、MD5加密32位大写方法备注:
10、执行测试
添加数据:
编辑修改密码:
删除测试:
1、修改【resources/mapper/UsersMapper.xml】文件
select * from users select * from users where nickName like "%${nickName}%" select * from users where id=#{id} insert into users values(0,"${userName}","${pwd}","${nickName}"); update users set pwd="${pwd}" where id=#{id} delete from users where id=#{id}
2、修改【dao层UsersMapper.java】文件
package com.item.dao; import com.item.model.Users;import org.apache.ibatis.annotations.Param; import java.util.List; public interface UsersMapper { List GetInfo(); List SelectName(@Param("nickName") String nickName); Users UsersSelectById(@Param("id") int id); int UsersAddInfo( @Param("userName") String userName, @Param("pwd") String pwd, @Param("nickName") String nickName ); int UsersUpdateInfo( @Param("pwd") String pwd, @Param("id") int id ); int UsersDeleteById(@Param("id") int id);}
3、修改【service/UsersService.java】文件
package com.item.service; import com.item.model.Users;import org.apache.ibatis.annotations.Param;import java.util.List; public interface UsersService { /** * 获取所有 * @return */ List GetInfo(); /** * 获取nickName的模糊查询结果集 * @param nickName * @return */ List SelectName(String nickName); /** * id精准查询 * @param id * @return */ Users UsersSelectById(int id); /** * 添加信息 * @param userName * @param pwd * @param nickName * @return */ int UsersAddInfo( String userName, String pwd, String nickName ); /** * 修改密码 * @param pwd * @param id * @return */ int UsersUpdateInfo( String pwd, int id ); /** * 删除信息 * @param id * @return */ int UsersDeleteById(int id);}
4、修改【serviceimpl/UsersServiceImpl.java】
package com.item.serviceimpl;import com.item.dao.UsersMapper;import com.item.model.Users;import com.item.service.UsersService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.util.DigestUtils;import java.io.UnsupportedEncodingException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.util.List;@Servicepublic class UsersServiceImpl implements UsersService { @Autowired private UsersMapper usersMapper; @Override public List GetInfo() { return usersMapper.GetInfo(); } @Override public List SelectName(String nickName) { return usersMapper.SelectName(nickName); } @Override public Users UsersSelectById(int id) { return usersMapper.UsersSelectById(id); } @Override public int UsersAddInfo(String userName, String pwd, String nickName) { pwd=encrypt(pwd); return usersMapper.UsersAddInfo(userName, pwd, nickName); } @Override public int UsersUpdateInfo(String pwd, int id) { pwd=encrypt(pwd); return usersMapper.UsersUpdateInfo(pwd, id); } /** * MD5加密 * @param password * @return */ private String encrypt(String password) { String passwordMd5 = null; try { MessageDigest md5 = MessageDigest.getInstance("MD5"); byte[] bytes = md5.digest(password.getBytes("utf-8")); passwordMd5 = toHex(bytes); } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) { e.printStackTrace(); } return passwordMd5; } private static String toHex(byte[] bytes) { final char[] HEX_DIGITS = "0123456789ABCDEF".toCharArray(); StringBuilder ret = new StringBuilder(bytes.length * 2); for (int i = 0; i > 4) & 0x0f]); ret.append(HEX_DIGITS[bytes[i] & 0x0f]); } return ret.toString(); } @Override public int UsersDeleteById(int id) { return usersMapper.UsersDeleteById(id); }}
5、修改【controller/UsersController.java】文件
package com.item.controller; import com.item.model.Users;import com.item.service.UsersService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletRequest;import java.util.List; @Controller@CrossOriginpublic class UsersController { @Autowired private UsersService usersService; @RequestMapping("/GetInfoApi") @ResponseBody public Object GetInfoApi(){ List list=usersService.GetInfo(); System.out.println(list); return list; } @RequestMapping("/GetInfo") public String GetInfo(HttpServletRequest request,Model model){ List list=usersService.GetInfo(); model.addAttribute("lists",list); return "GetInfo"; } @RequestMapping("/GetName") public String GetName(HttpServletRequest request,Model model){ String nickName = request.getParameter("nickName"); List list=usersService.SelectName(nickName); model.addAttribute("lists",list); return "GetInfo"; } /** * 添加页面 * @param request * @param model * @return */ @GetMapping("/UserAddInfo") public String UserAddInfo(HttpServletRequest request,Model model){ return "UserAddInfo"; } /** * 添加接口,访问方式post * @param request * @param model * @return */ @PostMapping(value = "/UserAddInfoApi") public String UserAddInfoApi(HttpServletRequest request,Model model){ String userName = request.getParameter("userName"); String pwd = request.getParameter("pwd"); String nickName = request.getParameter("nickName"); usersService.UsersAddInfo(userName, pwd, nickName); return "redirect:/GetInfo"; } /** * 修改页面 * @param request * @param model * @return */ @GetMapping("/UserUpdateInfo") public String UserUpdateInfo(HttpServletRequest request,Model model){ String id = request.getParameter("id"); Users users = usersService.UsersSelectById(Integer.parseInt(id)); model.addAttribute("users",users); return "UserUpdateInfo"; } /** * 修改api * @param request * @param model * @return */ @PostMapping(value = "/UserUpdateInfoApi") public String UserUpdateInfoApi(HttpServletRequest request,Model model){ String id = request.getParameter("id"); String pwd = request.getParameter("pwd"); usersService.UsersUpdateInfo(pwd,Integer.parseInt(id)); return "redirect:/GetInfo"; } /** * 删除api * @param request * @param model * @return */ @GetMapping(value = "/UsersDeleteById") public String UsersDeleteById(HttpServletRequest request,Model model){ String id = request.getParameter("id"); usersService.UsersDeleteById(Integer.parseInt(id)); return "redirect:/GetInfo"; }}
6、修改【/views/GetInfo.jsp】文件
<%-- 显示页面·Get请求 <% List lists = (List) request.getAttribute("lists");%> 编号 账号 密码 昵称 操作 <a href="/UserUpdateInfo?id=" class="btn btn-primary">修改 <a href="/UsersDeleteById?id=" onclick="return confirm('是否删除此行?')" class="btn btn-primary">删除 添加
7、添加【/views/UserAddInfo.jsp】文件
添加信息
8、添加【/views/UserUpdateInfo.jsp】文件
修改密码 编号:<input type="text" name="id" value="" readonly/>
用户名:
<input type="password" name="pwd" value="" placeholder="请输入用户密码" class="form form-control"/>
昵称:
9、MD5加密32位大写方法备注:
package test; import java.io.UnsupportedEncodingException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException; public class common { public static void main(String[] args) { //输出结果:96E79218965EB72C92A549DD5A330112 System.out.println(encrypt("111111")); } /** * 32位大写加密 * @param password * @return */ private static String encrypt(String password) { String passwordMd5 = null; try { MessageDigest md5 = MessageDigest.getInstance("MD5"); byte[] bytes = md5.digest(password.getBytes("utf-8")); passwordMd5 = toHex(bytes); } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) { e.printStackTrace(); } return passwordMd5; } private static String toHex(byte[] bytes) { final char[] HEX_DIGITS = "0123456789ABCDEF".toCharArray(); StringBuilder ret = new StringBuilder(bytes.length * 2); for (int i = 0; i > 4) & 0x0f]); ret.append(HEX_DIGITS[bytes[i] & 0x0f]); } return ret.toString(); }}
10、执行测试
执行效果
添加数据:
修改密码:
(修改账号为韦文静的用户)
修改成功:
删除测试:
删除测试数据
删除成功
DML语句执行测试完毕,认真练习哦。
开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系