Tag: jdbc

java sql日期时间

当我将SQL DateTime插入数据库时​​,我得到2007-02-07 12:00:00.00 但我像这样制作了Date对象: 2007-02-07 17:29:46.00 如何获取数据库中秒的值。 它总是将其改回12:00:00.00 date.setYear(Integer.valueOf(parsedDate[2].replaceAll(” “, “”)) – 1900); date.setMonth(Integer.valueOf(parsedDate[0].replaceAll(” “, “”))); date.setDate(Integer.valueOf(parsedDate[1].replaceAll(” “, “”))); … java.sql.Date sqlDate = new java.sql.Date(date.getTime()); 我应该使用任何格式化程序吗?

与csv文件相比,将mysql表转换为spark数据集的速度非常慢

我在amazon s3中有csv文件,大小为62mb(114000行)。 我正在将其转换为spark数据集,并从中获取前500行。 代码如下; DataFrameReader df = new DataFrameReader(spark).format(“csv”).option(“header”, true); Dataset set=df.load(“s3n://”+this.accessId.replace(“\””, “”)+”:”+this.accessToken.replace(“\””, “”)+”@”+this.bucketName.replace(“\””, “”)+”/”+this.filePath.replace(“\””, “”)+””); set.take(500) 整个操作需要20到30秒。 现在我尝试相同但是使用csv我正在使用带有119 000行的mySQL表。 MySQL服务器在亚马逊ec2中。 代码如下; String url =”jdbc:mysql://”+this.hostName+”:3306/”+this.dataBaseName+”?user=”+this.userName+”&password=”+this.password; SparkSession spark=StartSpark.getSparkSession(); SQLContext sc = spark.sqlContext(); DataFrameReader df = new DataFrameReader(spark).format(“csv”).option(“header”, true); Dataset set = sc .read() .option(“url”, url) .option(“dbtable”, this.tableName) .option(“driver”,”com.mysql.jdbc.Driver”) .format(“jdbc”) .load(); set.take(500); 这需要5到10分钟。 我在jvm里面运行火花。 在两种情况下使用相同的配置。 我可以使用partitionColumn,numParttition等但我没有任何数字列,还有一个问题是我不知道该表的模式。 我的问题不是如何减少所需的时间,因为我知道在理想情况下火花将在集群中运行但我无法理解的是为什么在上述两种情况下这个大的时间差异?

如何通过Java在SQLite中强制执行外键约束?

看来SQLite默认不强制执行外键。 我正在使用sqlitejdbc-v056.jar并且我已经阅读了使用PRAGMA foreign_keys = ON; 将打开外键约束,并且需要在每个连接的基础上打开它。 我的问题是:我需要执行哪些Java语句来打开此命令? 我试过了: connection.createStatement().execute(“PRAGMA foreign_keys = ON”); 和 Properties properties = new Properties(); properties.setProperty(“PRAGMA foreign_keys”, “ON”); connection = DriverManager.getConnection(“jdbc:sqlite:test.db”, properties); 和 connection = DriverManager.getConnection(“jdbc:sqlite:test.db;foreign keys=true;”); 但这些都不起作用。 这里有什么我想念的吗? 我已经看到了这个答案 ,我想做同样的事情,只使用JDBC。

DriverManager getConnection的连接超时

我正在尝试使用标准JDBC方式连接到DB connection = DriverManager.getConnection(url, username, password); 连接上是否存在最大超时值,连接存在多长时间,是否可以增加该值。 我希望在连接永远打开的情况下,这是一个好主意。

查询返回多个结果集

我有一个MSSQL数据库,并运行以下查询: select * from projects; select * from user 上面的查询一次返回两个结果集,我无法单独触发两个查询。 如何在Java类中同时处理结果集?

有没有为Java EE容器定义JDBC数据源的标准方法?

我知道对于JBoss,您需要在相应实例的/ deploy子目录中使用[name] -ds.xml文件。 我没有任何其他Java EE容器的经验,但我试图尽可能地坚持标准。 有没有一种标准的方法来定义JDBC数据源并进行部署? 如果可能的话,我想将我的数据源包含在* .ear文件中(例如,用于演示目的的嵌入式内存HSQLDB数据源)? 如果没有标准方式,其他容器至少会接受jboss方式吗? (/deploy/*-ds.xml)

我得到一个java.lang.classnotfoundexception:com.mysql.jdbc.Driver

我怎么会得到这个错误? 查看图片: 我在普通的java项目(而不是android项目)上使用相同的jar,它曾经工作过。 怎么了?

数据库连接应始终保持打开状态还是仅在需要时打开?

我有一个bukkit插件(minecraft),需要连接到数据库。 请原谅noob问题,但是数据库连接应该始终保持打开状态,还是在需要时打开和关闭?

JDBC字符编码

我有一个在GlassFish 3上运行的Java Web应用程序和在MySQL上运行的JPA(EclipseLink)。 我面临的问题是,如果我使用update()方法将实体保存到数据库, String字段将失去完整性; ‘?’ 显示而不是一些字符。 服务器,页面和数据库配置为使用UTF-8 。 发布表单数据后,下一页正确显示数据。 此外,在NetBeans调试中“似乎”当前实体的String属性也存储了正确的值。 Dunno,如果可以信任NetBeans调试; 可能是它正确解码,但它是不正确的。

Java的PreparedStatement如何工作?

我计划用PreparedStatement对象替换重复执行的Statement对象以提高性能。 我正在使用像MySQL函数now()和字符串变量这样的参数。 我见过的大多数PreparedStatement查询包含常量值(如10 ,字符串如”New York” )作为参数用于? 在查询中。 我将如何使用now()等函数和变量作为参数? 是否有必要使用? s在查询而不是实际值? 我很困惑。