# BulidSSMStudy
**Repository Path**: jqw_com/BulidSSMStudy
## Basic Information
- **Project Name**: BulidSSMStudy
- **Description**: ssm整合学习笔记
- **Primary Language**: Java
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-01-30
- **Last Updated**: 2022-01-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 1. 配置pom.xml
```xml
4.0.0
com.wqj
ssmbuild
1.0-SNAPSHOT
junit
junit
4.12
mysql
mysql-connector-java
5.1.47
com.mchange
c3p0
0.9.5.4
javax.servlet
servlet-api
2.5
javax.servlet.jsp
jsp-api
2.1
javax.servlet
jstl
1.2
org.mybatis
mybatis
3.5.6
org.mybatis
mybatis-spring
2.0.6
org.springframework
spring-webmvc
5.3.13
org.springframework
spring-jdbc
5.3.13
org.projectlombok
lombok
1.18.20
src/main/java
**/*.properties
**/*.xml
false
src/main/resources
**/*.properties
**/*.xml
false
```
# 2. 配置MySQL驱动database.properties
```properties
# 以下是MySQL5.0+版本的
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=root
# 注意:如果使用的MySQL8.0+,需要增加一个时区的配置;如下:
# 以下是MySQL8.0+版本的
jdbc.driver=com.mysql.jdbc.Driver
# 如果使用的MySQL8.0+,需要增加一个时区的配置&serverTimezone=Asia/Shanghai(这里配置的是亚洲上海);
# useSSL=true&useUnicode=true&characterEncoding = utf8防止乱码
jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
jdbc.username=root
jdbc.password=root
```
# 3. ssm底层整合实现步骤
1. 创建数据库
2. idea创建项目
3. idea连接数据库
4. 编写mybatis-config.xml配置文件、applicationContext.xml配置文件、数据库驱动database.properties配置文件
```xml
```
```xml
```
5. 编写数据库实体类Books
```java
package com.wqj.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data //除了有参构造没有之外都有了
@AllArgsConstructor //加了它之后无参构造又没有了
@NoArgsConstructor //添加无参构造
public class Books{
private int bookID;
private String bookName;
private int bookCounts;
private String detail;
}
```
6. 编写dao层数据库操作层BookMapper类和BookMapper.xml
```java
package com.wqj.dao;
import com.wqj.pojo.Books;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface BookMapper {
//增加一本书
int addBook(Books books);
//删除一本书
int deleteBookById(@Param("bookID") int id);
//更新一本书
int updateBook(Books books);
//查询一本书
Books queryBookById(@Param("bookID") int id);
//查询全部的书
List queryAllBook();
}
```
```xml
insert into books (bookName, bookCount, detail) values (#{bookName},#{bookCount},#{detail});
delete from books where bookID =#{bookID};
update books set bookName = #{bookName},bookCount=#{bookCount},detail = #{detail} = where bookID=#{bookID};
```
7. 编写service业务层BookService接口和BookServiceImpl实现类
```java
package com.wqj.service;
import com.wqj.pojo.Books;
import java.util.List;
public interface BookService {
//增加一本书
int addBook(Books books);
//删除一本书
int deleteBookById(int id);
//更新一本书
int updateBook(Books books);
//查询一本书
Books queryBookById(int id);
//查询全部的书
List queryAllBook();
}
```
```java
package com.wqj.service;
import com.wqj.dao.BookMapper;
import com.wqj.pojo.Books;
import java.util.List;
public class BookServiceImpl implements BookService {
//service调dao层:组合dao
private BookMapper bookMapper;
public void setBookMapper(BookMapper bookMapper) {
this.bookMapper = bookMapper;
}
public int addBook(Books books) {
return bookMapper.addBook(books);
}
public int deleteBookById(int id) {
return deleteBookById(id);
}
public int updateBook(Books books) {
return updateBook(books);
}
public Books queryBookById(int id) {
return bookMapper.queryBookById(id);
}
public List queryAllBook() {
return bookMapper.queryAllBook();
}
}
```
8. 编写spring-dao.xml整合dao层
- 关联数据库配置文件
```xml
```
- 连接池
```xml
```
- sqlSessionFactory
- 注册数据源
- 绑定mybatis的配置文件
```xml
```
- 配置dao接口扫描包,动态实现Dao接口可以注入到spring容器中。
```xml
```
9. 编写spring-service.xml整合service层
- 扫描service下的包
```xml
```
- 将我们所有的业务类(service)注入到spring,可通过注解或配置的方式
- 注解
```java
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class BookServiceImpl implements BookService {
//service调dao层:组合dao
@Autowired
private BookMapper bookMapper;
public void setBookMapper(BookMapper bookMapper) {
this.bookMapper = bookMapper;
}
public int addBook(Books books) {
return bookMapper.addBook(books);
}
public int deleteBookById(int id) {
return deleteBookById(id);
}
public int updateBook(Books books) {
return updateBook(books);
}
public Books queryBookById(int id) {
return bookMapper.queryBookById(id);
}
public List queryAllBook() {
return bookMapper.queryAllBook();
}
}
```
- 配置方式
```xml
```
- 声明事务配置(ioc)
```xml
```
10. 添加web驱动
11. 编写spring-mvc.xml整合springMVc
```xml
```