Tag: sql

JPA Select Count Distinct

我需要一个相对简单的查询,但JPA很难创建它。 SQL变体看起来像这样: SELECT COUNT(DISTINCT OrderID) AS DistinctOrders FROM Orders WHERE CustomerID=7; [编辑:OrderID不是主键。 可以有更多的OrderId在表中等于] 我需要使用传递给my方法的变量设置CustomerID 。 我在CriteriaQuery distinct()上找到了文档,但我似乎无法将它们全部包装在一起。 这是我到目前为止: CriteriaBuilder cb = this.em.getCriteriaBuilder(); CriteriaQuery c = cb.createQuery( Order.class ); Root order = c.from( Order.class ); Path customerID = order.get( “customerID” ); c.where( cb.equal( customerID, theId ) );

如何使用映射管理器在cassandra日期字段中存储java.sql.Date?

有人可以帮助我使用Java以yyyy-mm-dd格式将当前系统日期存储在cassandra日期列中吗? 使用MappingManager保存java.sql.Dateexception。 我的示例程序是: Test.java import com.datastax.driver.mapping.annotations.Table; import java.sql.Date; @Table(keyspace = “testing”, name = “test”) public class Test { private String uid; private Date rece; public String getUid() { return uid; } public void setUid(String uid) { this.uid = uid; } public Date getRece() { return rece; } public void setRece(Date rece) { this.rece = rece; […]

PostgreSQL – 整数最佳实践

最近在Web应用程序上工作,我决定在数据模型中使用integer []。 有2个表,一个有文章数据,另一个有标签(标签ID和描述),决定标签ID,文章将在article.tags integer []列中标记。 正如Milen A. Radev指出: 提示:数组不是集合; 搜索特定的数组元素可能是数据库错误设计的标志。 考虑为每个将成为数组元素的项使用一个单独的表。 这将更容易搜索,并且可能更好地扩展到大量元素。 不仅如此,但是必须使用JDBC和iBatis来处理整数[],我应该说“有趣”。 目前,我可以完成我必须做的工作实施。 为了简单起见,它可能会使用一个存储article.id和tag.id关系的单独表来重新工作。 最后,我很困惑的是整数[]最好用于什么语境? 我想我已经找到了最好的方法。

使用java.sql.PreparedStatement将PDF文件上传到mysql BLOB而不会损坏

我尝试使用以下代码使用java.sql.PreparedStatement将pdf文件升级为mysql Blob字段。 File inFile = new File(“Path+BLOCK.pdf”); byte[] b = new byte[(int)inFile.length()]; PreparedStatement psmnt = (PreparedStatement) con.prepareStatement(“INSERT INTO 2012DOC (SRNO,DOCUMENT) VALUES (?,?)” ); //con is java.sql.Connection object psmnt.setString(1, “1200021”); psmnt.setBytes(2, b); psmnt.executeUpdate(); 此代码执行时没有错误,数据库显示blob内容,但是当我尝试使用下面的代码检索文件时,它会提供一个无法打开的损坏文件。 ResultSet rs=con.Execute(“SELECT DOCUMENT FROM 2012DOC”); rs.next(); response.setContentType(“application/pdf”); response.setHeader(“Content-Disposition”, “attachment; filename=kjsahkjd.pdf”); java.sql.Blob blob = rs.getBlob(“DOCUMENT”); ServletOutputStream servletOutputStream = response.getOutputStream(); InputStream in = blob.getBinaryStream(); […]

如何在Hibernate中创建/调用sql视图

这是在document.hbm.xml创建的视图 DROP VIEW docView 现在如何在我的方法中调用此视图 试着像这样打电话 Session session = sessFactory.openSession(); Query query = session.createSQLQuery(“docView”); List list = query.list(); 结束了 Caused by: java.sql.SQLException: The request for procedure ‘docView’ failed because ‘docView’ is a view object. at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:368) at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2820) at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2258) at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:632) 任何想法或任何其他方式在hibernate中调用sql视图? 简而言之,有一种方式可以像存储过程那样调用view 吗? ,而不是创建一个新的实体?

带有CONTAINS查询的PreparedStatement

我有一个查询需要连续运行28 000次,所以我认为使用preparedStatement可能是一个聪明的主意。 这是我的查询: String requestWithFirstName = “SELECT SE.ELEMENT_ID, SE.LASTNAME||’ ‘||SE.FIRSTNAME AS ELEMENT, (SCORE(1)+SCORE(2))/2 AS SCORE ” + “FROM BL_SUSPICIOUS_ELEMENT SE ” + “WHERE CONTAINS(SE.LASTNAME, ‘fuzzy({‘ || ? || ‘},’ || ? || ‘,’ || ? || ‘, weight)’ , 1)>0 ” + “AND CONTAINS(SE.FIRSTNAME, ‘fuzzy({‘ || ? || ‘},’ || ? || ‘,’ || ? […]

如何使用hibernate标准连接多个表,其中实体关系不是直接的?

我有三个实体。 那些是: @Entity public class Organization { @Id private long id; @Column private String name; } @Entity public class Book { @Id private Long id; @Column private String name; @ManyToOne private Organization organization; } @Entity public class Account { @Id private Long id; @Column private String name; @ManyToOne private Book book; } 在这三个实体中,我想执行以下sql: SELECT acc.name, […]

用户未与受信任的SQL Server连接关联

我写这样的代码连接sqlserver database.i加载驱动程序类,但我没有得到连接。 Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”); System.out.println(“class Loaded”); connection = DriverManager.getConnection( “jdbc:sqlserver://10.171.160.114:2001”, “XXXXXX”, “XXXXXX”); System.out.println(“connected”); 我收到此错误“用户未与受信任的SQL Server连接相关联。”。请为此提供建议。非常感谢您的帮助。

hibernate是否支持count(*)over()

我试图阻止必须为count创建一个单独的查询,为实际查询创建一个查询。 我发现SesssionImpl :: createQuery需要相当长的时间来进行复杂的查询,通过组合count和主查询,我可以消除一个createQuery调用。 在SQL中我可以做类似的事情 select count(*) over(), col_A, col_B from TABLE_XX where col_C > 1000 这可以在hibernate中实现吗? (我试图避免使用本机sql并坚持使用HQL和分离标准。使用本机SQL会破坏使用hibernate的目的。我的系统必须同时支持Oracle和Sybase)

如何使用java变量将值插入mysql表?

您好我正在尝试将值插入到mysql表中。 我正在尝试这段代码。 我已将值赋给变量,我想将该变量传递给该insert语句。 它是否正确? code int tspent = “1”; String pid = “trng”; String tid = “2.3.4”; String rid = “tup”; String des = ” polish my shoes!”; INSERT INTO `time_entry`(pid,tid,rid,tspend,description) VALUE (‘”+pid+”‘,'”+tid+”‘,'”+rid+”‘,”+tspent+”,'”+des+”‘); 这是我尝试过的,但我无法插入值 try { conn=DBMgr.openConnection(); String sqlQuery = “INSERT INTO `time_entry`(pid,tid,rid,tspend,description) VALUE (‘”+pid+”‘,'”+tid+”‘,'”+rid+”‘,”+tspent+”,'”+des+”‘);”; st = conn.createStatement(); rs = st.executeQuery(sqlQuery); }