hibernate,我用createSQLQuery返回list对象,遍历打印到控制台后输出“[Ljava.lang.Object;@1f72eaa2”

hibernate,我用createSQLQuery返回list对象,遍历打印到控制台后输出“[Ljava.lang.Object;@1f72eaa2”,第1张

你的对象没有覆写toString()方法,所以调用的是Object默认的toString(),而默认的toString打印的格式就是“类型@地址”。

解决方法是覆写你List中存放的对象的toString方法。

<php

$host="localhost";

$username="root";

$password="root";

$db="db4"; //库名

$mysql_table="person"; //表名

//连接数据库,面向过程

$conn=mysqli_connect($host,$username,$password);

if(!$conn){

echo "数据库连接失败";

exit;

}

//选择所要 *** 作的数据库

mysqli_select_db($conn,$db);

//设置数据库编码格式

mysqli_query($conn,"SET NAMES UTF8");

//编写sql获取分页数据 SELECT FROM 表名 LIMIT 起始位置,显示条数

//注意:以下id,name,age,say都是字段节点名,person是表名,db4是数据库名,think是指定的关键字

$sql = 'SELECT id, name, age, say

FROM person

WHERE say LIKE "%think%" order by id ASC LIMIT '($page-1)$pageSize ",{$pageSize}";

// 节点名 关键字 节点名 可指定数量limit后可写一个指定的数字

//$sql="select from $mysql_table"

//把sql语句传送到数据库

$result=mysqli_query($conn,$sql);

//将数据显示到table中,并未table设置格式

echo "<div class='content'>";

echo "<table border=1 cellspacing=0 width=30% align=center>";

echo "<tr><td>ID</td><td>NAME</td><td>say</td></tr>";

while ($row = mysqli_fetch_assoc($result)) {

echo "<tr>";

echo "<td>{$row['id']}</td>";

echo "<td>{$row['name']}</td>";

echo "<td>{$row['say']}</td>";

echo "<tr>";

}

echo "</table>";

echo "</div>";

//释放结果

mysqli_free_result($result);

//关闭数据库

mysqli_close($conn);

问题出在mysql_fetch_array这一步,此方法的第二个参数表示你要获取的数组的类型

MYSQL_ASSOC 关联数组,就是键名是id,name的

MYSQL_NUM 索引数组,键名是数字的

MYSQL_BOTH 以上两种都有

不给第二个参数的话,默认是MYSQL_BOTH,所以就出现了你上面的结果

两种方法

第一种是修改查询语句,在查询语句中去除重复项

select distinct 列名 from 表明    只适用于查询单列数据,网上的查询多列的方法试过一些,都报错

第二种方法是把查到的数据先读进一个数组,然后使用array_unique()函数去除重复项,再使用foreach遍历数组来拼凑下拉框选项

$arr=[];

while($row = mysql_fetch_array($result)) {

    array_push($arr,$row[Keyword]);//读进数组

}

$arr=array_unique($arr);//去除重复项

foreach ($arr as $key => $val) {

    echo "<option value='$val'>$val</option>";//循环,拼凑下拉框选项

}

希望能帮到你

List<User> users=new arraryList<User>();

User user=usersget(0);

这样直接能获取集合中第一个对象

假设你的页面中只有这些<li>标签。

常规写法:

1

2

3

4

5

6

7

8

var lis = documentquerySelectorAll('li');

for(var i=0;i<lislength;i++){

if(lis[i]stylecssFloat=="left"){

lis[i]stylecssFloat="right";

}else if(lis[i]stylecssFloat=="right"){

lis[i]stylecssFloat="left";

}

}

同时说明一下,对于上面的lis不能够使用foreach(),因为lis是NodeList,不是List,也不是数组,不能使用for-each循环。

以上就是关于hibernate,我用createSQLQuery返回list对象,遍历打印到控制台后输出“[Ljava.lang.Object;@1f72eaa2”全部的内容,包括:hibernate,我用createSQLQuery返回list对象,遍历打印到控制台后输出“[Ljava.lang.Object;@1f72eaa2”、php通过mysql like搜索关键词查询,所有符合数据遍历出来、发现PHP查询MYSQL,遍历结果,会出现2倍数据(数据库1行数据2列,遍历输出4列)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10191666.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存