recherche

Maison  >  Questions et réponses  >  le corps du texte

怎么将java中list中的数据序列化到数据库中,方便存取?

rt.
怎么将java中list中的数据序列化到数据库中,方便存取?
我想讲一个list集合 直接放在一个varchar字段中,而不像新增一个表来专门存在list中数据,我该怎么做?

ps:之前我用php的时候会用serialize去序列化数组,但java我该怎么做?

巴扎黑巴扎黑2819 Il y a quelques jours864

répondre à tous(3)je répondrai

  • PHP中文网

    PHP中文网2017-04-17 11:33:08

    将 java list 转换成json 格式存在数据库里吧

    répondre
    0
  • ringa_lee

    ringa_lee2017-04-17 11:33:08

    public List getObject(String sql, Object[] object) { //sql执行语句,object是你sql语句里面的参数
    List list = new ArrayList();
    Connection con = null;
    PreparedStatement pre = null;
    ResultSet rs = null;
    try{
    con = C3P0Util.getInstance().getConnection(); //这是你获得数据库连接,你把这里改成调用你自己写的jdbc方法
    pre = con.prepareStatement(sql); //执行sql语句
    if(object!=null){
    for(int i=0;i<object.length;i++){
    pre.setObject(i+1, object[i]); //给sql里面的参数进行赋值
    }
    }
    rs = pre.executeQuery();
    while(rs.next()){
    Users u = new User();
    u.setUserName(rs.getString("UserName"));
    u.setUserPas(rs.getString("UserPas")); list.add(u);
    }
    }catch(Exception e){
    e.printStackTrace();
    return null;
    }finally{
    C3P0Util.close(con, pre, rs); //关闭数据库资源
    }
    return list; //返回list集合
    }
    注意:list里面保存的是User对象的信息
    你要获得User对象的信息,那么就要遍历list
    for(int i=0;i<list.size;i++){
    User u = (User)list.get(i); System.out.println("UserName:"+u.getUserName());
    System.out.println("UserPas:"+u.getUserPas());
    } 上面是针对list里面有很多个User对象,当然list里面只有一个User对象,也是可以的。
    如果你的list里面只有一个User,那么可以直接:User u = (User)list.get(0);
    System.out.println("UserName:"+u.getUserName());
    System.out.println("UserPas:"+u.getUserPas());

    希望对你有帮助!

    répondre
    0
  • PHPz

    PHPz2017-04-17 11:33:08

    你好,你的问题我没有读明白,建议把list的内容具体一些。如果list里面是字符串,这个比较好解决。如果这个list里面是复杂的类,那就是看具体的要求了。

    répondre
    0
  • Annulerrépondre