根据需求与和业务需求设计好数据库,主要是包括设计数据库的结构以及需要完成的一些功能(crud)
1.创建数据库
2.创建表结构
3.增加约束与视图等
SSM所需依赖包如下,在pom.xml的dependencies下写入:
junit
junit
4.12
mysql
mysql-connector-java
5.1.47
com.mchange
c3p0
0.9.5.2
javax.servlet
servlet-api
2.5
javax.servlet.jsp
jsp-api
2.2
javax.servlet
jstl
1.2
org.mybatis
mybatis
3.5.2
org.mybatis
mybatis-spring
2.0.2
org.springframework
spring-webmvc
5.1.9.RELEASE
org.springframework
spring-jdbc
5.1.9.RELEASE
org.projectlombok
lombok
1.18.10
在pom.xml新增以下代码
src/main/java
**/*.properties
**/*.xml
false
src/main/resources
**/*.properties
**/*.xml
false
pojo(实体类包)
dao(数据库持久层)
service(服务层)
controller(前端控制器)
mybatis-config.xml(Mybatis配置文件)
applicationContext.xml (Spring配置文件)
database.properties(数据库连接资源文件)
jdbc.driver=com.mysql.jdbc.Driver
# mysql 8.0及以上驱动包位置发生了改变要这样写:
# jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/数据库名?useSSL=true&useUnicode=true&characterEncoding=utf8
# mysql8.0及以上url也发生了一点点改变,应该这样写:
# jdbc.url=jdbc:mysql://localhost:3306/数据库名?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false
jdbc.username=用户名
jdbc.password=用户密码
实体类根据ORM原则进行编写,这里我们用lombok节约时间
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Books {
private int bookID;
private String bookName;
private int bookCounts;
private String detail;
}
如上述的BooksMapper,并且这里我们采用注解的方式来快速开发
public interface BooksMapper {
//增加一本书
@Insert("insert into books(bookName, bookCounts, detail) VALUES (#{bookName},#{bookCounts},#{details})")
int addBooks(Books books);
//删除一本书
@Delete("delete from books where bookID=#{id}")
int deleteBookById(@Param("id") int id);
//更新一本书
@Update("update books set bookName=#{bookName},bookCounts=#{bookCounts},detail=#{detail}")
int updateBooks(Books books);
//查询一本书
@Select("select * from books where bookID=#{id}")
Books queryBooksById(@Param("id") int id);
//查询全部书
@Select("select * from books")
List queryAllBooks();
}
这里我们创建BooksMapper.xml
也就是我们这里的mybatis-config.xml
就此Mybatis层代码全部搞定!
(1)编写service接口
这里是BooksService
public interface BooksService {
//增加一本书
int addBooks(Books books);
//删除一本书
int deleteBookById(int id);
//更新一本书
int updateBooks(Books books);
//查询一本书
Books queryBooksById(int id);
//查询全部书
List queryAllBooks();
}
(2)编写接口实现类
这里是BooksServiceImpl
public class BooksServiceImpl implements BooksService{
//service层调dao,所以需要有一个dao层的mapper对象
private BooksMapper booksMapper;
//为了方便Spring对它进行注入,写上set方法
public void setBookMapper(BooksMapper booksMapper) {
this.booksMapper = booksMapper;
}
public int addBooks(Books books) {
return booksMapper.addBooks(books);
}
public int deleteBookById(int id) {
return booksMapper.deleteBookById(id);
}
public int updateBooks(Books books) {
return booksMapper.updateBooks(books);
}
public Books queryBooksById(int id) {
return booksMapper.queryBooksById(id);
}
public List queryAllBooks() {
return booksMapper.queryAllBooks();
}
}
就此Mybatis层代码全部完成
就是这里的Spring-dao.xml
这里的文件为Spring-service.xml
注:使用注解要在接口实现类上方加上@Service
到此Spring层代码全部完成!
这里比较简单不过多解释
2.编写SpringMVC配置资源文件
我们这里为Spring-mvc.xml
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:Spring-mvc.xml
1
springmvc
/
encoding
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
encoding
/*
15
略
就是编写controller层代码和视图层
如
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
首页
点击跳转到数据展示页面
BookController.java
@Controller
public class BookController {
//controller层调service层
@Autowired
@Qualifier("bookService")
private BookService bookService;
//查询所有书籍并且返回到书籍展示页面
@RequestMapping("/allBook")
public String list(Model model){
List books = bookService.queryAllBooks();
model.addAttribute("list",books);
return "allBook";
}
}
allBook.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
书籍展示页面
${list}