SSM整合框架之多对多查询

什么是SSM框架:
SSM框架就是Spring、SpringMVC、MyBatis三个框架的整合,是标准的MVC模式,将整个系统划分为表现层、Controller层、Service层、Dao层三层。使用SpringMVC负责请求的转发和视图管理,Spring实现业务对象管理,Mybatis作为数据对象的持久化引擎

简单介绍了下SSM,就直接上代码吧!

先引入jar包

pom.xml

     
          
        4.0.2.RELEASE  
          
        3.2.6  
          
        1.7.7  
        1.2.17  
     
    
    
        
            junit
            junit
            3.8.1
               
            test
        
        
        
           
          
            org.springframework  
            spring-core  
            ${spring.version}  
          
  
          
            org.springframework  
            spring-web  
            ${spring.version}  
          
          
            org.springframework  
            spring-oxm  
            ${spring.version}  
          
          
            org.springframework  
            spring-tx  
            ${spring.version}  
          
  
          
            org.springframework  
            spring-jdbc  
            ${spring.version}  
          
  
          
            org.springframework  
            spring-webmvc  
            ${spring.version}  
          
          
            org.springframework  
            spring-aop  
            ${spring.version}  
          
  
          
            org.springframework  
            spring-context-support  
            ${spring.version}  
          
  
          
            org.springframework  
            spring-test  
            ${spring.version}  
          
          
          
            org.mybatis  
            mybatis  
            ${mybatis.version}  
          
           
          
            org.mybatis  
            mybatis-spring  
            1.2.2  
          
        
           
          
            javax  
            javaee-api  
            7.0  
          
        
           
          
            mysql  
            mysql-connector-java  
            5.1.36  
          
          
          
            commons-dbcp  
            commons-dbcp  
            1.2.2  
          
        
          
          
            jstl  
            jstl  
            1.2  
          
          
          
          
            log4j  
            log4j  
            ${log4j.version}  
          
          
          
          
            com.alibaba  
            fastjson  
            1.1.41  
          
  
          
            org.slf4j  
            slf4j-api  
            ${slf4j.version}  
          
  
          
            org.slf4j  
            slf4j-log4j12  
            ${slf4j.version}  
          
          
          
          
            org.codehaus.jackson  
            jackson-mapper-asl  
            1.9.13  
          
          
          
            commons-fileupload  
            commons-fileupload  
            1.3.1  
          
          
            commons-io  
            commons-io  
            2.4  
          
          
            commons-codec  
            commons-codec  
            1.9  
          
    
    
    
        maven01
        
            
                org.eclipse.jetty
                jetty-maven-plugin
                9.2.8.v20150217
                
                    
                        80
                    
                    shutdown
                    9966
                
            
        
    

写配置文件

web.xml



  ssm_bookstore
  
    index.html
    index.htm
    index.jsp
    default.html
    default.htm
    default.jsp
  
  
    bookstore

org.springframework.web.servlet.DispatcherServlet

  contextConfigLocation
  classpath*:spring_MVC.xml

1
 
  
    bookstore
    /
  


    contextConfigLocation
    classpath*:application_Context.xml
  

  
    org.springframework.web.context.ContextLoaderListener
  

spring_MVC.xml









	
	
	




    
    
    
    
    




		
				
				
		

application_context.xml





		




spring_mybatis.xml



	





	
	
	
	
	
	
	
		
			
			
			
			
		
	





	




	





	
		
		
		
		
		
	




	



创建表

t_book
在这里插入图片描述

t_author
SSM整合框架之多对多查询_第1张图片

t_book_author 创建多对多的关系需要中间表
SSM整合框架之多对多查询_第2张图片

pojo实体类

书的实体类

package com.bs.admin.pojo;

    import java.io.Serializable;
    import java.util.HashSet;
    import java.util.Set;

