Tag: 数据库

Java PreparedStatement和ON DUPLICATE KEY UPDATE:如何知道是否插入或更新了行?

有下面的代码,我怎么知道execute()方法是否导致插入或更新?: Connection c = DriverManager.getConnection(connectionString); PreparedStatement st = c.prepareStatement(“INSERT INTO `table`(`field1`) VALUES (?) ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id);”); st.setString(1,”some value”); st.execute(); 提前致谢。

HSQL中缺少序列以进行测试

我有一个Oracle数据库,我必须使用序列作为主键。 这一切都很好,因为我可以控制序列号。 我的问题是我的测试。 使用Spring我创建一个HSQL数据库并对此进行测试。 通过查看我的所有实体来构建此数据库。 为了使用Oracle,我的所有实体都指定了一个序列名。 麻烦的是,当我构造HSQL数据库时,它无法找到序列(我期望)我的测试通过但是我最终在日志中有很多错误。 日志中充满了这些消息。 WARN JDBCExceptionReporter:233 – SQL Error: -5501, SQLState: 42501 ERROR JDBCExceptionReporter:234 – user lacks privilege or object not found: GENDERS_SEQ 有谁知道如何删除这些虚假错误? 我可以让HSQL忽略序列。 有趣的是,在测试中我可以插入HSQL数据库,因此它必须使用自己的内部主键生成器。 任何有关如何从日志中删除此瑕疵的想法? 谢谢

来自多个数据库的Hibernate实体

我们的数据模型在两个数据库中分为模式。 这些模式是隔离使用的,除了在两者之间桥接的一些单键关系。 没有跨两个数据库的写入事务。 与此问题类似, 使用Hibernate在不同数据库中进行2个表的连接 ,我们希望使用Hibernate来处理连接实体。 我们不能使用数据库解决方案(DB2上的联合视图)。 我们已经使用两个独立的数据库配置(Doctor和Patient)设置了Hibernate,这在使用DAO显式访问特定会话时非常有效。 当我们调用DoctorBO.getExam().getPatient()时,我们希望使用Hibernate自动检索实体DoctorBO.getExam().getPatient()其中,检查包含指向另一个数据库上Patient表的id。 我尝试这样做的一种方法是使用自定义UserType: public class DistributedUserType implements UserType, ParameterizedType { public static final String CLASS = “CLASS”; public static final String SESSION = “SESSION”; private Class returnedClass; private String session; /** {@inheritDoc} */ @Override public int[] sqlTypes() { // The column will only be the id return new […]

在Netbeans中导出Derby数据库

我有一个带有derby数据库的项目。 我希望能够进行备份或导出数据库,以便我可以将项目文件提供给我的讲师。

安全的JDBC连接

我有一个普通的Java应用程序,应该连接到数据库。 我不想在属性文件中存储数据库连接URL和用户名/密码,也不想在应用程序中对其进行硬编码。 解决这个问题的常用方法是什么? Java应用程序如何在不泄露用户名/密码的情况下连接到数据库?

如何确定获得的Java ResultSet是否为空?

Class.forName(“org.sqlite.JDBC”); Connection conn = DriverManager.getConnection(“jdbc:sqlite:userdata.db”); Statement stat = conn.createStatement(); ResultSet rs = stat.executeQuery(“SELECT * from table WHERE is_query_processed = 0;”); int rowcount = rs.getRow(); System.out.println(“Row count = “+rowcount); // output 1 rs.first(); // This statement generates an exception 为什么会这样?

如何在任何应用程序的JAR文件中绑定MySql数据库?

我准备了一个应用程序,它是学生信息操作的一个小型演示。 我在MySQL DB中存储了与学生相关的信息。 现在我的应用程序在我的计算机上100%工作。 但我希望在不依赖数据库的情况下无处不在! 我的意思是我只想要“ 无论我的.JAR文件是什么,数据库也应该与内部.JAR文件一起使用 ” 因此,任何使用我的应用程序或尝试它的人都可以实现此应用程序的确切结果。 我怎样才能做到这一点? 请有人帮帮我

一个JVM中有多个独立的H2数据库

是否可以在JVM中启动和关闭多个H2数据库? 我的目标是通过为每个用户/帐户提供自己的数据库来支持多租户 。 每个帐户的数据都很少。 账户之间的数据永远不会被一起访问,比较或分组; 每个帐户与其他帐户完全分开。 每个帐户只能每天访问一次或每月访问几次。 因此,在单个数据库中将数据存储在一起的优势很少,并且存在一些严重的缺点。 所以我的想法是,当用户登录特定帐户时,该帐户的数据库将被加载。 当该用户注销或其Web应用程序会话( Vaadin应用程序)超时时,该帐户的数据库将关闭,它的数据将刷新到存储,并可能执行备份。 这种打开和关闭将同时发生在任意数量的数据库中。 优点包括最大限度地减少任何时候使用的内存量,以缓存数据和索引,最大限度地减少锁定和其他争用,并允许平滑扩展。 我是H2的新手,所以我不确定它的架构是否可以支持这个。 我要求拒绝或确认此function,以及任何提示或警告。

android数据库

如何在Android编程中打开数据库?

Microsoft Azure和Glassfish

我遇到Azure数据库和glassfish的问题。 Azure数据库在2分钟后关闭与glassfish池的连接。 我在这里找到了解决方案,但我很难实现它。 我在哪里放这个代码? 我在哪里放这个代码的文件? if exist startup.txt goto skip time /t >> startup.txt REM Workaround for JDBC to SQL Azure REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v KeepAliveTime /t REG_DWORD /d 30000 >> startup.txt REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v KeepAliveInterval /t REG_DWORD /d 1000 >> startup.txt REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v TcpMaxDataRetransmission /t REG_DWORD /d 10 >> startup.txt shutdown […]