从java程序中向oracle中插入数据,为啥插入顺序总是不对

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从java程序中向oracle中插入数据,为啥插入顺序总是不对相关的知识,希望对你有一定的参考价值。

做了一个售票系统,后台要设计向数据库中插入新加的列车车次,在数据中每个列车车次是一张独立的表。车次中要包括所经过的站点以及相应的信息(包括到达时间、离开时间、在每个站点所停留的时间、以及各个等级的票价等信息),每个站点以及对应的这些信息构成相应车次中的一条记录。现在我在程序中向相应的列车表中插入数据时,总是会出现顺序不对的现象。例如:我在程序中创建了一张JTable,在这个JTable的每行中依次插入了上海、苏州、南京、镇江、信阳等这些站点信息,后调用statement的executeUpdate方法进行插入,在插入的同时将插入的站点信息打印到控制台上。结果在控制台上的输出顺序和我在JTable中添加的顺序完全一样,不论怎么该都可以对应,但是往数据表中插入的顺序就没有一点规律可循,相同的顺序执行两次,结果在数据表中的顺序都可能不相同。为什么?知道的给分析一下、谢了、、部分代码、、
for (int i = 0; i < rowCount; i++) //rowCount为创建的JTable的总行数
String sql2 = "insert into " + trainNo + " values ('"//trainNo为要插入信息的表名
+ (String)tableModel.getValueAt(i, 1) + "', '" + trainNo
+ "', '" + (String)tableModel.getValueAt(i, 3) + "', '"
+ (String)tableModel.getValueAt(i, 4) + "', '"
+ (String)tableModel.getValueAt(i, 5) + "', '"//获取相应单元格中的内容
+ (String)tableModel.getValueAt(i, 6) + "', '"
+ (String)tableModel.getValueAt(i, 7) + "', '"
+ (String)tableModel.getValueAt(i, 8) + "', '"
+ (String)tableModel.getValueAt(i, 9) + "', '"
+ (String)tableModel.getValueAt(i, 10) + "', '"
+ (String)tableModel.getValueAt(i, 11) + "', '"
+ (String)tableModel.getValueAt(i, 12) + "', '"
+ (String)tableModel.getValueAt(i, 13) + "', '"
+ (String)tableModel.getValueAt(i, 14) + "', '"
+ (String)tableModel.getValueAt(i, 15) + "', '"
+ (String)tableModel.getValueAt(i, 16) + "', '"
+ (String)tableModel.getValueAt(i, 17) + "')";
JDBCTool db2 = new JDBCTool();
db2.query(sql2);
db2.close();
System.out.println(sql2);

谢谢了、、
申明一点:JDBCTool是创建的一个工具类,在其中可以进行数据库的连接等操作,其中包含一个query方法,作用是用statement.executeUpdate(sql)向数据库发送sql语句。

如果没有要求排序,oracle会顺序的从数据块中读取符合条件的数据返回到客户端,不过看起来好像是按照rowid排序似的 参考技术A 你在数据库中查询时是按什么条件查的select * from table order by rowid 这样试试。 参考技术B select的时候加一个排序条件看看

以上是关于从java程序中向oracle中插入数据,为啥插入顺序总是不对的主要内容,如果未能解决你的问题,请参考以下文章

如何从视图中向表中插入值

如何提高数据库数据更新速率

使用java获取插入行到Oracle

如何使用oracle程序将数据从多个表中插入一个表中

oracle用sql语句插入数据,为啥老是显示正在运行

带有 MySQL 的 NodeJS - 从数组中向 SQL 插入多行的最佳方法 [重复]