上一篇博客是从数据库中读取图片的二进制信息流然后显示到JSP页面上,下面是将图片存储到我的本地磁盘E中,然后在数据库中只存图片的名字
将磁盘的路径写到配置文件中,从配置文件中将地址读取出来,图片显示的流程与前一篇博客的一样,只不过图片存储的地方不一样。
2)使用mybatis的generatorConfig.xml自动生成DAO类,至于生成过程我在之前也已经介绍过了。
将磁盘的路径写到配置文件中,从配置文件中将地址读取出来,图片显示的流程与前一篇博客的一样,只不过图片存储的地方不一样。
下面来展示我的实现流程.
(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