搜尋

首頁  >  問答  >  主體

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

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

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

巴扎黑巴扎黑2821 天前873

全部回覆(3)我來回復

  • PHP中文网

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

    將 java list 轉換成json 格式存在資料庫裡吧

    回覆
    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 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 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());

    希望對你有幫助!

    回覆
    0
  • PHPz

    PHPz2017-04-17 11:33:08

    你好,你的問題我沒有讀明白,建議把list的內容具體一些。如果list裡面是字串,這個比較好解決。如果這個list裡面是複雜的類,那就是看具體的要求了。

    回覆
    0
  • 取消回覆