Tag: mysql

Hibernate:如何使用CONCAT和GROUP_CONCAT

如何在HQL查询中使用CONCAT()和GROUP_CONCAT() ?

MySQL数据截断错误

我正在使用Java应用程序中相当简单的数据库。 我们尝试使用标准的JDBC mysql适配器一次插入大约200k的文本。 我们间歇性地得到一个com.mysql.jdbc.MysqlDataTruncation:数据截断:列错误的数据太长。 列类型为longtext,数据库排序规则为UTF-8。 使用MyISAM和InnoDB表引擎显示错误。 客户端和服务器端的最大数据包大小已设置为1 GB,因此也不会导致问题。

Java,如何将当前数据库更改为另一个?

我有一个与MySQL数据库的Java程序连接,如何在同一个连接上将当前数据库更改为另一个? 我像这样连接到MySQL: DriverManager.getConnection(“jdbc:mysql://”+server+”/”,log,pass); 在一些操作之后,我想连接到同一连接上的不同mysql数据库。 我怎样才能做到这一点? 我试过用: Statement stat= con.createStatement(); ResultSet r=stat.executeQuery(“use mysql”); 但这并没有改变要使用的数据库。

我正确使用Java PooledConnections吗?

我想使用与Java的池连接(因为每个线程创建一个连接的成本MysqlConnectionPoolDataSource() )所以我使用的是MysqlConnectionPoolDataSource()对象。 我在线程中持久化我的数据源。 所以,我只在整个应用程序中使用一个数据源,如下所示: startRegistry(); // creates an RMI registry for MySQL MysqlConnectionPoolDataSource dataSource = new MysqlConnectionPoolDataSource(); dataSource.setUser(“username”); dataSource.setPassword(“password”); dataSource.setServerName(“serverIP”); dataSource.setPort(3306); dataSource.setDatabaseName(“dbname”); InitialContext context = createContext(); // Creates a context context.rebind(“MySQLDS”, dataSource); 现在我已经创建了数据源,我在每个单独的线程中执行以下操作: PooledConnection connect = dataSource.getPooledConnection(); Connection sqlConnection = connect.getConnection(); Statement state = sqlConnection.createStatement(); ResultSet result = state.executeQuery(“select * from someTable”); // Continue processing […]

在java中将字节数组转换为Blob的最简单方法

使用java编程语言在MYSQL中将字节数组转换为Blob数据类型的最简单方法是什么?

获取mybatis中最后插入记录的ID

我是mybatis的新手。 我想获取最后插入记录的ID。 我的数据库是mysql,我的mapper xml是 SELECT LAST_INSERT_ID() as id insert into fileAttachment name, size, #{name,jdbcType=VARCHAR}, #{attachmentFileSize,jdbcType=INTEGER}, 我认为这里写的语句’SELECT LAST_INSERT_ID()as id’应该返回最后插入记录的id但是我在插入记录后总是1。 我的mapper.java类我有方法 int insertSelective(FileAttachment record); 在我正在使用的dao课程中 int id = fileAttachmentMapper.insertSelective(fileAttachment); 插入新记录时,我的ID值始终为1。 我的Id字段自动递增,记录正确插入。

WebApp(Tomcat-jdbc)池化数据库连接抛弃exception

我已经浏览了一段时间,并在此过程中咀嚼我的帽子,但找不到与我的问题完全匹配。 简而言之,我在60秒不活动后获得了极好的堆栈跟踪(org.apache.tomcat.jdbc.pool.ConnectionPool放弃),这是几个服务器端线程的正常行为。 我正在使用Tomcat JDBC Connection Pooling(org.apache.tomcat.jdbc.pool.DataSource) 堆栈跟踪: 2012年10月29日下午8:55:50 org.apache.tomcat.jdbc.pool.ConnectionPool放弃 警告:连接已被放弃PooledConnection [com.mysql.jdbc.JDBC4Connection@1ad2916]:java.lang.Exception 在org.apache.tomcat.jdbc.pool.ConnectionPool.getThreadDump(ConnectionPool.java:967) 在org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:721) 在org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:579) 在org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:174) at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:111) 在com.getsom.getConnection(DAO.java:1444) 在com.getsom.PreparedConnection。(PreparedConnection.java:48) 在com.getsom.Alarms.run(Alarms.java:492) 我的PoolProperties配置如下: PoolProperties pp = new PoolProperties(); pp.setUrl( someValidUrl); pp.setDriverClassName(“com.mysql.jdbc.Driver”); pp.setUsername( someUser); pp.setPassword( somePassword); pp.setJmxEnabled( true); pp.setTestWhileIdle( true); pp.setTestOnBorrow( true); pp.setValidationQuery( “SELECT 1”); pp.setTestOnReturn( false); pp.setValidationInterval(30000); pp.setTimeBetweenEvictionRunsMillis(30000); pp.setMaxActive(100); pp.setInitialSize(10); pp.setMaxWait(10000); pp.setMinEvictableIdleTimeMillis(30000); pp.setMinIdle(10); pp.setLogAbandoned(true); pp.setRemoveAbandoned(true); pp.setRemoveAbandonedTimeout(60); pp.setJdbcInterceptors(“org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;”+ […]

将JDBC ResultSet映射到对象

我有一个具有16个属性的用户类,如firstname,lastname,dob,username,password等…这些都存储在MySQL数据库中,当我想要检索用户时,我使用ResultSet。 我想将每个列映射回用户属性,但我这样做的方式看起来非常低效。 例如我在做: //ResultSet rs; while(rs.next()) { String uid = rs.getString(“UserId”); String fname = rs.getString(“FirstName”); … … … User u = new User(uid,fname,…); //ArrayList users users.add(u); } 即我检索所有列,然后通过将所有列值插入到用户构造函数中来创建用户对象。 有谁知道更快,更整洁,这样做的方式?

尝试执行PreparedStatement时重复MySQLSyntaxErrorException

我尝试使用JDBC使用以下方法使用PreparedStatement插入userId(int)和userName(String): public boolean saveUser(int userId, String userName){ boolean saveStatus = false; try { connection.setAutoCommit(true); String sql = “insert into testtable values(?,?)”; PreparedStatement statement = connection.prepareStatement(sql); statement.setInt(1, userId); statement.setString(2, userName); saveStatus = statement.execute(sql); } catch (SQLException e) { e.printStackTrace(); }finally{ Connector.closeConnections(); } return saveStatus; } 我得到以下stacktrace: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check […]

jqGrid – 新行的唯一ID

我试图将一个唯一的ID设置为我添加到我的jqGrid的新行。 我使用免费的jqGrid 4.11.0,服务器端的java rest服务和数据库的MS SQL。 inlineEditing: { ajaxSaveOptions: { contentType: “application/json” }, serializeSaveData: function (postData) { var idArray = grid.getCol(‘id’); var count = 0; var k = 1; while(postData.id.search(‘jqg’) != ‘-1’){ for(var i =0 ; i<idArray.length;i++){ if(k == idArray[i]){ count++; } if(count == 0){ postData.id = k ; break; } } k++; } return JSON.stringify(postData); […]