请教:java 线程中队数据库进行操作,程序返回值显示成功,单实际未成功

问题描述:
近些天公司要让我完成一个导数的模块。我写了一个导数的类AssetImpThread 实现了 Runnable接口。
类有一个 初始化方法 init() 调用了 一个利用 jndi连接对数据进行操作的类.

我已经 对 进行数据库操作的类进行了测试(main方法中 建立一个jndi的连接),数据库操作类正常运行。
然后我对线程进行测试,奇怪的事情发生了,
测试类的main() 方法中建立数据库连接, 启动线程,调用线程的init()方法,对数据进行操作。

利用 PreparedStatement 进行插入操作的时候,返回值为1(插入了一条数据),返回值正确。
但是实际没有插入值,我经过多次测试都是这样。

而且我这是循环插入,每插入一条,都会再次去取到 本表的 已有数据的数量。
插入过程中 数量是增加的。
但是实际中没有插入数据。

可能要显示的调用commit来提交事务。另外lz有没有考虑过线程同步的问题,及数据库的事务管理?

是不是没提交事务。

数据库事务么就是开始事务、提交事务、回滚事务。如果不提交的话,数据库是不会更新的,所有的修改只是在缓存中。