# 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.以分层思想进行分包

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
```