起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: Masion

利用身份证读卡器收集人员信息上传到X5系统

  [复制链接]

377

主题

2594

帖子

5117

积分

论坛元老

Rank: 8Rank: 8

积分
5117
QQ
 楼主| 发表于 2014-11-12 20:17:12 | 显示全部楼层
在 司机基本信息表中 有两个字段 fDriverImg. fDriverPic 分别存放身份证照片的二进制码(此时为导进来的数据)和Base64码(此时为空)

下面通过一个action动作,将fDriverImg中的二进制码批量转换为fDriverPic的 Base64码
长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

377

主题

2594

帖子

5117

积分

论坛元老

Rank: 8Rank: 8

积分
5117
QQ
 楼主| 发表于 2014-11-12 20:18:48 | 显示全部楼层
本帖最后由 Masion 于 2014-11-13 09:01 编辑

复制代码
public static void picConvertFromBinToBase64() throws Exception{
//将fDriverImg中的二进制批量转换为fDriverPic中的Base64码
               
   //取得司机的二进制图片信息
     StringBuffer sbSql = new StringBuffer();
    sbSql.append("SELECT  fIdentityCard,fName,fDriverImg ");
     sbSql.append("from MY_DriverBasic ");

   HashMap<String, String> sqlMap = new HashMap<String, String>();        
    sqlMap.put(SQL.DEFAULT_DB_NAME, sbSql.toString());
    sqlMap.put(DatabaseProduct.MSSQL.name(), sbSql.toString());
    Table table = SQL.select(sqlMap, null, "/MyProject/TaxiManage/data");
   
//将二进制图片转换成Base64
  Iterator<Row> it = table.iterator();
    Row r = null;
  String driverPic=null;
   byte[] bytes = null;
         while (it.hasNext()){
         r = it.next();
       bytes=blob2ByteArr(r.getBlob("fDriverImg"));  //转成字节数组
       if (bytes!= null){
       driverPic=(new sun.misc.BASE64Encoder()).encode(bytes);   //Base64编码
              }
   try{                                                                                   //将Base64码传回对应的司机记录
         String ksql="update MY_DriverBasic MY_DriverBasic set  MY_DriverBasic.fDriverPic='"+ driverPic+"' where "+
         "MY_DriverBasic.fIdentityCard='"+r.getValue("fIdentityCard")+"'";
            KSQL.executeUpdate(ksql, null, "/MyProject/TaxiManage/data", null);
         }
       catch(Exception e){
       throw new RuntimeException (e.getMessage());
          }
                                   
                                   
  };
   
        }
        
        
public static byte[] blob2ByteArr(Blob blob) throws Exception {
  //从网上某位大神的博客中找的代码,将blob数据转换为byte[]数据
  byte[] b = null;
try {
  if (blob != null) {
      long in = 1;
        b = blob.getBytes(in, (int) (blob.length()));
           }        
           } catch (Exception e) {
            e.printStackTrace();
             throw new Exception("fault");
                                }         
                        return b;
                        }        


通过上面这个程序,3500个司机照片转换大约2分钟左右

长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

377

主题

2594

帖子

5117

积分

论坛元老

Rank: 8Rank: 8

积分
5117
QQ
 楼主| 发表于 2014-11-12 20:31:40 | 显示全部楼层
本帖最后由 Masion 于 2014-11-12 20:45 编辑

小弟初学X5,粗陋之处请各位大神指导

点评

学习点赞  发表于 2017-6-20 15:50
长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

2

主题

441

帖子

2572

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2572
发表于 2014-11-13 07:47:22 | 显示全部楼层
回复

使用道具 举报

396

主题

2433

帖子

4863

积分

论坛元老

Rank: 8Rank: 8

积分
4863
QQ
发表于 2014-11-13 08:33:23 | 显示全部楼层
这个必须顶,收藏!
QQ67886387
回复 支持 反对

使用道具 举报

197

主题

824

帖子

1889

积分

金牌会员

Rank: 6Rank: 6

积分
1889
QQ
发表于 2014-11-13 08:41:07 | 显示全部楼层
好贴子,顶
QQ:574178224
回复

使用道具 举报

8

主题

57

帖子

256

积分

中级会员

Rank: 3Rank: 3

积分
256
QQ
发表于 2014-11-19 11:04:27 | 显示全部楼层
同样是初学者,你比我强好多啊。顶,赞。。。
回复 支持 反对

使用道具 举报

997

主题

4326

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10696
QQ
发表于 2014-11-19 12:23:44 | 显示全部楼层
好贴,帮顶
孤舟蓑笠翁,独钓寒江雪。
X5牛刀交流民间第一群:30057529
提供有偿服务,联系WX:18332024
bex5疑难问题解决方案
回复

使用道具 举报

12

主题

67

帖子

413

积分

中级会员

Rank: 3Rank: 3

积分
413
QQ
发表于 2014-11-25 08:36:48 | 显示全部楼层
点个赞,以示鼓励!
回复 支持 反对

使用道具 举报

104

主题

459

帖子

1727

积分

金牌会员

Rank: 6Rank: 6

积分
1727
QQ
发表于 2014-11-25 14:35:29 | 显示全部楼层
赞一个
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-3-29 15:09 , Processed in 0.097321 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表