如何将一个二维数组存入数据库中

如何将一个二维数组存入数据库中,第1张

为什么要主键是i?主键是i那你就无法存一张表中了,得分两张表,一张表存i,另一张存时机内容,len->1映射到你的i表。其实不一定要主键i,你存一张表,有个字段是i就行,然后你可以通过i一次检索出i的子数组

我是提问的人

问题现在修改如下:

下面的程序在编译时是没有错的,在我J2ME客户端访问这个方法时错了

唯一的可能就是把数据存入二维数组时存储不正确了

开了3个帖子,没人能回答正确,小弟真的很急,各位英雄,各位大哥大姐,如果懂的,请帮个忙认真看下好吗

本来想控制台输出察看的,可后来想想客户端没请求,怎么察看,servlet类作为表示层的怎么察看,种种迷惑都很不解

现在数据库的结构是这样的

景区表:scene

字段 id 数字(整型) name 文本

景点表:scenery

字段 id 自动编号 scene 数字(整型) name 文本 其他字段...

现在我要把景区放在一维,景点放在二维

个位帮忙看下,以下数据存储格式哪里错了,或者全错,那能给个方法吗,希望大家帮个忙,我万分感谢!

public Scenery[][] getSceneries()throws ModelException, ApplicationException{

Connection conn=null

Statement stmt=null

ResultSet rs=null

try{

String drname="sun.jdbc.odbc.JdbcOdbcDriver"

Class.forName(drname)

String url="jdbc:odbc:guidesys"

conn=DriverManager.getConnection(url)

stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE)

String sql="select * from scene"

rs=stmt.executeQuery(sql)

rs.last()

Scenery[][] sceneries=new Scenery[rs.getRow()][]

rs.beforeFirst()

int i=0

while(rs.next()){

Statement stmts=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)

ResultSet rses=stmts.executeQuery("select * from scenery where scenery.scene="+rs.getInt(1)+"")

rses.last()

sceneries[i]=new Scenery[rses.getRow()]

rses.beforeFirst()

int j=0

while(rses.next()){

System.out.println(rses.getString(3))

sceneries[i][j]=new Scenery(rs.getString(2),rses.getString(3),rses.getString(4),rses.getString(5),rses.getString(6),rses.getString(7))

j++

}

rses.close()

stmts.close()

i++

}

rs.close()

stmt.close()

conn.close()

return sceneries

}catch(Exception e){

throw new ModelException(ModelException.CAUSE_SNACKS_NOT_FIND)

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6924072.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-30
下一篇 2023-03-30

发表评论

登录后才能评论

评论列表(0条)

保存