笔记|Spring-Springmvc-Mybatis框架整合
前言 【笔记|Spring-Springmvc-Mybatis框架整合】使用工具IDEA整合
先上结构图
文章图片
搭建基础环境 数据库文件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
慢一点,才能更快
推荐阅读
- EffectiveObjective-C2.0|EffectiveObjective-C2.0 笔记 - 第二部分
- android第三方框架(五)ButterKnife
- Android中的AES加密-下
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 【读书笔记】贝叶斯原理
- 【韩语学习】(韩语随堂笔记整理)
- 人性的弱点-笔记
- 读书笔记:博登海默法理学|读书笔记:博登海默法理学 —— 正义的探索(1)
- D034+3组苏曼+《写作这回事》读书笔记
- 《自我的追寻》读书笔记3