发表于: 2018-04-02 23:31:46
2 736
今日完成:
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. 实现了手机,邮箱验证码注册,图片上传云数据库
评论