SpringMVC从本地磁盘读取图片显示到JSP页面上

该博客介绍了如何在SpringMVC中处理图片存储和展示。首先,数据库仅存储图片ID和名称,利用Oracle自增ID特性。接着,通过MyBatis Generator自动生成DAO类,然后实现Service接口处理图片读取和信息转换为JSON。最后,使用waterfull.js在前端页面展示图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇博客是从数据库中读取图片的二进制信息流然后显示到JSP页面上,下面是将图片存储到我的本地磁盘E中,然后在数据库中只存图片的名字
将磁盘的路径写到配置文件中,从配置文件中将地址读取出来,图片显示的流程与前一篇博客的一样,只不过图片存储的地方不一样。

下面来展示我的实现流程.

(1)数据库中只保存图片的id和名字,我用的是oracle数据库,id是自增的,至于如何建表实现id自增等,我已经有博客介绍过这个,这里我展示下我自己写了一个工具类用来建表.

<span style="font-family:Comic Sans MS;">public class CreTableUtil {
	/**
	 * 
	 * @param tableName
	 * 创建表
	 */
	public void create(String tableName,JdbcTemplate jdbcTemplate){
		jdbcTemplate.execute("create table "+tableName+"(photo_id int,photo_data blob,photo_name varchar2(100),primary key(photo_id))");
	}
	/**
	 * 
	 * @param seq
	 * 创建序列
	 */
	public void createSequence(String seq,JdbcTemplate jdbcTemplate){
		String create_seq="create sequence "+seq +" start with 1 "
				+ "increment by 1 minvalue 1 maxvalue 999999 nocycle nocache";
		jdbcTemplate.execute(create_seq);
	}
	/**
	 * 为id设置自增
	 */
	
	public void idIncrement(String tablename,String seq,JdbcTemplate jdbcTemplate){
		String sql="insert into "+ tablename+"(photo_id) values("+seq+".NEXTVAL)";
		jdbcTemplate.execute(sql);
	}
	/**
	 * 创建触发器
	 */
	public void create_trigger(String tablename,String seq,String triggerName,JdbcTemplate jdbcTemplate){
		String creat_trig="create  trigger "+triggerName+" before insert on "+tablename+" for each row begin select "+seq+".NEXTVAL into :new.photo_id from dual;end;";
		jdbcTemplate.execute(creat_trig);
	}
	
}</span>

2)使用mybatis的generatorConfig.xml自动生成DAO类,至于生成过程我在之前也已经介绍过了。
      最后生成的 PhotoModel类如下:

<span style="font-family:Comic Sans MS;">public class PhotoModel {
    private BigDecimal id;
    private String name;
    public BigDecimal getId() {
        return id;
    }
    public void setId(BigDecimal id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String n
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值