Spring MVC 上传、下载、显示图片
标签:3.5vax自己提交pom手机号单元strcomm
通过这篇文章你可以了解到:
[TOC]
1. 准备工作
首先我们需要准备好开发环境,本文测试环境是 SSM(Spring 4.3.9 + SpringMVC 4.3.9 + MyBatis 3.4.4) ,数据库为 MySQL 5.5,数据库连接池 C3P0 0.9.5.2,构建包 Maven 3.5.0,Tomcat 8.5。
限于篇幅原因,关于 SSM 框架的整合方法,在这篇文章中就不做详细的讲解啦,有关图片上传和下载的相关配置,我会特别标注出来说明的。
我们假定有这样一个很常见的需求场景:用户注册。
首先我们来做一下简单的业务分析,在注册页面,用户填写自己的相关信息,然后选择上传头像图片,注册成功后显示个人信息,并将图片显示在页面上。
一看就是一个很简单的需求吧,那我们就来做相应的数据准备工作吧。
1.1 数据库表准备
数据库非常简单,就一张表:t_user
字段
类型
长度
主键
描述
user_id
int
11
PK,自增
用户表主键
user_name
varchar
50
用户名
user_tel
varchar
20
手机号
user_password
varchar
20
密码
user_pic
varchar
255
用户头像地址
1.2 实体类 User 和 Mapper(DAO)
对应数据库表 t_user 创建实体类:User
这里我使用 mybatis-generate 代码生成器根据 t_user 表结构自动生成实体类 和 Mybatis 的 mapper 文件。
User 实体类的代码如下(省略了 getter/setter):
package com.uzipi.entity;
public class User {
private Integer userId;
private String userName;
private String userTel;
private String userPassword;
private String userPic;
}
生成的 dao 层 java 代码如下:
package com.uzipi.dao;
import com.uzipi.entity.User;
import org.mybatis.spring.annotation.MapperScan;
@MapperScan // 允许 Spring 扫描该 Mapper
public interface UserMapper {
// 删除指定 key 的记录
int deleteByPrimaryKey(Integer userId);
// 插入一条记录(完整记录)
int insert(User record);
// 插入一条记录(对象中有值时写入字段,没有值的置空)
int insertSelective(User record);
// 查询指定 key 的记录
User selectByPrimaryKey(Integer userId);
// 将对象中的内容更新入库(对象中有值时更新字段,没有值的属性不修改)
int updateByPrimaryKeySelective(User record);
// 将对象中的内容更新入库(全属性)
int updateByPrimaryKey(User record);
}
生成的 mapper.xml 文件内容比较多,在文章里就不展示了,后面附件中提供了下载文件供参考。
1.3 pom.xml 依赖包
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.uzipi</groupId>