栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SSM项目搭建思路(基于狂神老师的书籍管理系统)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SSM项目搭建思路(基于狂神老师的书籍管理系统)

  1. 新建maven项目

  2. 配置pom.xml导入所需jar包

    1. junit
    2. 数据库驱动
    3. 数据库连接池
    4. Servelt JSP
    5. Mybatis
    6. Spring
    
            
                
                    src/main/java
                    
                        ***.xml
                    
                    false
                
                
                    src/main/resources
                    
                        ***.xml
                    
                    false
                
            
        
    
  3. 连接数据库
    在Schemas里面选择我们要操作的表

  4. 新建pojo文件夹,新建类Books.java

    1. 对Books类的私有属性进行定义
    2. 利用注解生成两种构造方法
  5. 数据库参数文件database.properties 里面存放数据库链接,用户名,密码

  6. mybatis的dao层

    1. 关联数据库配置文件
    2. 配置数据库连接池
    3. sqlSessionFactory
    4. 配置扫描Dao接口包,动态实现Dao接口注入到spring容器中
  7. mybatis_config.xml 配置数据源,交给spring去做

  8. applicationContext.xml 总的配置文件,奖spring-dao引入到这里<>

  9. 建立dao层,新建dao文件夹,接口BookMapper

    1. 定义增删改查方法
    2. 对方法参数是基本类型的 可以设置@Param(“bookId”)别名
  10. 在dao文件夹新建BookMapper.xml 实现接口BookMapper
    注意加表头

    
    
    
  11. 测试一波(测试不通,先放一放)

  12. 接下来是spring

  13. 新建service服务层的package

  14. 写入接口BookService 和 BookMapper基本一样

  15. BookServiceImpl 实现 BookService接口

  16. 配置文件spring-service.xml

    1. 扫描service相关的bean
    2. BookServiceImpl注入到IOC容器当中
    3. 配置事务管理器
    4. 注入数据库连接池
  17. 将spring-service.xml导入到application.xml中

  18. 这里测试就OK了,完成了Mybatis和Spring了

    1. 小坑 sql语句不要写错
    2. 数据库一定要链接上
    3. 强转类型不要转错
  19. 接下来是SpringMVC

  20. 首先添加web依赖 WEB-INF下新建jsp文件夹 这里前端用jsp写的

  21. web层 web.xml DispatcherServlet 加载总的配置文件

  22. 新建spring-mvc.xml

    1. 开启SpringMVC注解驱动
    2. 静态资源默认servlet配置
    3. 配置jsp 显示ViewResolver视图解析器
    4. 扫描web相关的bean
  23. com.kuang下新建controller文件夹 写控制层的类

  24. controller先写一个展示全部书籍的方法

  25. jsp下 建 allbook.jsp 写前端代码

  26. 配置tomcat

  27. 小坑:projectStruct ->Artfact->WEB-INF->新建一个lib包,导入所有的jar包

  28. 切记写完一个配置 一定要导入到applicationContext.xml中

  29. 接下来是增删改书籍—fighting

  30. 加入controller中CURD方法,编写对应的jsp

  31. dao层 接口不要随便加@param(),不然不加的就读不到了(麻了,卡了几个小时)

    BookController.java

package com.kuang.controller;

import com.kuang.pojo.Books;
import com.kuang.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
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 java.util.List;

@Controller
@RequestMapping("/book")
public class BookController {
    //controller 调 service 层
    @Autowired
    @Qualifier("BookServiceImpl")
    private BookService bookService;

    // 查询全部的书籍, 并返回一个书籍展示页面
    @RequestMapping("/allBook")
    public String List(Model model){
        List list = bookService.queryAllBook();
        model.addAttribute("list",list);
        return "allBook";
    }
    //    增加书籍
    @RequestMapping("/toAddBook")
    public String toAddPaper() {
        return "addBook";
    }

    @RequestMapping("/addBook")
    public String addPaper(Books books) {
        System.out.println(books);
        bookService.addBook(books);
        return "redirect:/book/allBook";
    }
    //    修改书籍
    @RequestMapping("/toUpdateBook")
    public String toUpdateBook(Model model, int id) {
        Books books = bookService.queryBookById(id);
        System.out.println(books);
        model.addAttribute("book",books );
        return "updateBook";
    }

