发表于: 2018-04-02 23:31:46

2 738


今日完成:

1.       Idea中在打开jsp文件后不停的indexing的情况,查了一下,只要清理一下Idea的缓存和索引就可以了,在File-Invalidate Caches / Restart中,选择Invalidate and Restart,之后会重启Idea,解决

2.       OOSclient关闭                                           

使用单例模式,在项目结束后再关闭,不是每次操作之后,否则会访问失败

<bean id="ossClient" class="com.aliyun.oss.OSSClient" lazy-init="false" destroy-method="shutdown">

3.       cookie默认当前url为路径,需要设置

Cookie cookie = new Cookie("Token", Token);
cookie.setMaxAge(5 * 60);//
cookie.setPath("/task_seven");
response.addCookie(cookie);

4.       mabytis插入语句将主键给pojo类赋值

方式一:

在实体类的映射文件 "*Mapper.xml" 这样写:

useGeneratedKeys="true" 表示给主键设置自增长

keyProperty="userId"  表示将自增长后的Id赋值给实体类中的userId字段。

parameterType="com.chenzhou.mybatis.User" 这个属性指向传递的参数实体类

这里提醒下,<insert></insert> 中没有resultType属性,不要乱加。

实体类中uerId 要有getter() and setter(); 方法

第二种方式:

同样在实体类的映射文件 "*Mapper.xml" 但是要这样写:

<insert></insert> 中没有resultType属性,但是<selectKey></selectKey> 标签是有的。

order="AFTER" 表示先执行插入语句,之后再执行查询语句。

可被设置为 BEFORE AFTER

如果设置为 BEFORE,那么它会首先选择主键,设置 keyProperty 然后执行插入语句。

如果设置为 AFTER,那么先执行插入语句,然后是 selectKey 元素-这和如 Oracle 数据库相似,可以在插入语句中嵌入序列调用

keyProperty="userId"  表示将自增长后的Id赋值给实体类中的userId字段。

SELECT LAST_INSERT_ID() 表示MySQL语法中查询出刚刚插入的记录自增长Id.

实体类中uerId 要有getter() and setter(); 方法

5.       使用阿里云oss存取图片

判断上传文件类型

public static String getcontentType(String filenameExtension) {
   
if (filenameExtension.equalsIgnoreCase("bmp")) {
       
return "image/bmp";
   
}
   
if (filenameExtension.equalsIgnoreCase("gif")) {
       
return "image/gif";
   
}
   
if (filenameExtension.equalsIgnoreCase("jpeg") || filenameExtension.equalsIgnoreCase("jpg")
            || filenameExtension.equalsIgnoreCase(
"png")) {
       
return "image/jpeg";
   
}
   
if (filenameExtension.equalsIgnoreCase("html")) {
       
return "text/html";
   
}
   
if (filenameExtension.equalsIgnoreCase("txt")) {
       
return "text/plain";
   
}
   
if (filenameExtension.equalsIgnoreCase("vsd")) {
       
return "application/vnd.visio";
   
}
   
if (filenameExtension.equalsIgnoreCase("pptx") || filenameExtension.equalsIgnoreCase("ppt")) {
       
return "application/vnd.ms-powerpoint";
   
}
   
if (filenameExtension.equalsIgnoreCase("docx") || filenameExtension.equalsIgnoreCase("doc")) {
       
return "application/msword";
   
}
   
if (filenameExtension.equalsIgnoreCase("xml")) {
        
return "text/xml";
   
}
   
return "image/jpeg";
}

将图片转换为java输入流

try {
    InputStream inputStream = studentPortrait.getInputStream()
;
    boolean
flag = aliyumOSSUtil.upload(studentId, fileName, inputStream);
   
logger.error("photo " + flag);
   
url = aliyumOSSUtil.getUrl(studentId);
} catch (IOException e) {
    e.printStackTrace()
;
}

设置上传文件信息

ObjectMetadata objectMetadata = new ObjectMetadata();
objectMetadata.setContentLength(instream.available());
objectMetadata.setCacheControl("no-cache");
objectMetadata.setHeader("Pragma", "no-cache");
objectMetadata.setContentType(this.getcontentType(fileName.substring(fileName.lastIndexOf("."))));
objectMetadata.setContentDisposition("inline;filename=" + key);

ossClient.putObject(bucketName, key, instream, objectMetadata);

明日计划:

1.       图片迁移

2.       日志记录统计

3.       RMI

遇到的问题:

1.       使用构造函数注入的方法在spring中,必须要有无参构造函数吗?

收获:

1.       实现了手机,邮箱验证码注册,图片上传云数据库



返回列表 返回列表
评论

    分享到