Tag: sql

解析器解析SQL查询并在Java中返回列名和相应的表名

可能重复: Java的SQL解析器库 我需要一个解析器,它应该返回列名称及其格式的相应表名 column_name table_name 最好是一个java库,它可以使实现更容易,因为我不想进入SQL解析的所有细微差别。 问候,

如何为SQL查询转义字符串(没有预处理语句)

我知道准备好的声明的力量,但我不能在这里使用它。 我通过HTTP而不是通过JDBC将sql查询发送到外部服务器。 如何为SQL查询转义字符串? 有办法通过JDBC做到这一点吗? 或者我应该使用自定义类/函数? ps我也连接到其他DB,所以我可以使用JDBC函数。

如何在jOOQ中避免表别名的引号

我有以下选择查询创建: final DSLContext create = DSL.using(…, SQLDialect.POSTGRES); create .select(DSL.field(“identifier”), DSL.field(“name”), create.selectCount() .from(DSL.table(“person”)) .where(DSL.field(“identifier”).eq(DSL.field(“personOuter.identifier”))) .asField(“count”)) .from(DSL.table(“person”).as(“personOuter”)) jOOQ生成以下查询: select identifier, name, (select count(*) from person where identifier = personOuter.identifier) as “count” from person as “personOuter” 查询应该是: select identifier, name, (select count(*) from person where identifier = personOuter.identifier) as “count” from person as personOuter 后一种查询在PostgreSQL中完美运行。 表别名不应该用引号括起来。 这是一个错误吗? (请注意,查询非常愚蠢。我正在玩jOOQ进行评估。) […]

找到下一个工作日

假设我在我的数据库中存储了一堆假期。 我需要做的是找出下一个工作日,不包括星期六和数据库中定义的公众假期。 例如。 假设今天是2月15日星期五,17日和18日是公共假日,在数据库中定义为datetime。 所以现在当我按下下一个工作日的按钮时,应该会在2月19日返回。 获得它的最有效方法是什么?

使用java将数据插入mySQL表

我在mySQL数据库中有一个预定义的表: 我正在努力将从用户输入的数据保存到数据库,但我似乎无法保存在数据库中的任何数据。 使用以下代码,我试图更新数据库的第一行(ID:1到OTHER 2:0)。 我究竟做错了什么? private java.sql.Connection con = null; private PreparedStatement pst = null; private ResultSet rs = null; private String url = “jdbc:mysql://localhost:8889/deliveryEarn”; private String user = “root”; private String password = “root”; try { con = DriverManager.getConnection(url, user, password); Statement st = (Statement) con.createStatement(); st.executeUpdate(“INSERT INTO incomeCalc ” + “VALUES (3, 75, […]

如何在hibernate中更新多个表?

我有mySql查询,需要将其转移到hibernate查询。 我已将简单查询转移到hibernate中。 但我很难转换“UPDATE”查询。 下面是MySql查询, StringBuilder query = new StringBuilder(); query.append(“UPDATE bus_transport.trip_calendar a ,”); query.append(“bus_transport.trip_resource_allocator b,”); query.append(“bus_transport.vehicle_calendar c ,”); query.append(“bus_transport.driver_calendar d “); query.append(“SET c.vehicle_status_code=’Available’,”); query.append(“a.route_code='” + jsonObjInside.getString(“rCode”) + “‘,”); query.append(“a.trip_from_date_time='” + finalStartDateTime + “‘,”); query.append(“a.trip_to_date_time='” + finalEndDateTime + “‘,”); query.append(“b.emp_id='” + jsonObjInside.getString(“driverId”) + “‘ ,”); query.append(“b.vehicle_id='” + jsonObjInside.getString(“vehId”) + “‘,”); query.append(“c.vehicle_id='” + jsonObjInside.getString(“vehId”)+ “‘ ,”); query.append(“d.emp_id='” […]

PreparedStatement:如何使用JDBC将数据插入多个表

有人能告诉我是否第一个stmt.close(); 以下JDBC代码中是否需要针对两个不同的表执行两个不同的SQL查询? public class MyService { private Connection connection = null; public void save(Book book) { try { Class.forName(“com.mysql.jdbc.Driver”); connection = DriverManager.getConnection(“jdbc:mysql://localhost:3306/mydb”, “root”, “password”); PreparedStatement stmt = connection.prepareStatement(“INSERT INTO PUBLISHER (CODE, PUBLISHER_NAME) VALUES (?, ?)”); stmt.setString(1, book.getPublisher().getCode()); stmt.setString(2, book.getPublisher().getName()); stmt.executeUpdate(); stmt.close(); //1 stmt = connection.prepareStatement(“INSERT INTO BOOK (ISBN, BOOK_NAME, PUBLISHER_CODE) VALUES (?, ?, ?)”); stmt.setString(1, […]

澄清Java / SQLite批处理和自动提交

我从SQLite Java库网站复制了以下示例: PreparedStatement prep = conn.prepareStatement(“insert into people values (?, ?);”); prep.setString(1, “Gandhi”); prep.setString(2, “politics”); prep.addBatch(); prep.setString(1, “Turing”); prep.setString(2, “computers”); prep.addBatch(); conn.setAutoCommit(false); prep.executeBatch(); conn.setAutoCommit(true); 我正在努力理解在executeBatch()任何一侧切换autoCommit()的重要性。 它是否仅仅阻止了对每个批处理操作的提交? 因此, setAutoCommit(true)将进行单个“批量”提交。 谢谢。

内存中的Java SQL表就像数据结构一样

有几次我想要一个类似于SQL表的数据结构,你可以在各种字段和多个字段中进行选择。 类似于内存中的SQL实现,除了我不想在数据结构中存储那么多对象。 我还要求对象可以通过标准Java方法进行序列化。 我之前已经使用多个哈希表或自定义哈希键完成了这个,但它最终成了很多代码并且非常具体。 我也使用了Groovy及其封闭能力和gpath来帮助我,但我并不总是有它(不同的项目)。 编辑:我认为我的问题更多的是对象遍历/选择问题以下是一些有趣的项目: http://josql.sourceforge.net/ http://homepages.mcs.vuw.ac.nz/~djp/JQL/ http://today.java.net/pub/a/today/2006/08/03/java-object-querying-using-jxpath.html http://code.google.com/p/lambdaj/ (过去我用过这个……很慢……) http://jedi.codehaus.org/绝地 然而,大多数这些项目的缺点是它们比直接访问对象(非reflectiongetter / setter)慢得多,并且肯定比索引(hash)慢。

Hibernate Criteria Query – 嵌套条件

我无法弄清楚如何使用Hibernate Criteria synthax创建这样的查询 select * from x where xa = ‘abc’ and (xb = ‘def’ or xb = ‘ghi’) 你知道怎么做吗? 我正在使用Hibernate Restriction静态方法,但我不明白如何指定嵌套的’或’条件