Tag: mysql

Hibernate:无法执行本机批量操作查询

尝试使用本机SQL更新数据时出现此错误。 这是我的脚本: update weight_note_receipt set pledge_id =:pledge where wn_id in (:wns) wns是包含多个wns的字符串,如下所示: 222,226,228,251,256,262,263,264,265,266,267,272,281,286,294,296,299,301,302,303,306,307,330,332,333,337,338,339,341,368,371,376,377,378,379,380,381,385,391,397,423,424,443,452,454,461,462,463,464,490,503,504,521,525,528,529,530,532,533,549,554,560,561,564,565,566,567,569,570,595,598,600,603,605,606,607,644,646,649,653,661,662,663,667,669,678,683,752,1039,1075,258,259,260,261,268,269,270,287,304,305,308,325,334,604,643,647,648,659,660,664,665,666,704,709,753,754,757,758,809,834,846,861,872,879,882,911,913,916,919,920,164 当我更新(使用query.executeUpdate() )时,它会抛出以下错误: 请求处理失败; 嵌套exception是org.hibernate.exception.DataException:无法执行本机批量操作查询],因为根本原因com.mysql.jdbc.MysqlDataTruncation:数据截断:截断不正确的DOUBLE值:’222,226,228,251,256,262,263,264,265,266,267,272,281,286,294,296,299,301,302,303,306,307,330,332,333,337,338,339,341,368,371,376,’ 是因为输入字符串太长了吗?

关于使用Ebean的Play Framework和MySQL的简单CRUD教程?

我是Play Framework的新手。 我已经开始学习它,到目前为止我很享受它。 我已经开始学习Play Java了。 我的控制器和型号设置如下: 控制器: package controllers; import play.mvc.Controller; import play.mvc.Result; //Import Product model import models.Product; public class Products extends Controller{ /** * List all Products */ public static Result list(){ Object allProducts = Product.findAll(); return ok((Content) allProducts); //return all products } } 模型: package models; import java.util.List; import play.db.*; import play.api.db.DB; import […]

在JDBC中的QUERY WHERE子句中指定变量名称

