jjzjj

resultSet

全部标签

java - 如何从 MySQL 中检测空的结果集?

如果没有可能的结果,如何检测从MySQL发送的空结果集。 最佳答案 只需检查ResultSet#next()返回真。例如publicbooleanexist(Stringusername,Stringpassword)throwsSQLException{Connectionconnection=null;PreparedStatementstatement=null;ResultSetresultSet=null;booleanexist=false;try{connection=database.getConnection();

java - 从 ResultSet Java 获取主键列

我正在尝试从结果集中获取表的主键列。以下是步骤我关注了:1.SQLQUERY:Selectid,subid,email,empnamefromEmployee2.Executedthisfromjava.sql.StatementandgottheResultsinResultSet.这是有趣的部分。3.ResultSetMetadatarsmd=rs.getMetadata();现在,如果我观察这个变量“rsmd”,它会显示相关列名的主键标志,但我无法访问它或将它放入任何变量中。我需要这方面的帮助。注意:我不想使用DatabaseMetadata及其getPrimaryKeys()函

java - 如何获取结果集中的上一个项目?

假设我们有这个查询:ResultSetresult=("select*fromtable_name");现在我们可以通过这种形式从结果中获取信息while(result.next()){...}但在这种形式下我们可以继续前进。现在我想知道是否有可能返回结果?例如我们获取信息name='sam',fname='nic'。接下来,我想返回并再次获取此信息。这可能吗? 最佳答案 是的,JDBC支持。您需要一个可滚动的结果集。像这样:Statementst=conn.createStatement(ResultSet.TYPE_SCROLL

java - Java 中的 SQL 结果集

你好,我刚开始使用Java中的SQL(实际上不久前也开始使用Java了......)我创建了一个类来连接MySQL数据库,一切正常。现在我有一个关于获取结果的问题。在PHP中我会做类似的事情While($row=mysql_fetch_assoc()){echo$row['rowname'];}在Java中,我试图创建与此类似的东西,但我不知道我是否走对了路,或者它应该有很大不同或其他什么..这是我所做的(参见getResultList方法)publicclassMysqlConnect{privateStringquery;privateResultSetrs;publicvoidc

mysql - MySQL存储过程OUT参数返回结果集

我在MySQL中有一个过程,它有两个输入参数:userLogin(VARCHAR)和userPassword(VARCHAR),以及两个输出参数:userID(INT)和userRights(VARCHAR)。过程如下:检查数据库中是否存在具有给定登录名和密码的用户,如果存在,则返回其ID、用户权限和设置。权限可以连接成一个字符串,但我想避免连接和随后解析websettings,因为数据的结构更复杂。现在,我的过程仅返回userID和userRights,如果成功,我将运行另一个选择语句来获取设置。当前程序:DELIMITER$$CREATEPROCEDURE`proc_login_u

java - 将图像 blob 插入 MySQL - NullPointerException

我正在开发一个数据库应用程序,我在其中将图像插入到数据库中。我将InputStreams作为BLOB存储在数据库中,但在检索它们并将它们设置为ImageIcon时遇到问题。try{//ReturnaresultsetThatcontains//thephotosfromthehashtagstheuserisfollowing.preparedStatement=conn.prepareStatement("SELECT*FROMPHOTOSWHERECARID=?");preparedStatement.setInt(1,1);resultSet=preparedStatement.

mysql - 扫描一个mysql表,为什么逐行获取结果集比完全在内存中检索要快得多?

我们有一个包含12,000,000多条记录的innodb表。我使用两种方法使用JDBC从该表中SELECT*。Statementstmt=conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY,java.sql.ResultSet.CONCUR_READ_ONLY);stmt.setFetchSize(Integer.MIN_VALUE);这种方式让驱动程序逐行流式传输结果集,并且需要7s完成扫描。语句stmt=conn.createStatement();ResultSets被完全检索并存储在内存中。这种方式需要21秒!只是

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

当从选择查询返回结果时,ResultSet是否将所有行存储在内存中?还是它只获取有限数量的行?数据库与数据库不同吗?MYSQL的行为是什么? 最佳答案 默认情况下,MySQLJDBC驱动程序会尝试获取Java内存中的所有内容。因此,如果您要处理非常多的行和/或很少的内存,那么您需要告诉它不要这样做。这在itsJDBCdriverdocumentation中有详细描述。.以下是相关摘录:ResultSetBydefault,ResultSetsarecompletelyretrievedandstoredinmemory.Inmost

java - resultset.getObject 上的 AbstractMethodError

所以我正在构建一个minecraft插件,插件的一部分从mysql中获取一堆block数据,并在服务器启动时将其加载到缓存中。我有一些代码在eclipse测试用例中运行良好。但是,当我在本地Minecraft服务器中加载插件时,出现异常。java.lang.AbstractMethodError:Methodcom/mysql/jdbc/JDBC4ResultSet.getObject(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;isabstractatcom.mysql.jdbc.JDBC4ResultSet.getOb

java - JDBC ResultSet是应用级查询游标吗

databasecursor定义与JDBCResultSetAPI惊人地相似。数据库游标可以像ResultSet.TYPE_FORWARD_ONLY一样是只进的.数据库游标可以滚动,甚至可以像ResultSet.TYPE_SCROLL_SENSITIVE一样设置敏感度。.还支持像ResultSet.HOLD_CURSORS_OVER_COMMIT这样的可持有性甚至对位置更新/删除的支持也被复制到JDBC中ResultSet.CONCUR_UPDATABLE但尽管所有这些相似,MySQLdoesn'tsupportdatabasecursors:MySQLdoesnotsupportSQ