Spring整合Mybatis-续
Spring整合Mybatis:
https://blog.csdn.net/qq_45740503/article/details/116043332
Spring整合Mybatis: https://blog.csdn.net/qq_45740503/article/details/116043332.
一级目录
1、导入SpringMVC相关jar包
<!--https://mvnrepository.com/artifact/org.springframework/spring-webmvc-->
<!--导入SpringMVC依赖包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<!--导入文件上传依赖包-->
<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
<!--导入jstl标签库-->
<!-- https://mvnrepository.com/artifact/jstl/jstl -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
完整的:
<!--导入mysql驱动-->
<!--导入mybatis依赖包-->
<!--导入log4j依赖包-->
<!--导入Spring依赖-->
<!--导入mybatis-spring桥梁包-->
<!--导入Alibaba druid数据源依赖包-->
<!--导入事务支持包-->
<!--导入JDBC支持包-->
<!--导入SpringMVC依赖包-->
<!--导入文件上传依赖包-->
<!--导入jstl标签库-->
<!--导入mysql驱动-->
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.4</version>
</dependency>
<!--导入mybatis依赖包-->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.5</version>
</dependency>
<!--导入log4j依赖包-->
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!--导入Spring依赖包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<!--mybatis-spring桥梁包-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.0</version>
</dependency>
<!--导入Alibaba druid数据源依赖包-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.0</version>
</dependency>
<!--导入事务支持包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<!--导入JDBC支持包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<!--https://mvnrepository.com/artifact/org.springframework/spring-webmvc-->
<!--导入SpringMVC依赖包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<!--导入文件上传依赖包-->
<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
<!--导入jstl标签库-->
<!-- https://mvnrepository.com/artifact/jstl/jstl -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
2、添加SpringMVC配置文件
3、web.xml添加配置
<!--配置监听器-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--读取Spring配置文件-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:application-context.xml</param-value>
</context-param>
拷贝之前的
<!--配置中央控制:名字,DispatcherServlet-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--读取SpringMVC配置文件-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<!--启动时自动载入-->
<load-on-startup>1</load-on-startup>
</servlet>
<!--Servlet映射的url-->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!--中文乱码问题-->
<!--配置 Spring MVC 字符编码过滤器-->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<!-- 设置编码格式 -->
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4、准备增删改查方法
UserService.java
public interface UserService {
//查询用户记录数
public int count();
//查询用户列表
public List<User> getUserList();
//根据用户uid获取用户对象
public User getUserByUid(Integer uid);
//验证用户登录:用户和密码
public User getLoginUser(String uname,String upwd);
//添加用户
public int addUser(User user);
//修改用户
public int modifyUser(User user);
//删除指定id的用户
public int deleteUserByUid(Integer uid);
}
UserServiceImpl.java
@Service
public class UserServiceImpl implements UserService{
@Resource
UserMapper userMapper;
@Override
public int count() {
//调用数据访问层DAO查询用户记录数的方法
return userMapper.count();
}
@Override
public List<User> getUserList() {
return userMapper.getUserList();
}
@Override
public User getUserByUid(Integer uid) {
return userMapper.getUserByUid(uid);
}
@Override
public User getLoginUser(String uname, String upwd) {
return userMapper.getLoginUser(uname, upwd);
}
@Override
public int addUser(User user) {
return userMapper.addUser(user);
}
@Override
public int modifyUser(User user) {
return userMapper.modifyUser(user);
}
@Override
public int deleteUserByUid(Integer uid) {
return userMapper.deleteUserByUid(uid);
}
}
5、登录
UserController.java
@Controller
@RequestMapping("/user")
public class UserController {//处理用户相关的请求
@Resource
UserService userService;
//登录
@RequestMapping("/login")
public String login(User user,Model model){
//调用业务逻辑层根据用户名和密码查询用户是否存在,返回user对象,
// 如果不为空,可以登录否则,重新登录
user=userService.getLoginUser(user.getUname(),user.getUpwd());
if (user!=null){
model.addAttribute("user",user);
return "loginsuccess";
}else {
return "redirect:index";
}
}
}
<form action="user/login">
用户名:<input type="text" name="uname"/>
密码:<input type="password" name="upwd"/>
<input type="submit" value="登录"/>
</form>
6、处理查询所有用户列表的请求
//处理查询所有用户列表的请求
@RequestMapping("/getUserList")
public String getUserList(Model model){
//调用业务逻辑层获取所有用户列表的方法
List<User> userList=userService.getUserList();
//把查询结果(用户列表)保存到model对象中,返回给页面
model.addAttribute("userList", userList);
return "userlist";
}
<!--导入jstl标签库-->
<!-- https://mvnrepository.com/artifact/jstl/jstl -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
用户列表:
<ul>
<c:forEach items="${userList}" var="user">
<li>用户名:${user.uname};密码:${user.upwd}
<a href="${pageContext.request.contextPath}/user/toModifyUser?uid=${user.uid}">修改</a>
<a href="${pageContext.request.contextPath}/user/deleteUser?uid=${user.uid}">删除</a>
</li>
</c:forEach>
</ul>
7、打开修改用户信息的页面
//打开修改用户信息的页面
@RequestMapping("/toModifyUser")
public String toModifyUser(String uid,Model model){
Integer uid0=null;
if (uid!=null && !"".equals(uid)){
uid0=Integer.parseInt(uid);
}
//调用业务逻辑层根据id查用户
User user=userService.getUserByUid(uid0);
//把用户保存到model对象中,返回给修改页面
model.addAttribute("user", user);
return "modifyuser";
}
//处理修改信息操作的请求
@RequestMapping("/modifyUser")
public String modifyUser(User user){
//调用业务逻辑层修改用户的方法
int result=userService.modifyUser(user);
//根据结果判断,如果修改成功,显示用户列表
if (result>0){
return "redirect:getUserList";
}else {
return "modifyuser";
}
}
modifyuser.jsp
<form action="${pageContext.request.contextPath}/user/modifyUser">
<input type="hidden" name="uid" value="${user.uid}"/>
用户名:<input type="text" name="uname" value="${user.uname}"/>
密码:<input type="password" name="upwd" value="${user.upwd}"/>
<input type="submit" value="提交"/>
</form>
8、处理删除用户的请求
//处理删除用户的请求
@RequestMapping("/deleteUser")
public String deleteUser(String uid){
//调用业务逻辑层根据id删除用户的方法
int result=userService.deleteUserByUid(Integer.valueOf(uid));
//根据结果判断,如果删除成功,显示用户列表
if (result>0){
return "redirect:getUserList";
}else {
return "modifyuser";
}
}
9、处理添加用户的请求
//处理添加用户的请求
@RequestMapping("/register")
public String register(User user){
//调用业务逻辑层添加用户的方法
int result=userService.modifyUser(user);
//根据结果判断,如果修改成功,显示用户列表
if (result>0){
return "redirect:getUserList";
}else {
return "modifyuser";
}
}
register.jsp
<form action="user/register">
用户名:<input type="text" name="uname"/>
密码:<input type="password" name="upwd"/>
<input type="submit" value="注册"/>
</form>