springMVC注解的配置方式+一对多+spring整合mybatis=实现数据库中数据表的查询





构建ssm框架步骤:
1.建库建表
2.创建java maven web项目
3.在pom.xml中配置相关jar包
web,spring-context,jdbc,mybatis,mybatis-spring,mysql,lombok
4.创建实体包实体类
5.创建mapper接口
6.创建业务接口,业务实现
a.业务实现类上加注解
b.业务实现类中注入mapper对象
7.创建controller包,类
a.controller类上加注解
b.注入service对象
c.配置请求地址映射对应方法 (@RequestMapping)
8.在resources下创建mybatis相关配置
a.db.properties数据属性配置文件
b.mybatis主配置文件,配置日志和下划线小驼峰映射,其他插件...
c.mapper配置文件
9.在resources下创建spring-mybatis配置文件
a.配置扫描业务包
b.配置数据库属性文件
c.配置连接池
d.配置mybatis相关对象(SqlSessionFactory)
e.配置mapper接口扫描
10.在resources下创建spring-mvc配置文件
a.配置扫描controller
b.配置注解驱动
c.配置视图解析器
d.配置default-servlet处理其他默认请求
11.配置web.xml内容
a.配置spring监听器,构建spring容器对象
1): 配置监听器要加载的spring配置文件
b.配置springMVC的前端控制器,使用springMVC处理请求
1):配置springMVC要使用的配置文件
c.配置编码过滤器

#创建分类表
create table category
(
category_id int primary key,
category_name varchar(50) not null
);
select * from category;
insert into category
(category_id ,category_name)
VALUES
(1,'食品'),
(2,'饮品'),
(3,'日用品');
create table goods
(
goods_id int primary key auto_increment,
goods_name varchar(200) not null,
price decimal(5,1) not null,
produce_date date not null,
address varchar(200) default '郑州',
category_id int
);
select * from goods;
insert into goods
(goods_name,price,produce_date,address,category_id)
values
('面包',2.5,'2018-01-01','郑州',1),
('红茶',5,'2015-02-02','武汉',2),
('鸡蛋',1,'2021-02-02','洛阳',1),
('绿茶',2.5,'2005-02-02','漯河',2),
('咖啡',20,'2019-02-02','广州',2),
('洗衣粉',18,'2001-02-02','广州',3),
('香皂',4,'2001-02-02','武汉',3),
('奶茶',9,'2022-02-02','郑州',2),
('饺子',32,'2022-03-02','郑州',1),
('辣条',0.5,'2001-02-08','洛阳',1);
4.0.0
org.example
spring_0824_KTLX2
1.0-SNAPSHOT
war
spring_0824_KTLX2 Maven Webapp
http://www.example.com
8
8
4.0.1
2.2
1.2
5.3.14
1.4
3.4.6
1.3.3
8.0.11
1.2.78
javax.servlet
javax.servlet-api
${servlet.version}
provided
javax.servlet.jsp
jsp-api
${jsp.version}
provided
jstl
jstl
${jstl.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-context
${spring.version}
org.springframework
spring-jdbc
${spring.version}
commons-dbcp
commons-dbcp
${commons-dbcp.version}
org.mybatis
mybatis-spring
${mybatis-spring.version}
org.mybatis
mybatis
${mybatis.version}
com.github.pagehelper
pagehelper
5.1.0
mysql
mysql-connector-java
${mysql-connector-java.version}
com.github.abel533
mapper
3.0.1
com.fasterxml.jackson.core
jackson-databind
2.13.2.2
com.alibaba
fastjson
${fastjson.version}
org.projectlombok
lombok
1.18.22
junit
junit
4.13
package com.aaa.demo.entity;
import lombok.Data;
@Data
public class Category {
private Integer categoryId;
private String categoryName;
}
package com.aaa.demo.entity;
import lombok.Data;
import java.util.Date;
@Data
public class Goods {
private Integer goodsId;
private String goodsName;
private Double price;
private Date produce_date;
private String address;
private Category category; //注意
}
package com.aaa.demo.mapper;
import com.aaa.demo.entity.Goods;
import java.util.List;
public interface GoodsMapper {
List listAll();
}
package com.aaa.demo.service;
import com.aaa.demo.entity.Goods;
import java.util.List;
public interface IGoodsService {
List listAll();
}
package com.aaa.demo.service.impl;
import com.aaa.demo.entity.Goods;
import com.aaa.demo.mapper.GoodsMapper;
import com.aaa.demo.service.IGoodsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class GoodsServiceImpl implements IGoodsService {
@Autowired
private GoodsMapper goodsMapper;
@Override
public List listAll() {
return goodsMapper.listAll();
}
}
package com.aaa.demo.controller;
import com.aaa.demo.entity.Goods;
import com.aaa.demo.service.IGoodsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.annotation.Resource;
import java.util.List;
@Controller
public class GoodsController {
//@Resource
@Autowired
private IGoodsService iGoodsService;
@RequestMapping("/list")
public String list(Model model){
//使用业务层对象查询数据
List goodsList=iGoodsService.listAll();
//使用model存储数据,springMVC会自动把数据带到页面
model.addAttribute("goodsList",goodsList);
//返回视图名字,springMVC会自动用转发方式调到该页面
return "goodsList";
}
}
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/70813_db?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8&allowPublicKeyRetrieval=true
jdbc.username=root
jdbc.password=123456
org.springframework.web.context.ContextLoaderListener
contextConfigLocation
classpath:spring-mybatis.xml
springMVC
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring-mvc.xml
springMVC
/
<%--
Created by IntelliJ IDEA.
User: 33154
Date: 2022/8/24
Time: 11:20
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Title
${goodsList}





// A code block
var foo = 'bar';
// A code block
var foo = 'bar';