有人可以给我一个关于如何在JDBC中创建查询的链接,该查询在WHERE语句中获取变量名,或者编写一个示例,更具体一点,我的代码看起来像这样: private String getLastModified(String url) { String lastModified = null; ResultSet resultSet; String query = “select LastModified from CacheTable where ” + ” URL.equals(url)”; try { resultSet = sqlStatement.executeQuery(query); } 现在我需要一种语法,使我能够返回一个ResultSet对象,其中cacheTable中的URL等于方法参数的url。 谢谢

警告:建议不要在没有服务器身份validation的情况下建立SSL连接

您好我试图通过使用eclipse和tomcat的java servlet连接到mysql数据库,但是我发出以下错误:“警告:不建议在没有服务器身份validation的情况下建立SSL连接”。我添加了“useSSL = false?” 到连接url但仍然得到相同的错误。任何建议? servlet的代码是: package com.simpleWebApplication.servlet; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet(“/register”) public class RegisterServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public RegisterServlet() { super(); // TODO Auto-generated constructor […]

如何在MySQL数据库中存储Java Instant

使用Java Date对象,最简单的方法是将它们存储为MySql DateTime对象(以UTC格式)。 切换到Instant这种方法将不再起作用,因为MySQL DateTime不提供存储纳秒的精度。 只是截断它们可能会导致新创建的Instant对象与从数据库中读取的对象之间出现意外的比较结果。 BigDecimal时间戳不会让我觉得它是一个优雅的解决方案:在MySql Workbench中编写select查询会变得更加困难,因为你必须在任何地方转换时间戳以使其可读,并且Java中的处理与Instant或甚至Long相比有点笨拙值。 什么是最好的方式去这里? 可能不是varchar ,对吗?

如何在同一个Hibernate事务中运行本机SQL查询?

我们有一个@Statefull服务。 大多数数据操作都是primefaces的,但在一组函数中我们希望在一个事务中运行多个native queries 。 我们为EntityManager注入了一个事务范围的持久化上下文。 在创建正常实体的“束”时,使用em.persist()一切正常。 但是当使用本机查询(某些表未由任何@Entity表示)时,Hibernate不会在同一事务中运行它们,但基本上每个查询使用一个事务。 所以,我已经尝试过使用手动START TRANSACTION; 和COMMIT; 条目 – 但这似乎干扰了事务,hibernate在混合本机查询和持久性调用时用于持久化实体。 @Statefull class Service{ @PersistenceContext(unitName = “service”) private EntityManager em; public void doSth(){ this.em.createNativeQuery(“blabla”).executeUpdate(); this.em.persist(SomeEntity); this.em.createNativeQuery(“blablubb”).executeUpdate(); } } 此方法中的所有内容都应在一个事务中发生。 这可能与Hibernate一起使用吗? 在调试它时,可以清楚地看到每个语句都发生在任何事务的“独立”状态。 (即每次声明后立即将更改刷新到数据库。) 我已经使用最小设置测试了下面给出的示例,以便消除问题上的任何其他因素(字符串仅用于在每次查询后检查数据库的断点): @Stateful @TransactionManagement(value=TransactionManagementType.CONTAINER) @TransactionAttribute(value=TransactionAttributeType.REQUIRED) public class TestService { @PersistenceContext(name = “test”) private EntityManager em; public void transactionalCreation(){ em.createNativeQuery(“INSERT INTO `ttest` (`name`,`state`,`constraintCol`)VALUES(‘a’,’b’,’c’)”).executeUpdate(); […]

在intellij中使用JDBC / Mysql Connector

我是Java的新手,我需要建立一个连接到MySQL服务器(本地),我已经在Intellij中添加了库,但它似乎不起作用,IDE无法找到我认为的类……我变得疯狂我正在寻找两个小时…我来自visual studio / c#dev环境,我想我应该错过一些东西…… 在这里,您可以从我的IDE和我想要使用的简单代码中获取图片。 您还可以推断出我已经在我的项目中导入了jar(mysql-jdbc)。 IDE图片 编辑:这是代码,注释显示错误出现的位置: import java.sql.Connection; import java.sql.DriverManager; import java.sql.*; import org.*; import com.mysql.jdbc.Driver; public class JdbcLogin { public String Login; public String MotDePasse; private boolean Logged = false; public void StartBdd(){ String driverName = “com.mysql.jdbc.Driver”; Class.forName(driverName); // here is the ClassNotFoundException String serverName = “localhost”; String mydatabase = “suptodo”; String […]

存储过程可以返回结果集吗?

我有一张名为employee的表,里面有他的id,姓名,电话号码。 我使用MySQL作为我的数据库。 我正在使用Java Swing。 我正在使用Java搜索员工表名称(我在Java页面中使用了like子句)。 现在我需要在存储过程中实现该function。 可能吗? 如果有可能的话,我们怎样才能在Java代码中使用结果集? 现在我编写了我的存储过程如下 BEGIN SELECT * FROM employee where empName like ‘%su%’ END 示例代码将不胜感激..谢谢

Hibernate hql,在同一个查询中执行多个更新语句

我想在hibernate Hql中的同一个查询中执行多个更新语句。 如下: hql = ” update Table1 set prob1=null where id=:id1; ” + ” delete from Table2 where id =:id2 “; … query.executeUpdate(); 在同一个executeUpdate调用中,我想更新Table1中的记录并从Table2中删除记录。 那可能吗?

捕获重复的键插入exception

我有一个表,其中包含一个名为id的唯一主键列。 有时,当我执行INSERT查询时,我收到错误,因为已经使用了id值。 我可以通过try和catch捕获这个特定的错误吗?