Tag: sql

Jooq在生成的查询中动态更改db的架构

我在简单的数据库中有2个类似的模式 – “develop”和“stage”。 我已经使用Jooq为其中一个模式生成了Java类(例如“develop”)。 当jooq为db生成查询时,它会隐式地将模式的名称添加到所有查询的别名中 select “develop”.”image”.”id”, “develop”.”image”.”image_data” from “develop”.”image” where “develop”.”image”.”id” = ? 所以我的问题是,是否有办法在生成的查询中更改jooq模式名称(对于“stage”作为示例)而不重新生成jooq的“stage”模式类?

获取从中触发SQL查询的包的名称?

我在webapp中使用jdbcdslog和log4j日志引擎。 我能够记录执行的SQL查询。 我想知道如何获取从中触发查询的包的名称。 这样我就可以分离出日志信息,并通过查看日志知道查询的位置,而不是通过代码。 我尝试使用Log4j的PatternLayout中的%C参数来获取此处提到的包名称 但我得到的输出是 2013-07-30-main–INFO -org.jdbcdslog.StatementLogger:java.sql.Statement.executeQuery: SELECT id, first, last, age FROM Employees; 如您所见,记录了SQL查询,但它给出的类是org.jdbcdslog.StatementLogger。 这不是我们想要的,因为我想从查询被激活的类的名称。 我在Log4j.properties文件中使用以下设置 log4j.appender.S.layout.ConversionPattern=%d{yyyy-MM-dd}-%t-%x-%-5p-%C:%m%n 这是因为jdbcdslog包装了与JDBC驱动程序的连接。 我想知道如何获取触发查询的类的名称。

hibernate native查询,count

可能重复: 我们如何使用Hibernate计算行数? 我希望按数据库中的条件计算记录数。 我尝试使用下一个查询 String queryString = “SELECT Count(*) FROM my_table”; Query query = entityManager.createNativeQuery(queryString); 但是没有方法来执行此Query query并获得结果。 我知道,我可以使用记录来计算记录 String queryString = “SELECT * FROM my_table”; Query query = entityManager.createNativeQuery(queryString); query.getResultList().size(); 所以问题是,使用Count(*)查询更多性能,如果yes ,那么如何使用Count(*)执行查询?

如何使用java将当前日期和时间保存到数据库?

我使用以下代码来获取当前日期和时间,但输出不是我所期望的,我不能将其保存到数据库中。 输出>>当前:Tue Mar 05 09:58:26 2013 预期产量>>当前:2013-03-05 9:58:26 …..{ SimpleDateFormat dateFormat = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”); SimpleDateFormat parseFormat = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”); Date date = new Date(); try { System.out.println(“current: ” +parseFormat.parse(dateFormat.format(date))); return parseFormat.parse(dateFormat.format(date)); } catch (ParseException ex) { Logger.getLogger(ConstructionModel.class.getName()).log(Level.SEVERE, null, ex); } return date; } …… ps.setDate(….) <<< failed 数据库 name type mydate Date

java sqlexception没有找到合适的驱动程序

我使用.properties文件来包含EJB的SQLServer连接字符串。 Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”).newInstance(); conn = DriverManager.getConnection(url, USER_NAME, USER_PW); getSelectData(); conn.close(); } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (SQLException sqe){ sqe.printStackTrace(); } 它抛出这个: 令人抓狂的是,如果我对连接字符串进行硬编码而不是从属性文件中获取它,它可以正常工作。 [#|2011-03-23T19:24:35.718-0400|SEVERE|oracle-glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=35;_ThreadName=p: thread-pool-1; w: 9;|java.sql.SQLException: No suitable […]

org.postgresql.util.PSQLException:错误:语法错误在或附近“(”

我曾经发过一个Web应用程序,可以通过maven eclipse在Heroku上部署。 Group Id:org.glassfish.jersey.archetypes 工件ID:jersey-heroku-webapp 版本:2.17 我测试了localhost和POSTMAN上的应用POSTMAN ,它运行正常。 我将它推送到heroku以在servlet容器上测试它,但我得到520 OK 520它只是我在SQLEXCEPTION中返回的数字。 在Heroku日志中我发现了这个错误: 2015-05-13T13:10:37.364388+00:00 app[web.1]: at java.lang.Thread.run(Thread.j ava:745) 2015-05-13T13:10:37.389547+00:00 app[web.1]: org.postgresql.util.PSQLException: ERROR: syntax error at or near “(” 2015-05-13T13:10:37.389560+00:00 app[web.1]: Position: 45 2015-05-13T13:10:37.389740+00:00 app[web.1]: at org.postgresql.core.v3.QueryE xecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2102) 数据库类: public class Database { public Database() { } public void drivercConnection() { try { Class.forName(“com.mysql.jdbc.Driver”); System.out.println(“jar works 🙂 […]

线程“main”中的exceptionorg.hibernate.MappingException:未知实体

在PluralSight上阅读“Hibernate简介”教程。 我有这个exception错误。 完整的错误是: Exception in thread “main” org.hibernate.MappingException: Unknown entity: com.simpleprogrammer.User at org.hibernate.internal.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:776) at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1451) at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:100) at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:192) at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:38) at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:177) at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32) at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:73) at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:678) at org.hibernate.internal.SessionImpl.save(SessionImpl.java:670) at org.hibernate.internal.SessionImpl.save(SessionImpl.java:665) at com.simpleprogrammer.Program.main(Program.java:15) 不确定是什么问题。 我创建了User.java pojo。 我创建了一个与pojo匹配的表。 我创建了映射,然后将映射添加到hibernate.cfg.xml文件中。 但是,仍然得到错误。 谁能帮我解决这个问题? 的hibernate.cfg.xml com.mysql.jdbc.Driver jdbc:mysql://localhost:3306 root protein_tracker org.hibernate.dialect.MySQLDialect Program.java public class Program { public static […]

