# SSM **Repository Path**: mirrors_bluesky51/SSM ## Basic Information - **Project Name**: SSM - **Description**: Spring+SpringMVC+MyBatis整合 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-24 - **Last Updated**: 2026-03-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SSM Spring+SpringMVC+MyBatis整合 # SSM(Spring+SpringMVC+MyBatis整合) ## 整合思路 ```sql 1、SqlSessionFactory对象应该放到spring容器中作为单例存在。 2、传统dao的开发方式中,应该从spring容器中获得sqlsession对象。 3、Mapper代理形式中,应该从spring容器中直接获得mapper的代理对象。 4、数据库的连接以及数据库连接池事务管理都交给spring容器来完成. ``` 1.创建项目,导入jar(spring(15个)+hibernate(11个)+上传包(2个)………….) 2.导入页面资源jsp放入到WEB-INF/jsp目录下 3.以分层思想进行分包 ![1.项目分层思想分包目录图](../ssh框架整合导图/1.项目分层思想分包目录图.png) 4.实体类User.java ```java public class User { private Integer user_id;//用户编号 private String user_name;//用户名称 private String user_pwd;//用户密码 private String user_headimg;//用户头像地址 set/get...... } ``` ## 第一章:以传统dao层实现方式进行整合 #### 1.1 dao层相关: ##### 1.1.1 dao层接口及映射类和实现类 ```java UserDao.java public interface UserDao { Integer saveUser(User user); User queryUserByUserNameAndPwd(User user); } UserDao.xml SELECT LAST_INSERT_ID() insert into user (user_name,user_pwd,user_headimg) values(#{user_name},#{user_pwd},#{user_headimg}) UserDaoImpl.java public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao { @Override public Integer saveUser(User user) { int rowCount= getSqlSession().insert("saveUser",user); return rowCount; } @Override public User queryUserByUserNameAndPwd(User user) { User user1 = getSqlSession().selectOne("queryUserByUserNameAndPwd", user); return user1; } } ``` ##### 1.1.2 配置文件(applicationContext_dao.xml) ```xml ``` #### 1.2 service层相关: ##### 1.2.1 service接口实现类 ```java UserService.java public interface UserService { void register(User user)throws UserException; void loginUser(User user) throws UserException; } UserServiceImpl.java @Transactional public class UserServiceImpl implements UserService { private UserDao userDao; public void setUserDao(UserDao userDao) { this.userDao = userDao; } @Override public void register(User user) throws UserException{ Integer id = userDao.saveUser(user); if (id>0){ }else{ throw new UserException("注册失败"); } } @Override public void loginUser(User user) throws UserException { User user1 = userDao.queryUserByUserNameAndPwd(user); if (user1!=null){ }else{ throw new UserException("登录失败"); } } } ``` ##### 1.2.2 配置文件(applicationContext_service.xml) ```xml ``` #### 1.3 controller控制层类: ##### 1.2.1 UserController类 ```java package com.sky.controller; import com.sky.domain.User; import com.sky.exception.UserException; import com.sky.service.UserService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import javax.annotation.Resource; @Controller public class UserController { @Resource(name = "userService") private UserService userService; @RequestMapping("/register.action") public String register(){ return "register"; } @RequestMapping("/doRegister.action") public String toDoRegister(User user){ try { userService.register(user); } catch (UserException e) { e.printStackTrace(); return "fail"; } return "success"; } @RequestMapping("/login.action") public String login(){ return "login"; } @RequestMapping("/dologin.action") public String tologin(User user){ try { userService.loginUser(user); } catch (UserException e) { e.printStackTrace(); return "fail"; } return "success"; } } ``` #### 1.4 springmvc的配置文件: ```xml ``` ## 第二章:以Mapper动态代理实现dao层方式进行整合 #### 1.1 dao层相关: ##### 1.1.1 dao层接口及类 ```java UserMapper.java public interface UserMapper { Integer saveUser(User user); User queryUserByUserNameAndPwd(User user); } UserMapper.xml SELECT LAST_INSERT_ID() insert into user (user_name,user_pwd,user_headimg) values(#{user_name},#{user_pwd},#{user_headimg}) ``` ##### 1.1.2 配置文件(applicationContext_dao.xml) ```xml dbinfo.properties如下: driverClass=com.mysql.jdbc.Driver jdbcUrl=jdbc:mysql://localhost:3306/ideaBySSH user=root password=123456 applicationContext_dao.xml如下: ``` #### 1.2 service层相关: ##### 1.2.1 service接口实现类 ```java UserService.java public interface UserService { void register(User user)throws UserException; void loginUser(User user) throws UserException; } UserServiceImpl.java @Transactional @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public void register(User user) throws UserException{ userMapper.saveUser(user); } @Override public void loginUser(User user) throws UserException { userMapper.queryUserByUserNameAndPwd(user); } } ``` ##### 1.2.2 配置文件(applicationContext_service.xml) ```xml ``` #### 1.3 controller控制层类: ##### 1.2.1 UserController类 ```java package com.sky.controller; @Controller public class UserController { @Autowired private UserService userService; @RequestMapping("/register.action") public String register(){ return "register"; } @RequestMapping("/doRegister.action") public String toDoRegister(User user){ try { userService.register(user); } catch (UserException e) { e.printStackTrace(); return "fail"; } return "success"; } @RequestMapping("/login.action") public String login(){ return "login"; } @RequestMapping("/dologin.action") public String tologin(User user){ try { userService.loginUser(user); } catch (UserException e) { e.printStackTrace(); return "fail"; } return "success"; } } ``` #### 1.4 springmvc的配置文件: ```xml ``` ## 第三章:公共部分 #### web.xml配置: ```XML org.springframework.web.context.ContextLoaderListener contextConfigLocation classpath*:applicationContext_*.xml dispatcherServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath*:springmvc.xml 1 dispatcherServlet / encoding org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 encoding /* ``` #### log4j.properties ```properties # Global logging configuration log4j.rootLogger=DEBUG, stdout # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n ``` #### SqlMapConfig.xml ```xml ```