问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Java如何从数据库里读取一个树形表然后封装成list?

发布网友 发布时间:2022-04-07 19:48

我来回答

2个回答

懂视网 时间:2022-04-08 00:09

/// <summary> 2 /// 执行查询语句,返回SqlDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close ) 3 /// </summary> 4 /// <param name="strSQL">查询语句</param> 5 /// <returns>SqlDataReader</returns> 6 public static SqlDataReader ExecuteReader(string strSQL) 7 { 8 SqlConnection connection = new SqlConnection(connectionString); 9 SqlCommand cmd = new SqlCommand(strSQL, connection); 10 try 11 { 12 connection.Open(); 13 SqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection); 14 return myReader; 15 } 16 catch (System.Data.SqlClient.SqlException e) 17 { 18 throw e; 19 } 20 21 }

2、三层DAL层方法

 1 /// <summary>
 2  /// 把读出的数据转换成List
 3  /// </summary>
 4  public List<int> GetUserList(int hid)
 5  {
 6  string sql = " select V_UserID from UserVoters where V_HeadlineID=" + hid + "";
 7  SqlDataReader dr = DbHelperSQL.ExecuteReader(sql);
 8  List<UserVotersModel> plist = new List<UserVotersModel>();
 9  while (dr.Read())
10   {
11   UserVotersModel uvm = new UserVotersModel();
12   uvm.V_UserID = int.Parse(dr["V_UserID"].ToString());
13   plist.Add(uvm);
14   }
15  List<int> list = new List<int>();
16  for (int i = 0; i < plist.Count; i++)
17   {
18   list.Add(int.Parse(plist[i].V_UserID.ToString()));
19   }
20  return list;
21  }

3、把List当参数放到sql语句里的方法

 1 /// <summary>
 2  /// 获得未投票用户列表
 3  /// </summary>
 4  public DataSet GetNoPersonList(List<int> list)
 5  {
 6  StringBuilder strSql = new StringBuilder();
 7  if (list != null && list.Count > 0)
 8   {
 9   string listMes = string.Empty;
10   foreach (int str in list)
11   {
12   listMes += "‘" + str + "‘,";
13   }
14   strSql.Append("select U_Uid,U_Name,U_Sex,U_Phone,U_QQ from dbo.UsersInfo where U_ID not in(" + listMes.TrimEnd(‘,‘) + ") and U_Level=4 and U_Name=‘‘ ORDER BY U_ID DESC ");
15   return DbHelperSQL.Query(strSql.ToString());
16   }
17  else
18   {
19   strSql.Append(" select U_Uid,U_Name,U_Sex,U_Phone,U_QQ from dbo.UsersInfo where U_Level=4 and U_Name=‘‘ ORDER BY U_ID DESC ");
20   return DbHelperSQL.Query(strSql.ToString());
21   }
22  }

二、没有帮助类直接读取数据库

 1 /// <summary>
 2  /// 读取数据库的信息,并转换成List
 3  /// </summary>
 4  public List<MailData> GetExpiredLicense()
 5  {
 6  string connectionString = "Data Source=01;Initial Catalog=Music;Persist Security Info=True;User ID=Musicname;Password=123456";
 7  SqlConnection conn = new SqlConnection(connectionString);
 8   conn.Open();  
 9  string sql = string.Format( @" select * from Tale" );
10  
11  SqlDataAdapter da = new SqlDataAdapter(sql, connectionString);
12  DataSet ds = new DataSet();
13   da.Fill(ds);
14  List<MailData> list = new List<MailData>(); //MailData为要查询表的实体类 
15  foreach (DataRow item in ds.Tables[0].Rows)
16   {
17   list.Add(MailData.ConvertRow(item));
18   }
19  return list;
20  }

 

读取数据库的数据并转换成List<>

标签:

热心网友 时间:2022-04-07 21:17

首先查询的时候最好按照id的大小排序,应该是越小的是父节点,越大的是子节点,升序
才好用下面的方法
Map <Long , GroupTreeVo> temp=new HashMap<Long,GroupTreeVo>();
读取数据库数据
循环拿出,每次一条记录,相当于一个GroupTreeVo对象
每次都new 一个GroupTreeVo,数据库赋值,并存储到temp中以ID为key,对象为Value
判断是否有pid,如果有从temp中拿出父节点,设置它的children.add,
循环结束,最后,拿到temp的第一个,应该就是父节点,里面包含N多children追问亲一口

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
y53s手机参数及价格 vivoy53s5g手机参数 五粮液五粮印象精制52度浓香型白酒500ml 五粮液 五粮印象 精制 52度 浓香型白酒 500ml-详细介绍 五粮液 五粮印象 精制 52度 浓香型白酒 500ml-购买最佳价格 五粮液 五粮印象 精制 52度 浓香型白酒 整箱装-详细介绍 五粮液五粮印象珍品-适用对象 白酒推荐-五粮液五粮印象珍品52%vol浓香型白酒500ml单瓶装 五粮液五粮印象精制52度浓香型白酒-适用对象 星座血型生肖分析摩羯座属蛇A型 红色风衣配里面搭什么样衣服好看 红色风衣怎么搭配?? 购买聚好看爱奇艺会员为啥看不了少儿VIP内容 红色短款大翻领风衣怎样搭配 怎样免费获得爱奇艺VIP账号?我看见别人轻而易举就获得了许多爱奇艺VIP账号,才知道是靠别的东西弄 大红色短风衣如何搭配 红色风衣如何搭配好看呢? 红色的风衣要和什么衣服搭配才好看? 如何快速获取到免费的爱奇艺共享会员账号 红色风衣怎么搭配衣服 红色风衣怎么搭配 tp-link tl-gp110 gpon终端怎么设制无线路由器详细点万分感谢 天翼网关光纤猫和tplink路由器怎么连接和设置wifi 呼和浩特市土默特左旗可以打可善挺吗 四物汤差白芍能喝吗,跑了几个地方,都没有白芍了,郁闷。 如何将Word中图片导出来 四物汤能美白祛斑 吗? 失业保险金可以领多久失业金能领几次 失业金能领几次啊 夏天煲什么汤好。? 红色双排扣短风衣怎么搭配 红色的风衣 里面穿什么衣服好看 什么颜色的 懂的进来 卫浴间洗漱台如何进行清洁养护 红色的风衣怎么搭配 卫生间洗手台到处都是化妆品,怎么做到方便又干净? 短款红色风衣怎样搭配 红色风衣里面搭配什么颜色裙子 洗手台缝隙常长霉,怎么清洗比较干净? 风筝守护应用使用为什么都是零 360怎么检测网速 因风筝守护绑定后不能使用所以被绑定方该怎么办? 卧室壁纸哪个颜色增进夫妻感情 年轻夫妻卧室里贴什么壁纸好看 夫妻卧房贴什么墙纸好、有什么禁忌? 电脑360怎么限速手机网速? 卧室床头贴花朵图案壁纸,是否与床头摆花一样会影响夫妻风水。 笔记本删除不了文件怎么办 婚房卧室贴什么颜色壁纸好看又简约? 贴壁纸卧室的壁纸选择技巧以及适合的类型 听说房间里用粉色的壁纸会破坏夫妻感情,可已经装好要怎样化解