/**
 * 
* 

Title: Book

*

Description: Book实体类

* @author Jack.Hu *

@date 2018年11月21日

*/ public class Book implements Serializable { private static final long serialVersionUID = 597733879789573558L; private Long primaryId; private Long bookId; private String bookName; private Set authors = new HashSet(); // 作者与书,多对多 private String bookCategory; // 书的种类 private Long bookPurchasePrice; // 进价 private Long bookSalesPrice; // 售价 private String bookProfile; // 简介 private String bookCoverImage; // 图片路径 private Long publisherId; // 出版社id private Long printId; // 印刷id private Set activity = new HashSet(); // 活动与书多对多 public Book(){ } public Book(Long primaryId, Long bookId, String bookName, Set authors, String bookCategory, Long bookPurchasePrice,Long bookSalesPrice, String bookProfile, String bookCoverImage, Long publisherId, Long printId, Set activity) { this.primaryId = primaryId; this.bookId = bookId; this.bookName = bookName; this.authors = authors; this.bookCategory = bookCategory; this.bookPurchasePrice = bookPurchasePrice; this.bookSalesPrice = bookSalesPrice; this.bookProfile = bookProfile; this.bookCoverImage = bookCoverImage; this.publisherId = publisherId; this.printId = printId; this.activity = activity; } @Override public String toString() { return "Book [主键:" + primaryId + ", 书号:" + bookId + ", 书名:" + bookName +", 作者:"+ authors + ", 种类:" + bookCategory + ", 进价:" + bookPurchasePrice + ", 售价:" + bookSalesPrice + ", 简介:" + bookProfile + ", 图片路径:" + bookCoverImage + ", 出版者id:" + publisherId + ", 印刷商id:" + printId +", 活动:" + activity + "]"; } // .......忽略get set方法....... }

作者的实体类

package com.bs.admin.pojo;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;

/**
 * 
* 

Title: Author

*

Description: 作者的实体类

* @author jack.Hu *

@date 2018年11月21日

*/ public class Author implements Serializable { private static final long serialVersionUID = -2631951426846305889L; private Integer authorId; private String authorName; private Set books = new HashSet(); public Author(){ } public Author(Integer authorId, String authorName, Set books) { this.authorId = authorId; this.authorName = authorName; this.books = books; } @Override public String toString() { return "Author [authorId=" + authorId + ", authorName=" + authorName + ", book:" + books +"]"; } // .......忽略get set方法....... }

Mapper层

BookMapper.xml






  


		
		
		



		primary_id, b.book_id,b.book_name,b.book_category,b.book_purchasePrice,b.book_salesPrice,
		b.book_profile,b.book_coverImage,b.publisher_id,b.print_id     



		a.author_id, a.author_name



BookMapper接口

package com.bs.admin.mapper;

import com.bs.admin.pojo.Book;

public interface BookMapper {

	Book getBookByBookId(Long bookId);
	
	Integer createBook(Book book); 
}

dao层

接口

package com.bs.admin.dao;

import org.springframework.stereotype.Repository;

import com.bs.admin.pojo.Book;

@Repository
public interface BookDao {

	Book retrieveBookByBookId(Long bookId); 
	
}

实现类

package com.bs.admin.dao.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.bs.admin.dao.BookDao;
import com.bs.admin.mapper.BookMapper;
import com.bs.admin.pojo.Book;

@Repository
public class BookDaoImpl implements BookDao {

	@Autowired
	private BookMapper bm;
	
	@Override
	public Book retrieveBookByBookId(Long bookId) {
		Book book = bm.getBookByBookId(bookId);
		return book;
	}

}

service层

接口

package com.bs.admin.service;

import org.springframework.stereotype.Service;

import com.bs.admin.pojo.Book;

@Service
public interface  BookService {

	Book getBookByBookId(Long bookId);
}

实现类

package com.bs.admin.service.impl;

import java.util.Set;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.bs.admin.dao.BookDao;
import com.bs.admin.dao.impl.BookDaoImpl;
import com.bs.admin.pojo.Book;
import com.bs.admin.service.BookService;

@Service
public class BookServiceImpl implements BookService{

	@Autowired
	private BookDao bd; 
	
	@Override
	public Book getBookByBookId(Long bookId) {
		Book book = bd.retrieveBookByBookId(bookId);
		return book;
	}
}

controller层

BookstoreController

package com.bs.admin.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.bs.admin.pojo.Author;
import com.bs.admin.pojo.Book;
import com.bs.admin.service.AuthorService;
import com.bs.admin.service.BookService;

@RestController
@RequestMapping("bookstore")
public class BookstoreController {

	@Autowired
	private BookService bs;
	
	@Autowired
	private AuthorService as;
	
	@GetMapping("{bookId}/getBook")
	public @ResponseBody Book getBook(@PathVariable("bookId") Long bookId) {
		Book book = bs.getBookByBookId(bookId);
		System.out.println("book对象:   " + book);
		return book;
	}
}

浏览器
在这里插入图片描述

控制台
SSM整合框架之多对多查询_第3张图片

你可能感兴趣的:(Spring框架)