笔记|Spring-Springmvc-Mybatis框架整合

前言 【笔记|Spring-Springmvc-Mybatis框架整合】使用工具IDEA整合
先上结构图
笔记|Spring-Springmvc-Mybatis框架整合
文章图片

搭建基础环境 数据库文件sql

SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for user -- ---------------------------- DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `username` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, `password` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; -- ---------------------------- -- Records of user -- ---------------------------- INSERT INTO `user` VALUES ('1', '张三', '3333'); INSERT INTO `user` VALUES ('2', '李四', '123456');

pom依赖文件
junit junit 4.12 >test mysql mysql-connector-java 8.0.20 com.alibaba druid 1.1.21 org.mybatis mybatis 3.5.5 org.mybatis mybatis-spring 2.0.5 org.springframework spring-webmvc 5.2.0.RELEASE org.springframework spring-jdbc 5.2.0.RELEASE org.aspectj aspectjweaver 1.9.5 org.slf4j slf4j-log4j12 1.7.25 jstl jstl 1.2

db.properties数据库文件
jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql:///study_ssm?useUnicode=true&characterEncoding=utf8 jdbc.username=root jdbc.password=root

log4j.properties日志文件
log4j.rootLogger=CONSOLE,FILE log4j.addivity.org.apache=true# 应用于控制台 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Threshold=INFO log4j.appender.CONSOLE.Target=System.out log4j.appender.CONSOLE.Encoding=UTF-8 log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n# 每天新建日志 log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender log4j.appender.A1.File=./log4j/log log4j.appender.A1.Encoding=UTF-8 log4j.appender.A1.Threshold=DEBUG log4j.appender.A1.DatePattern='.'yyyy-MM-dd log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L : %m%n#应用于文件 log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=./log4j/file.log log4j.appender.FILE.Append=false log4j.appender.FILE.Encoding=UTF-8 log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

建立包的结构,分别建立controller,dao,pojo,service
编写pojo实体类:
package com.whpu.pojo; import java.io.Serializable; public class User implements Serializable {private static final long serialVersionUID = 3386399687148468234L; private int id; private String username; private String password; public int getId() { return id; }public void setId(int id) { this.id = id; }public String getUsername() { return username; }public void setUsername(String username) { this.username = username; }public String getPassword() { return password; }public void setPassword(String password) { this.password = password; }@Override public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", password='" + password + '\'' + '}'; } }

搭建Spring环境 在resources中新建applicationContext.xml文件

编写UserService和UserServiceImpl
package com.whpu.service; import com.whpu.pojo.User; import java.util.List; public interface UserService { List findAll(); void save(User user); }

package com.whpu.service.impl; import com.whpu.dao.UserDao; import com.whpu.pojo.User; import com.whpu.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service("userService") public class UserServiceImpl implements UserService {@Override public List findAll() { System.out.println("service-->findAll"); return null; }@Override public void save(User user) { System.out.println("service-->save"); } }

编写测试spring的测试类
@Test public void test1(){ ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); UserService userService = ac.getBean("userService", UserService.class); userService.findAll(); }

如果能打印出 service–>findAll就说明spring编写完成。
Spring整合Springmvc 编写web.xml文件
encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding utf-8 encodingFilter /* > >dispatcherServlet >org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:springmvc.xml 1 > >dispatcherServlet /

在resources下编写springmvc.xml配置文件

新建前台页面:
在webapp下新建index.jsp
Title Hello World! 查询所有

在webapp下新建文件夹pages,然后在下面新建list.jsp
Title 查询了所有的数据:

编写controller的代码UserController
package com.whpu.controller; import com.whpu.pojo.User; import com.whpu.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; @Controller @RequestMapping("/user") public class UserController { @RequestMapping("/findAll") public String findAll(){ return "list"; } }

启动服务器,点击查询所有连接——查询所有,如果显示查询了所有的数据那么Springmvc就编写完成。
下一步就是将springmvc整合到spring去:
在web.xml文件中再加入初始化ioc的代码:
contextConfigLocation classpath:applicationContext.xml org.springframework.web.context.ContextLoaderListener

然后修改UserController
@Controller @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @RequestMapping("/findAll") public String findAll(Model model){ List users = userService.findAll(); model.addAttribute("users",users); return "list"; } }

启动服务器,点击查询所有连接,如果页面打印查询了所有的数据,并且如果能在后台打印 service–>findAll,就说明整合成功。
Spring整合MyBatis 在applicationContext.xml文件里面添加:

编写UserDao
package com.whpu.dao; import com.whpu.pojo.User; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; import org.springframework.stereotype.Repository; import java.util.List; @Repository public interface UserDao { @Select("select * from user") List findAll(); @Insert("insert into user values(null,#{username},#{password})") void save(User user); }

修改UserServiceImpl的代码:
@Service("userService") public class UserServiceImpl implements UserService { @Autowired private UserDao userDao; @Override public List findAll() { System.out.println("service-->findAll"); return userDao.findAll(); }@Override public void save(User user) { System.out.println("service-->save"); userDao.save(user); } }

修改UserController的代码:
@Controller @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @RequestMapping("/findAll") public String findAll(Model model){ List users = userService.findAll(); model.addAttribute("users",users); return "list"; }@RequestMapping("/save") public String save(User user){ userService.save(user); return "redirect:findAll"; } }

修改index.jsp的代码:
Title Hello World! 查询所有
姓名:
密码:

修改list.jsp的代码:
Title 查询了所有的数据:
${user.username}

点击查询所有链接,会显示所有的用户名,
在输入框中输入姓名和密码点击保存,会保存在数据库中。
这样SSM的整合就完成了。
每天进步一点点,Peace
慢一点,才能更快

    推荐阅读