Chinaunix首页 | 论坛 | 博客
  • 博客访问: 420055
  • 博文数量: 121
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1393
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-11 12:17
个人简介

www.vibexie.com vibexie@qq.com

文章分类

全部博文(121)

文章存档

2015年(55)

2014年(66)

我的朋友

分类: Java

2015-04-18 17:47:58

1.建立mysql数据表,图片字段的类型类型有下面4种:
          1. TINYBLOB - 255 bytes
      2.BLOB - 65535 bytes(64KB)
      3.MEDIUMBLOB - 16,777,215 bytes(16MB) (2^24 - 1)
      4.LONGBLOB - 4G bytes (2^32 – 1)

    我们根据具体的大小需求选择图片的字段类型。
    下面我的项目中使用的建表sql语句
    create table ofUser(id int primary key not null auto_increment, /*用户id*/
                                    username varchar(64) unique key not null, /*用户名*/
                                    plainPassword varchar(32), /*未加密密码*/
                                    encryptedPassword varchar(100), /*加密密码*/
                                    name varchar(100), /*用户姓名*/
                                    sex varchar(5), /*性别*/
                                    birthday varchar(20), /*生日*/
                                    email varchar(100) unique key not null, /*邮箱*/
                                    phone varchar(50), /*手机号*/
                                    addr varchar(100), /*地址*/
                                    sign varchar(100), /*签名*/
                                    headimage mediumblob, /*头像*/
                                    creationDate char(15), /*注册时间*/
                                    modificationDate char(15)); /*上次修改时间*/

    可以看出我选择了mediumblob类型保存头像。

2.在Dao的vo类中将图片定义为InputStream类型。

    
    剩下就是dao保存和读取头像了。


    具体的DAO实现这里就不详细说明。

 3.保存操作
    


  1.         User user=new User();    
  2.         user.setUsername("test");
  3.         user.setEncryptedPassword("88888888888");

  4.         /**
  5.          * 要保存的头像路径
  6.          */
  7.         File file=new File("/home/vibexie/head.png");
  8.         try {
  9.             InputStream inputStream=new FileInputStream(file);
  10.             /**
  11.              * 调用user对像的set方法,将头像保存进user对象中
  12.              */
  13.             user.setHeadimage(inputStream);
  14.         } catch (FileNotFoundException e) {
  15.             // TODO Auto-generated catch block
  16.             e.printStackTrace();
  17.         }
  18.         
  19.         /**
  20.          * 添加该用户
  21.          */
  22.         UserDaoFactory.getInstance().addUser(user);
4.读取操作
    


  1.         /**
  2.          * 将图片保存的路径
  3.          */
  4.         File file=new File("/home/vibexie/head2.png");
  5.         
  6.         /**
  7.          * 通过用户名在数据库中返回该用户的全部信息,即一个User对象
  8.          */
  9.         User user2=UserDaoFactory.getInstance().getUser("username","test");

  10.         try {
  11.             OutputStream outputStream=new FileOutputStream(file);
  12.             
  13.             /**
  14.              * 获取user2的InputStream对象
  15.              */
  16.             InputStream inputStream=user2.getHeadimage();
  17.             
  18.             byte[] bytes=new byte[inputStream.available()];
  19.             
  20.             /**
  21.              * 从InputStream中读取头像保存在字节流中
  22.              */
  23.             user2.getHeadimage().read(bytes);
  24.             
  25.             /**
  26.              * 写入磁盘保存
  27.              */
  28.             outputStream.write(bytes);
  29.             
  30.         } catch (Exception e) {
  31.             // TODO Auto-generated catch block
  32.             e.printStackTrace();
  33.         }

阅读(2071) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~