Tag: mysql

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

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

MySQL数据库的ResultSet行为,是否将所有行存储在内存中?

从select查询返回结果时,ResultSet是否将所有行存储在内存中? 或者它只获取有限数量的行? 数据库与数据库有什么不同? MYSQL的行为是什么?

播放测试对象Yaml的框架图像BLOB文件

如何使用yaml结构设置Test Blob Image? 另外,BLOB文件的数据库结构是什么? (MySQL的)

使用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, […]

JDBC将Timestamp转换为NULL(zeroDateTimeBehavior问题)

我正在使用Pentaho数据集成(表输入步骤)从MySQL服务器中提取数据。 一些字段属于’Timestamp’类型,Pentaho因为时间戳为NULL(00:00:00.000000)而不断喷出错误。 我在应该处理坏时间戳的参数中添加了一个zeroDateTimeBehavior=convertToNull ,但它将我的所有 Timestamp数据转换为NULL。 我认为可能发生这种情况的一个原因是因为我的一些“好”数据被表示为,例如,2013-03-14 04:55:09.000000。 虽然大部分日期都是“好数据”,但小数秒(.000000)可能被zeroDateTimeBehavior参数解释为“坏”数据,因此被转换为NULL。 我不确定这是不是为什么会发生这种情况,但是有人可以给我一些关于其他可能原因的见解以及世界上我如何阻止这种情况? 也许转换为字符串可能是一个好主意,但我不知道如何去做这件事。 建议?

Java MYSQL / JDBC查询从缓存的Connection返回过时数据

我一直在搜索Stackoverflow的答案,但似乎找不到一个不涉及Hibernate或其他数据库包装器。 我通过Tomcat 6 Java EE应用程序中的MYSQL 5.18 JDBC驱动程序直接使用JDBC。 我正在缓存Connection对象,但不缓存Statement对象。 查询的ResultSet正确地在第一次运行时返回最新数据。 当我通过PHPMyAdmin或其他一些外部工具更改几行时,重新运行查询,我得到陈旧的过时数据。 我使用的是普通语句,而不是PreparedStatements。 我试过ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE。 我也在关闭结果集。 这些并不能解决问题。 我也尝试过ResultSet.refreshRows(),但这会导致错误,因为查询有一个JOIN子句。 唯一明确解决问题的是关闭Connection并重新连接到数据库,这会导致每次查询尝试的成本都很高。 有没有办法重用Connections而不返回陈旧数据? 编辑:我目前没有使用交易查询。 这是一般代码。 Connection conn; //created elsewhere and reused … String query = “SELECT p.ID as oid,rid,handle,summary,city,state,zip,t.name AS category FROM profiles AS p JOIN (terms AS t) ON (p.tid = t.ID) WHERE p.ID = 1”; ResultSet resultSet; Statement s; […]

Unicode(希腊语)字符存储在数据库中,如“??????”

数据库中的希腊字符就像问号(“?????”)。 我找不到解决方案。 我使用Java / Swing开发了一个应用程序但是当我在MySQL中插入希腊字母时就像是问号。 我将db collat​​ion更改为utf8和列。 我的项目编码设置为UTF-8。 当我从MySQL插入希腊字母时,它们被正确存储。 我正在使用MySQL连接器jar文件。 public class Testing { /** * @param args the command line arguments */ public static void main(String[] args) { try { Connection conn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/chartest”,”root”,”1234″); Statement pst=conn.createStatement(); String var1=”ασδασδ”; String sql=”INSERT INTO chars(value) values(‘”+var1+”‘)”; pst.execute(sql); } catch (SQLException ex) { Logger.getLogger(Testing.class.getName()).log(Level.SEVERE, null, ex); } } }

如何在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='” […]

用户’root’@’localhost’拒绝访问(使用密码:YES)

我想连接我的本地MYSQL数据库,它与XAMP服务器一起安装。 我创建了一个新用户,即“NewUser”,其密码为“password”。 我给了这个用户所有的特权。 我使用用户“root”编写了与数据库连接的代码(此用户没有密码)。 它的连接。 像吼叫.. return DriverManager.getConnection(“jdbc:MySql://localhost/database_name”,”root”,””); 现在我编写了代码以便由另一个用户连接相同的数据库,即“NewUser”及其密码“password” return DriverManager.getConnection(“jdbc:MySql://localhost/database_name”,”NewUser”,”password”); 但它没有联系。 控制台中的错误是 java.sql.SQLException: Access denied for user ‘NewUser’@’localhost’ (using password: YES) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4120) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:925) at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1704) at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1250) at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2465) at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2498) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2283) at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:822) at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47) at sun.reflect.GeneratedConstructorAccessor207.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:404) […]

java mysql count行数

我创建了这段代码,允许我计算表格中的行数。 但是,我无法返回计数的数字,并显示“无法从结果类型为void的方法返回值”。 有人能告诉我’我的错误在哪里? 非常感谢! public void num() throws Exception { try { // This will load the MySQL driver, each DB has its own driver Class.forName(“com.mysql.jdbc.Driver”); // Setup the connection with the DB connect = DriverManager.getConnection(“jdbc:mysql://localhost/testdb?” + “user=root&password=”); // Statements allow to issue SQL queries to the database statement = connect.createStatement(); resultSet = statement.executeQuery(“select * […]