Tag: sql

从H2数据库中的大表中选择随机行

我的数据库中有一个大表(可能有数百万条记录),我需要选择#X随机行(假设#X在10到50之间),但我需要这个查询尽可能最佳。 该表如下所示: CREATE TABLE sample ( id bigint auto_increment PRIMARY KEY, user_id bigint NOT NULL, screen_name VARCHAR NOT NULL, … ); 我四处搜寻,发现这样的答案: SELECT * FROM sample ORDER BY RAND() limit X. 但它在我看来,这将获取整个表然后排序,不是吗? 我认为最好生成10或50个随机整数,然后select * from sample where rowid in () 。 但afaik,在H2中缺少rowid概念,所以我可以选择在我的表中使用ID列。 如果我可以使用单个SQL查询执行此任务,那将是非常棒的。 有什么好建议吗?

Hibernate Criteria查询:获取具有m..n关系的对象列表,其中子表没有特定属性

我有以下表格 CREATE TABLE “COMPANIES” ( “ID” NUMBER NOT NULL , “NAME” VARCHAR2 (100) NOT NULL UNIQUE ) / CREATE TABLE “COMPANIESROLES” ( “ID” NUMBER NOT NULL , “COMPANYID” NUMBER NOT NULL , “ROLENAME” VARCHAR2 (30) NOT NULL ) / CREATE TABLE “ROLES” ( “NAME” VARCHAR2 (30) NOT NULL ) / 这种结构代表了许多公司以及每家公司所允许的角色。 对于这些表,有相应的Hibernate对象: public class Company […]

java.sql.SQLException:ORA-01843:不是有效月份

将数据插入我的oracle数据库时出现以下错误。 java.sql.SQLException: ORA-01843: not a valid month 在数据库中日期为:dd-MMM-yy(06-MAR-12) 我通过以下方法将06-03-2012转换为dd-MMM-yy: String s=”06-03-2012″; String finalexampledt = new SimpleDateFormat(“dd-MMM-yy”).format(new SimpleDateFormat(“dd-MM-yyyy”).parse(s)); 所以我得到了06年3月12日,这与上面的数据库日期格式相同,但我仍然得到错误。 我插入为: 在index.jsp中 String todaydate=””; Calendar calendar1 = Calendar.getInstance(); SimpleDateFormat dateFormat = new SimpleDateFormat(“dd-MM-yyyy”); todaydate = dateFormat.format(calendar1.getTime()); <input type="text" name="datename" value="”/> 在servlet中(doPost) String s=request.getParameter(“datename”); PreparedStatement ps=con.prepareStatement(“insert into tablename(rest_dt, othercolname) values (to_date(?, ‘dd-mm-yyyy’), ?)”); ps.setString(1, s); ps.setString(2, otherstringdata); int […]

使用JdbcBatchItemWriter更新重复键

spring批量为我的项目,我只是尝试从csv文件读取并将数据加载到数据库,使用JdbcBatchItemWriter作为编写器。 我正在寻找一种方法来告诉编写器插入一个新行,但是,在重复键(或重​​复的唯一标识符)更新行而不是失败。 我知道我可以直接在sql语句中执行此操作,但这将特定于Mysql,但我希望我的代码与DBMS无关。 这是我在java配置中的编写器声明 @Bean @StepScope public ItemWriter writerHeadingCollectionsToDb(DataSource datasource) { String sqlStatement = “INSERT INTO abcd(id, first_name, last_name, phone_number” + “VALUES (:id, :firstName, :lastName, :phoneNumber)”; JdbcBatchItemWriter itemWriter = new JdbcBatchItemWriter(); itemWriter.setSql(sqlStatement ); itemWriter.setDataSource(dataSource); itemWriter.setItemSqlParameterSourceProvider(new BeanPropertyItemSqlParameterSourceProvider()); return itemWriter; } 在此先感谢您的帮助

jOOQ – 用于插入的多字段

我想表达以下INSERT语句: context.insertInto(TABLE A) .set(, context.select(FIELD A, FIELD B).from(B).where(…)) .set(… other field of table A …) .set(… other field of table A …) .set(… other field of table A …) .returning() .fetch() 子选择返回一行,其中两列( FIELD A和FIELD B )需要插入目标TABLE A 。 其原因是是TABLE B的主键。 TABLE A TABLE B (外键)。 这可能吗?

Android SQLite Columns …不是唯一的

我在android上使用SQLite并且收到此错误 02-11 18:05:37.224: E/SQLiteDatabase(26583): android.database.sqlite.SQLiteConstraintException: columns name, foreign_word are not unique (code 19) 但是,在调用onUpgrade()之后立即调用它,因此数据库本身应该没有任何内容。 这是使用的SQL语句: private static final String CREATE_DB_TB_2 = “CREATE TABLE ” + TABLE_VOCAB_WORDS + “(” + COLUMN_NAME + ” TEXT NOT NULL,” + COLUMN_WORD_FOREIGN + ” TEXT NOT NULL,” + COLUMN_WORD_ENGLISH + ” TEXT NOT NULL,” + COLUMN_CORRECT + ” BYTE NOT […]

将SqlCipher与Android应用程序集成(在Windows上)

我不太了解以下文档: http : //sqlcipher.net/sqlcipher-for-android/ 我应该做什么,步骤是什么? 看起来这些说明只属于MAC用户,我的操作系统是Windows 7。 谁能告诉我,我该怎么办? 二进制文件包含“libs”和“assets”文件夹。 如何将这些function集成到现有应用中?

如何在数据库中建模(Java)枚举(使用SQL92)

您正在使用名为“Gender”的列为实体建模。 在应用程序代码中,性别应该是(Java)枚举类型,具有2个值(MALE和FEMALE)..如何将其建模,知道Enums as Datatype不是通用SQL(语言)的一部分92 。 数据模型必须是可移植的,以便被几个DBMS(Mysql,Oracle,Derby)和几个持久性提供程序(JPA,Hibernate,JDBC)使用。 我觉得,它达到了两个级别: – 首先是Schema和实体的级别(将枚举存储为-VAR-CHAR或INT) – 第二个应用程序代码的级别(JDBC不支持枚举,JPA但是这取决于实施) 是否存在通用解决方案,例如适用于Mysql DBMS? 谢谢 !!

使用ibatis将HashMap值插入表中

我在http://old.nabble.com/insert-statement-td21157498.html上找到了这个。我想做同样的事情。我的表中有两列。我可以通过映射hashmap键来插入哈希映射值到列名。现在我想把键值对放在表中,而不管键名。 从上面的链接粘贴。 我想编写一个动态插入语句,但字段和值都是动态的。 我的意思是 insert into table_one ( !!! dynamic list of keys from the HashMap ) values ( !!! values );

我的代码中的内存不足exception

我正在运行代码长时间作为Oracle数据库压力测试的一部分并使用java版本“1.4.2”。 简而言之,我所做的是: while(true) { Allocating some memory as a blob byte[] data = new byte[1000]; stmt = fConnection.prepareStatement(query); // [compiling an insert query which uses the above blob] stmt.execute(); // I insert this blob-row in the database. stmt.close(); } 现在我想运行这个测试8-10小时。 然而,显然在插入大约1500万条记录后,我点击了java.lang.OutOfMemoryError 我用-Xms512m -Xmx2g运行它。 我尝试使用更高的值,但我似乎没有那么多的硬件,我认为它不是req: java -Xms512m -Xmx4g -jar XX.jar Invalid maximum heap size: -Xmx4g The […]