前端项目目录结构搭建-前端服务器搭建
发布时间:2023-02-10 22:10 浏览次数:次 作者:佚名
SSM目录结构
写在前面的话
确定需求的时候,写写实体类前端项目目录结构搭建前端项目目录结构搭建,然后项目一般都是从设计数据库开始,所以都是从dao层开始写,确定了接口的写法(Name+Mapper.java接口文件),然后sql语句写在Name+Mapper.xml测试中,测试成功后开始按照接口的方法实现服务业务逻辑层的编写。 这一层关注的是参数值 和返回值 ,方法体就是按照我们的意愿对数据进行处理。 结果又回到controller层,最后和前端交互。 一直到头版。
查看示例目录结构
首页
1.保存图片
<%--
Created by IntelliJ IDEA.
User: hello
Date: 2021/10/15
Time: 11:06
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
图片上传ing
2.显示图片
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
list
序号
图片
${product.pid}
控制器层
//图片上传
@Controller
public class ProductController {
//controller调service层
@Autowired
private ProductService productService;
@RequestMapping("/listImages")
public ModelAndView list(Model model) {
List<Product> lists = productService.list();
ModelAndView mav = new ModelAndView();
mav.addObject("lists", lists);
mav.setViewName("listImages");
System.out.println(lists);
return mav;
}
/**
* 保存图片
* @param file
* @param product
* @param map
* @return
*/
@RequestMapping("/save")
public String save(MultipartFile file, Product product, ModelMap map) {
try {
return productService.save(file, product, map);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
服务层中的服务层接口
@Service
public interface ProductService {
/**
* 查询所有的图片
* @return
*/
List<Product> list();
/**
* 上传一张图片
* @param product
* @return
*/
String save(MultipartFile file, Product product, ModelMap map) throws IOException;
}
服务层的实现类
@Service
public class ProductServiceIml implements ProductService {
@Autowired
private ProductMapper productMapper;
@Override
public List<Product> list() {
return productMapper.list();
}
@Override
@Transactional
public String save(MultipartFile file, Product product, ModelMap map) throws IOException {
// 保存图片的路径,图片上传成功后,将路径保存到数据库
String filePath = "D:\\upload";
// 获取原始图片的扩展名
String originalFilename = file.getOriginalFilename();
// 生成文件新的名字
String newFileName = UUID.randomUUID() + originalFilename;
// 封装上传文件位置的全路径
File targetFile = new File(filePath, newFileName);
file.transferTo(targetFile);
// 保存到数据库
product.setPimage(newFileName);
productMapper.save(product);
return "redirect:listImages.do";
}
}
dao层dao层接口
//存照片
public interface ProductMapper {
/**
* 查询所有的图片
* @return
*/
List<Product> list();
/**
* 上传一张图片
* @param product
* @return
*/
Integer save(Product product);
}
dao层实现SQl语句
DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="dao.ProductMapper">
<select id="list" resultType="product">
select pid, pimage
from product
select>
<insert id="save" parameterType="product">
insert into product(pimage)
values (#{pimage})
insert>
mapper>
欢迎提问!