Tag: sql

如何在SQL查询中传递List

我有值(例如1, 2, 3 ),我想将该列表传递给SQL查询: “select name from tbl where id in” + list 我怎么能实现这个目标?

如何在Java中打印Statement(CallableStatement)?

如何打印此OracleCallableStatement? ocstmt = (OracleCallableStatement) connection.prepareCall(“{?= call package.method(id => ?, name=>?)}”); ocstmt.registerOutParameter(1, OracleTypes.CURSOR); ocstmt.setInt(2, obj.getId()); ocstmt.setString(3, obj.getName()); ocstmt.execute(); resultSet = ocstmt.getCursor(1); 我的意思是我怎么知道什么查询进入数据库,我该如何打印查询? 因为有时它会给我一些错误,比如“错误的类型”,这就是为什么我要查看这个查询

Hibernate 5.2版 – >很多Query方法都弃用了?

我是Hibernate的新手。 我正在尝试获取所有管理员的名字和姓氏列表。 我的以下代码中有两个警告。 我已经尝试在线搜索了很多。 1)查询是原始类型。 应该参数化对generics类型Query的引用。 2)不推荐使用Query类型的方法list()。 public List loadAllAdmins() { List allAdmins = new ArrayList(); try { HibernateUtil.beginTransaction(); Query q = currentSession.createQuery(“SELECT admin.firstName, admin.lastName from AdminBean admin”); allAdmins= q.list(); HibernateUtil.commitTransaction(); } catch (HibernateException ex) { System.out.println(“List loadAllPersons: HibernateException”); } return allAdmins; } 但我在整个网络上都看到了这样的示例代码。 我该如何解决这两个问题? 更新 我只是尝试按照建议使用Criteria。 它还说,对于Criteria,list()方法是弃用的……看起来很多方法都被弃用了Query和Criteria,包括uniqueResult()和其他…任何建议我应该如何替换它们?

在HSQLDB 2.0.0-rc8中选择下一个序列值的“正确”方法

假设我有一个名为TEST_SEQ的序列,那么选择下一个值的正确方法是什么? 这不起作用: select next value for TEST_SEQ 可能是因为它需要一个“FROM”子句。 在hibernate中查看HSQLDialect.getSequenceNextValString()我看到了这个: “select next value for ” + sequenceName + ” from dual_” + sequenceName 在我的情况下会导致类似于: select next value for TEST_SEQ from dual_TEST_SEQ 哪个不适用于2.0.0-rc8(我只假设它适用于2.0之前的版本 – 尚未validation)我遇到了一个解决方案,涉及创建一个简单的表,其中包含一行称为DUAL,在这种情况下,这将起作用(甲骨文风格): select next value for TEST_SEQ from DUAL 但hsqldb没有开箱即用的这个表,我不知道如何在“第一次启动”时生成这样的表来进行hibernate。 我认为必须有一种方法来获得开箱即用的序列的下一个值,我只是错过它。 有任何想法吗 ?

MyBatis 3 – 从mapper获取SQL字符串

我想仅使用MyBatis3来生成SQL字符串(使用xml映射),但我获得的SQL无效。 例如,我获取了sql字符串: SELECT * FROM USER WHERE NAME = john 在这个sql中不存在‘ char sorrounding string value john 在mybatis.xml中 : … … sql1.xml SELECT * FROM USERS WHERE name LIKE ${name} AND num = ${number} 在MyBatisSql.java中 : SqlSessionFactory sessionFactory = ConnectionFactory.getSqlSessionFactory(); Configuration configuration = sessionFactory.getConfiguration(); Map pars = new HashMap(); pars.put(“name”, “john”); pars.put(“number”, 1345); MappedStatement ms = […]

如何让Hibernate基于DDL / SQL脚本创建表?

我有一个包含CREATE TABLE命令的sql / ddl脚本。 我使用hibernate,我希望hibernate执行此脚本来创建数据库结构。 这个怎么做?

在Microsoft sql server中连接/附加不同的表

Hai我在MS SQL SERVER的数据库中有3个不同的表。 LAB_patientreg patient_master patient_address 该LAB_patientreg和patient_master是包含患者详细信息的两个表(两个表中的患者不同, LAB_patientreg是关于直接在实验室注册的患者的表,而患者_master是关于在患者或患者在接待处登记到医院的患者 )和patient_address是包含在表patient_master中登记的患者的地址的表。 在某些情况下,我需要所有患者的数据,包括LAB_patientreg和patient_master以及patient_address 。 我的目的是创建一个视图,其中包含此表中的所有值(即,如果patient_master有50行, LAB_patientreg有32行,结果视图应该是82行),并且列的数量和类型仅限于LAB_patientreg的数量和类型但它不起作用,是否有可能像我说的那样创建一个视图? 如果不是我该怎么做才能获得这样的观点? 在此先感谢帮助我。 表的结构如下, patient_master CREATE TABLE [dbo].[patient_master]( [pid] [int] IDENTITY(1,1) NOT NULL, [date_created] [date] NULL, [title] [varchar](25) NULL, [fname] [varchar](255) NULL, [mname] [varchar](255) NULL, [lname] [varchar](255) NULL, [addr_id] [int] NULL, [sex] [char](1) NULL, [dob] [date] NULL, [dobType] [tinyint] NULL, [marital_status] [int] NULL, […]

如何以编程方式从没有数据库的自定义数据创建Java ResultSet

我有一些现有的代码接受包含从Oracle数据库检索的信息的java.sql.ResultSet 。 我现在想重用这段代码,但我想传递一个ResultSet对象,我自己从一些与任何数据库无关的内存数据创建。 是否存在可用于此的现有Java框架类? ResultSet有很多方法,所以实现我自己的类似乎有点矫枉过正,尽管我可以忽略大多数方法来解决我的具体情况。 我正在考虑旧的Microsoft ADO记录集对象的内容,我可以在其中创建字段,然后填充每个字段的行数据。 这看起来像是一个容易混淆的问题,但我一直无法找到任何好的指针。

如何获取数据库的realative路径?

我正在开发一个jframe,通过使用textfields和all来将一些数据存储在数据库中。 我有以下数据库连接代码。 我正在使用sqlite数据库。 **Connectdatabase.java** /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package shreesai; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import javax.swing.JOptionPane; /** * * @author DeepRocks */ public class Connectdatabase { Connection con = null; public static Connection ConnecrDb(){ try{ Class.forName(“org.sqlite.JDBC”); Connection con […]

在Java中处理丑陋的SQL

这是一个SQL-Java编码风格的问题…… 这里的其他人如何处理用Java创建复杂的自定义查询? 我说的是一个看似简单的准备字符串的任务,这是要执行的SQL语句。 我知道HQL以及存储过程,但说实话,我并不喜欢这些解决方案。 也许我可以说服不同。 存储过程对于部署/维护很烦人,在我的情况下解析性能不是一个大问题 – 灵活性优先。 HQL似乎是一个很大的飞跃,并且对我的复杂查询有一些限制。 要清楚,我说的是像这样的超丑看代码: return “(” + topTwenty + “)” + “UNION ” + “(” + twentyBeforeMe + “)” + “UNION ” + “(” + meDummyQuery + “)” + “UNION ” + “(” + twentyAfterMe + “)”; 例如,变量topTwenty也是类似地创建的子查询。 我从来没有想过我会说这个,但它在PHP中更干净,它有多行字符串和$变量嵌入字符串。 人们有没有使用过琐碎的模板库? 你如何整齐地保持程序中的字符串? 或者你把它们放在一个单独的文件中(似乎对我来说似乎很烦人)。