    @RequestMapping("/updateBook")
    public String updateBook(Model model, Books book) {
        System.out.println(book);
        bookService.updateBook(book);
        Books books = bookService.queryBookById(book.getBookID());
        model.addAttribute("books", books);
        return "redirect:/book/allBook";
    }
    //删除书籍
    @RequestMapping("/del/{bookId}")
    public String deleteBook(@PathVariable("bookId") int id) {
        bookService.deleteBooksById(id);
        return "redirect:/book/allBook";
    }
}

BookMapper.java

package com.kuang.dao;

import com.kuang.pojo.Books;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface BookMapper {
    int addBook(Books books);
    int deleteBooksById( int id);
    int updateBook(Books books);
    Books queryBookById( int id);
    List queryAllBook();
}

BookMapper.xml





    
        insert into ssmbuild.books(bookName,bookCounts,detail)
        values (#{bookName}, #{bookCounts}, #{detail})
    
    
        delete from ssmbuild.books where bookID=#{BookId}
    
    
        update ssmbuild.books
        set bookName = #{bookName},bookCounts = #{bookCounts},detail = #{detail}
        where bookID = #{bookID}
    
    
        SELECT * from ssmbuild.books
    

Books.java

package com.kuang.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;
}

BookService.java

package com.kuang.service;

import com.kuang.pojo.Books;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface BookService {
    int addBook(Books books);
    int deleteBooksById(@Param("bookID") int id);
    int updateBook(Books books);
    Books queryBookById(@Param("bookID") int id);
    List queryAllBook();
}

BookServiceImpl.java

package com.kuang.service;

import com.kuang.dao.BookMapper;
import com.kuang.pojo.Books;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public class BookServiceImpl implements BookService{

    private BookMapper bookMapper;
    public void setBookMapper(BookMapper bookMapper){
        this.bookMapper = bookMapper;
    }
    @Override
    public int addBook(Books books) {
        return bookMapper.addBook(books);
    }

    @Override
    public int deleteBooksById(int id) {
        return bookMapper.deleteBooksById(id);
    }

    @Override
    public int updateBook(Books books) {
        return bookMapper.updateBook(books);
    }

    @Override
    public Books queryBookById(int id) {
        return bookMapper.queryBookById(id);
    }

    @Override
    public List queryAllBook() {
        return bookMapper.queryAllBook();
    }
}

applicationContext.xml




    
    
    

database.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useSSL=false&useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=123456

mybatis_config.xml




    
    
        
    
    
        
    

spring-dao.xml




    
    
    
    
        
        
        
        

        
        
        
        
        
        
        
        
        


    

    
    
        
        
    

    
    
        
        

    

spring-mvc.xml




    
    
    
    
    

    
    
        
        
        
    

    
    


spring-service.xml



    
    

    
    
        
    

    
    
        
        
    

addBook.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>



    新增书籍
    
    
    




    
        
            
                
                    新增书籍
                
            
        
    
    
书籍名称:


书籍数量:


书籍详情:


addBook.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    书籍列表
    
    
    





    
        
            
                
                    书籍列表 —— 显示所有书籍
                
            
        
    

    
        
            新增
        
    

    
        
            
                    
书籍编号 书籍名字 书籍数量 书籍详情 操作
${book.getBookID()} ${book.getBookName()} ${book.getBookCounts()} ${book.getDetail()} 更改 | 删除

updateBook.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    修改信息
    
    
    



    
        
            
                
                    修改信息
                
            
        
    
    
书籍名称: 书籍数量: 书籍详情:

web.xml




    
    
        DispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            
            classpath:applicationContext.xml
        
        1
    
    
        DispatcherServlet
        /
    

    
    
        encodingFilter
        
            org.springframework.web.filter.CharacterEncodingFilter
        
        
            encoding
            utf-8
        
    
    
        encodingFilter
        *.properties
                    ***.properties
                    **/*.xml
                
                false
            
        
    

问题: bean 不存在

步骤:
1.查看这个bean注入是否成功
2.Junit单元测试,看我们的代码能否查询出结果
3.问题一定不在我们底层,是spring出了问题!
4.SpringMVC,整合的时候没有调用我们的service层的bean
1.applicationContext没有注册bean
2.web.xml中,我们也绑定过配置文件

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/434779.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号