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

个人java学习路线-SSM整合

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

个人java学习路线-SSM整合

个人java学习路线-SSM整合
  • 一、SSM整合:
    • 整合步骤:
  • 二、实例
    • 1.依赖及静态资源导出配置(pom.xml)
    • 2.前端页面(已完成的)
    • 3.mybatis
    • 4.spring
    • 5.springmvc
    • 6.写业务
  • 三、错误排查
    • bean不存在
  • 四、额外
    • mybatis中like语句的写法

一、SSM整合:

做项目步骤:

  • 需求分析
  • 设计数据库
  • 业务
  • 前端界面
整合步骤:
  • 1.mybatis

java:

dao:BookMapper  BookMapper.xml
pojo:Book
service:BookService BookServiceImpl

resource:

applicationContext.xml 空的
database.properties
mybatis-config.xml
  • 2.spring

java:

resource:

applicationContext.xml 
spring-dao.xml
spring-service.xml
  • 3.springmvc

除了上面的12

顺序:
web.xml
spring-mvc.xml
  • 4.写业务

      controller:BookController
      resources:spring-mvc.xml(applicationContext.xml中记得import)
    
二、实例

这里用ssm来实现一个简单的书籍增删改查

1.依赖及静态资源导出配置(pom.xml)
   
    
        
            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.6
        
        
            org.springframework
            spring-webmvc
            5.3.9
        
        
            org.springframework
            spring-jdbc
            5.1.9.RELEASE
        
        
        
            org.aspectj
            aspectjweaver
            1.9.6
        
    

    
    
        
            
                src/main/resources
                
                    ***.xml
                
            
            
                src/main/java
                
                    ***.xml
                
                true
            
        
    
2.前端页面(已完成的)

欢迎页面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

  
    首页
    
  
  
  

进入书籍展示页面

所有书籍展示(在WEB-INF/jsp/下):

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
  Created by IntelliJ IDEA.
  User: Lenovo
  Date: 2021/9/23
  Time: 20:24
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    书籍展示页面
    <%--BootStarp美化界面--%>
    
    
<%--    
    
    
    --%>


<%--toAddBook--%> 新增书籍 显示全部书籍
<%--调位置的--%>
<%--查询书籍--%>
<%--toAddBook--%>
<%--让下面两个input同一行显示--%> ${error}
<%--书籍是从数据库中查询出来的,从list中遍历出来--%>
书籍编号 书籍名称 书籍数量 书籍详情 操作
${book.bookID} ${book.bookName} ${book.bookCounts} ${book.detail} 修改   |   删除

添加书(在WEB-INF/jsp/下):

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    添加书籍
    <%--BootStarp美化界面--%>
    



修改书(在WEB-INF/jsp/下):

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    修改书籍
    <%--BootStarp美化界面--%>
    



3.mybatis

实体类书籍book:

public class Book {
    private Integer bookID;
    private String bookName;
    private Integer bookCounts;
    private String detail;
    //此处省略get,set等
}

BookMapper(BookDao)接口

public interface BookMapper {
    //增加一本书
    int addBook(Book book);
    //删除一本书
    int deleteBookById(@Param("bookID") int id);
    //修改一本书
    int updateBook(Book book);
    //查询一本书
    Book queryBookById(int id);
    //增加所有书
    List queryAllBook();

    //查询书通过bookName
    List queryBookByName(@Param("bookName") String bookName);
}

BookMapper.xml:




    
    
        insert into books (bookName,bookCounts,detail)
        values (#{bookName},#{bookCounts},#{detail});
    
    
    
        delete from books where bookID=#{bookID};
    
    
    
        update books
        set bookName=#{bookName},bookCounts=#{bookCounts},detail=#{detail}
        where bookID=#{bookID};
    
    
    
         select * from books;
    

    

BookService接口:

public interface BookService {
    //增加一本书
    int addBook(Book book);
    //删除一本书
    int deleteBookById(int id);
    //修改一本书
    int updateBook(Book book);
    //查询一本书
    Book queryBookById(int id);
    //增加所有书
    List queryAllBook();

    //查询书通过bookName
    List queryBookByName(String bookName);
}

BookServiceImpl:

public class BookServiceImpl implements BookService{
    private BookMapper bookMapper;
    public void setBookMapper(BookMapper bookMapper) {
        this.bookMapper = bookMapper;
    }

    public int addBook(Book book) {
        return bookMapper.addBook(book);
    }

    public int deleteBookById(int id) {
        return bookMapper.deleteBookById(id);
    }

    public int updateBook(Book book) {
        return bookMapper.updateBook(book);
    }

    public Book queryBookById(int id) {
        return bookMapper.queryBookById(id);
    }

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

    public List queryBookByName(String bookName) {
        return bookMapper.queryBookByName(bookName);
    }
}

database.properties

jdbc.driver=com.mysql.jdbc.Driver
#如果用mysql8.0以上要加时区配置
jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useSSl=false&useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=888666

mybatis-config.xml:





    
        
    

    
    
        
    

    
        
    

applicationContext.xml:暂空

4.spring

spring-dao.xml(主要是整合mybatis部分):



    
    

    
    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    

    
    
        
        
        
    

    
    
        
        
        
        
    

spring-service.xml(主要是事务相关):




    
    

    
    
        
    

    
    
        
        
    

    
    
    
    
        
        
        
            
        
    
    
    
    
        
        
    

applicationContext.xml(这里把上面两个整合)




    
    

5.springmvc

spring-mvc.xml(此时controller还是空的文件):




    
    
    
    
    
    
    
    
        
        
    

顺便把这个放到applicationContext.xml中:




    
    
    

web.xml:




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

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

    
    
        15
    

6.写业务

controller:

@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 addBook(Book book){
        System.out.println("addBook=>"+book);
        bookService.addBook(book);
        return "redirect:/book/allBook";//重定向到@RequestMapping("/allBook")请求
    }

    //跳转到修改页面
    @RequestMapping("/toUpdate")
    public String toUpdatePager(int id,Model model){
        Book book = bookService.queryBookById(id);
        model.addAttribute("book",book);
        return "updateBook";
    }

    //修改书籍
    @RequestMapping("/updateBook")
    public String updateBook(Book book){
        System.out.println("updateBook=>"+book);
        bookService.updateBook(book);
        return "redirect:/book/allBook";
    }

    //删除数据
    @RequestMapping("/deleteBook/{bookID}")
    public String deleteBook(@PathVariable("bookID") int id){
        bookService.deleteBookById(id);
        return "redirect:/book/allBook";
    }

    //通过bookName查询书籍
    @RequestMapping("/queryBook")
    public String queryBook(String queryBookName, Model model){
        List bookList = bookService.queryBookByName(queryBookName);
        if (bookList.size()==0){
            model.addAttribute("error","未查到");
        }
        model.addAttribute("list",bookList);
        return "allBook";
    }
}

到此简单的运用ssm对书籍进行增删改查就完成了

三、错误排查 bean不存在

步骤:

1.查看这个bean注入是否成功!  
2.Junit单元测试,看我们的代码是否能够查询出来结果! 
3.问题,一定不在我们的底层,spring出现问题
4.SpringMVC,整合的时候没调用到我们的service层的bean;
    4.1.applicationContext没有注入bean
    4.2.web.xml绑定过配置文件!但我们配置的式Spring-mvc.xml
    Spring-mvc.xml中没有service 的bean,所以报错
四、额外 mybatis中like语句的写法

不能直接写

like '%#{bookName}%';
//会报错

要写

like concat('%', #{bookName}, '%');

这只是一种解决办法

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

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

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