为什么Solr不会这样呢?

我需要对日期字段类型进行排序,其名称为“mod_date”。 它在浏览器地址栏中的工作方式如下: http://localhost:8983/solr/select/?&q=bmw&sort=mod_date+desc 但我使用的是一个phpSolr客户端,它向Solr发送一个URL,发送的URL是: fq=+category%3A%22Bilar%22+%2B+car_action%3AS%C3%A4ljes&version=1.2&wt=json&json.nl=map&q=%2A%3A%2A&start=0&rows=5&sort=mod_date+desc // This wont work and is echoed after this in php: $queryString = http_build_query($params, null, $this->_queryStringDelimiter); $queryString = preg_replace(‘/%5B(?:[0-9]|[1-9][0-9]+)%5D=/’, ‘=’, $queryString); 这不行,我不知道为什么! 其他一切正常,返回所有正确的字段。 但这种方法不起作用。 有任何想法吗? 谢谢 BTW:字段“mod_date”包含以下内容: 2010-03-04T19:37:22.5Z 编辑: 首先,我使用PHP将其发送到SolrPhpClient,这是另一个名为service.php的php文件: require_once(‘../SolrPhpClient/Apache/Solr/Service.php’); $solr = new Apache_Solr_Service(‘localhost’, 8983, ‘/solr/’); $results = $solr->search($querystring, $p, $limit, $solr_params); $ solr_params是一个包含solr-parameters(q,fq等)的数组。 现在,在service.php中: $params[‘version’] = self::SOLR_VERSION; // […]

Java – Hibernateexception – 无法映射反馈

我是Hibernate的新手。 最近,我尝试使用Spring和Hibernate将我的UI与数据库连接起来的简单示例。 我能够成功调用一个方法来通过我的控制器,服务等使用REST获取数据。 但每当我运行应用程序时,我遇到以下错误。 这里“ 反馈 ”是数据库中表的名称以及我的Pojo Java类的相同名称。 注意:为表和Java类赋予不同的名称也会导致相同的错误。 org.springframework.orm.hibernate3.HibernateQueryException:反馈未映射[来自反馈]; 嵌套exception是org.hibernate.hql.ast.QuerySyntaxException:反馈未映射[来自反馈] Java Pojo: – import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name=”Feedback”) public class Feedback { private int id; private String title; private String content; private String name; @Id @GeneratedValue @Column(name=”id”) public int getId() { return id; } public void setId(int […]

将HSQLDB与SQL Maven插件和jOOQ一起使用

这是一个类似的问题,如使用Flyway的嵌入式数据库和Maven中的jOOQ进行持续集成 ,尽管与我们使用的是sql-maven-plugin并不完全相同,而不是Flyway。 以下Maven插件配置失败: SQL-Maven的插件 org.codehaus.mojo sql-maven-plugin 1.5 create-database generate-sources execute ${db.driver} ${db.url} ${db.username} ${db.password} src/main/resources/sql/create-db.sql org.hsqldb hsqldb ${hsqldb.version} jooq-CODEGEN,行家 org.jooq jooq-codegen-maven ${jooq.version} generate-hsqldb generate-sources generate ${db.driver} ${db.url} ${db.username} ${db.password} PUBLIC com.example.db target/generated-sources/jooq-hsqldb 错误是: java.sql.SQLException: Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@cc76d81d[file =C:\Users\Lukas\example.db.lck, exists=true, locked=false, valid=false, ] method: checkHeartbeat read: 2015-10-14 10:49:15 heartbeat – read: -9975 ms. […]