Tag: 数据库

SimpleJdbcCall忽略JdbcTemplate获取大小

我们通过Spring SimpleJdbcCall调用pl / sql存储过程,SimpleJdbcCall忽略了JdbcTemplate上的fetchsize设置。 尽管我们已将jdbctemplate fetchsize设置为200,但rowmapper结果集获取大小设置为10.请知道为什么会发生这种情况以及如何解决它? 在下面的代码片段中的rowmapper中打印了结果集的fetchsize – 一旦它是200而其他时间它是10,即使我在两个occassion上都使用相同的JdbcTemplate。 通过jdbctemplate直接执行会在行映射器中返回200的fetchsize jdbcTemplate = new JdbcTemplate(ds); jdbcTemplate.setResultsMapCaseInsensitive(true); jdbcTemplate.setFetchSize(200); List temp = jdbcTemplate.query(“select 1 from dual”, new ParameterizedRowMapper() { public Object mapRow(ResultSet resultSet, int i) throws SQLException { System.out.println(“Direct template : ” + resultSet.getFetchSize()); return new String(resultSet.getString(1)); } }); 通过SimpleJdbcCall执行此操作始终在rowmapper中返回10的fetchsize jdbcCall = new SimpleJdbcCall(jdbcTemplate).withSchemaName(schemaName) .withCatalogName(catalogName).withProcedureName(functionName); jdbcCall.returningResultSet((String) outItValues.next(), new […]

Java,代码生成和持久性框架

是否有任何Java代码生成持久性框架? 首先是“数据库优先”而不是对象模型? 我知道这可能是Java世界中的异端,我只想知道是否存在这样的框架。 这些天我更像是一个.NET人。 因此,想到.NET Tiers或CSLA等.NET端工具。

使用来自相同表注释的两个外键来hibernate

我正在尝试设计一个酒店应用程序。 我有两个表作为User和Request 。 用户可以是Host或Visitor ,可以互相发送主机请求。 但是没有必要将用户定义为访问者或主机,这对系统来说无关紧要,因此我没有单独的表格。 这种差异在Request表中非常重要,需要将visitor_id和visitor_id保持为外键(使用User表中的user_id主键列映射,因为主机和访问者都是User)。 我的问题是如何在Hibernate中使用Annotation定义这种关系? 我的意思是,Request表中应该有两个外键,它们被映射到User表中的* user_id *主键列。 每个用户可以多次成为主持人或访问者,并且不会发出任何请求。 @Entity public class Request { @Id private Long req_id; …. }

每个“容器”类一个DAO或每个表一个DAO?

我有一个’容器’类,其中的字段包含在几个数据库表中,我使用DAO模式来访问数据。 问题是,我应该为这个“容器”类创建一个DAO,还是每个表有一个DAO并合并它们的数据更好?

从数据库处理空字符串的最佳实践(在Java中)

在我的数据库应用程序中,我有时必须处理数据库中的null字符串。 在大多数情况下这很好,但是当它以一种forms显示数据时,Swing组件 – 例如使用JTextField – 无法处理空字符串。 ( .setText(null)失败) ( 编辑:我刚刚注意到JTextField实际上接受了一个null字符串,但问题仍然存在于意外的null值可能导致问题的所有其他情况。) 空值没有特殊含义,它们可以(必须)被视为空字符串。 处理这个问题的最佳做法是什么? 不幸的是我无法更改数据库 。 在调用setText()之前检查每个值是否为null ? 为每个setText()调用添加一个try-catch处理程序? 介绍一个过滤所有null字符串的静态方法? 从数据库中读取后立即将所有null值替换为空字符串? … [你的建议]

在URL中公开DB内部ID是不好的做法吗?

在URL中公开DB内部ID是不好的做法吗? 例如,假设我有一个users表,每行有一些ID(主键)。 暴露URL myapp.com/accountInfo.html?userId=5 ,其中5是实际主键,被视为“坏事”,为什么? 还假设我们正确防御SQL注入。 我最感兴趣的是与Java Web技术堆栈相关的答案(因此是java标签),但一般的答案也会非常有用。 谢谢。

Realm.io notifications – 如何只监听某些表中的更改?

我在realm java文档中看到了这个示例代码。 public class MyActivity extends Activity { private Realm realm; // A reference to RealmChangeListener needs to be held to avoid being // removed by the garbage collector. private RealmChangeListener realmListener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); realm = Realm.getDefaultInstance(); reamlListener = new RealmChangeListener() { @Override public void onChange() { // … do […]

如何升级使用ORM工具构建的数据库模式?

我正在寻找使用ORM工具升级数据库模式的通用解决方案,如JPOX或Hibernate。 你是如何在你的项目中做到的? 我想到的第一个解决方案是创建自己的升级数据库机制,SQL脚本完成所有工作。 但在这种情况下,我必须记住每次更新对象映射时都要创建新脚本。 而且我仍然需要处理低级SQL查询,而不仅仅是定义映射并允许ORM工具完成所有工作…… 所以问题是如何正确地做到这一点。 也许有些工具可以简化这项任务(例如,我听说Rails内置了这样的机制),如果是这样,请帮我决定为我的下一个Java项目选择哪种ORM工具。

使用Java .jar文件提供数据库?

我想创建一个程序,用户只需运行.jar文件即可运行。 我希望这个程序能够访问数据库,该数据库在首次下载程序时预先填充了一些数据,并且当用户使用它时,会向数据库添加更多数据。 数据库应本地存储在用户的计算机上。 我最好的选择是什么? 我应该使用哪个数据库引擎,以及我需要做些什么才能使用户在安装应用程序时不必设置数据库,它将预先填充.jar文件?

java.sql.SQLException:Ioexception:由peer重置连接:套接字写入错误

我正在使用oracle 11g,hibernate 3和jsf2.I在was7.上部署了我的应用程序。每件事情都顺利但是当我尝试在5-6小时后登录时它会给我错误 ERROR org.hibernate.util.JDBCExceptionReporter – Io exception: Connection reset by peer: socket write error [5/28/13 11:31:25:048 IST] 00000024 SystemErr R org.hibernate.exception.GenericJDBCException: could not execute query at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126) at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) at org.hibernate.loader.Loader.doList(Loader.java:2231) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2125) at org.hibernate.loader.Loader.list(Loader.java:2120) at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401) at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:361) at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1148) at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102) 我无法找出这个错误如何解决。请帮助我。谢谢。 现在我已经通过代码解决了这个问题,但我不知道这是否正确。你会建议我,我应该继续这个解决方案。 public class ApplicationUtilityBean implements Serializable […]