后端从数据库获得数据,用Model发送到前端页面

本文探讨了在JavaWeb项目中使用MyBatis从数据库获取数据时遇到的问题。博主指出,当返回结果为`returnlist.get(0).getName`时,能够正确获取第一条数据的名称。然而,如果直接返回`returnlist`,页面显示结果出现异常,表现为数据显示为对象地址而非实际值。解决方案和详细解释可在另一篇博文中找到。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如有错误欢迎指正

        controller这样写

         页面这样写,用${information}接收

         数据库中的数据是这样的

        结果页面的显示结果是这样的

        原因在return list,如果写return list.get(0).getName就可以获得第一条数据的name 

        详情可以看另一篇博文JavaWeb项目用mybatis从数据库获取数据,输出的结果是xxx@xxx,这是什么类型的数据,怎么转换_m0_59834108的博客-优快云博客

        

如有错误欢迎指正

使用三层架构将后端得到的数据库数据显示在前端页面,可以更好地实现代码的分层和复用。三层架构通常包括数据访问层、业务逻辑层和表示层。以下是一个简单的示例: 1. 数据访问层 数据访问层负责与数据库进行交互,定义了一些用于数据操作的方法。例如: ```csharp public class MyRepository { // 连接数据库 private SqlConnection connection = new SqlConnection("connection string"); // 获取数据 public List<MyModel> GetData() { List<MyModel> data = new List<MyModel>(); // 打开数据库连接 connection.Open(); // 执行SQL语句,获取数据 SqlCommand command = new SqlCommand("SELECT * FROM MyTable", connection); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { MyModel item = new MyModel(); item.Field1 = reader.GetString(0); item.Field2 = reader.GetInt32(1); item.Field3 = reader.GetBoolean(2); data.Add(item); } // 关闭数据库连接 reader.Close(); connection.Close(); return data; } } ``` 在这个数据访问层中,我们定义了一个名为MyRepository的类,用于获取数据库中的数据。我们使用了SQL语句来执行查询操作,并使用SqlDataReader对象来遍历查询结果,并将查询结果转换为MyModel对象并添加到List中,最后返回List。 2. 业务逻辑层 业务逻辑层负责处理业务逻辑,对数据进行处理和计算,并调用数据访问层来获取数据。例如: ```csharp public class MyService { // 获取数据 public List<MyModel> GetData() { MyRepository repository = new MyRepository(); return repository.GetData(); } } ``` 在这个业务逻辑层中,我们定义了一个名为MyService的类,用于处理业务逻辑。我们调用了数据访问层中的GetData方法来获取数据库中的数据,并返回查询结果。 3. 表示层 表示层负责与用户进行交互,接收用户的请求,并调用业务逻辑层来处理请求并获取数据。例如: ```csharp public class MyController : Controller { // 获取数据 public ActionResult Index() { MyService service = new MyService(); List<MyModel> data = service.GetData(); return View(data); } } ``` 在这个表示层中,我们定义了一个名为MyController的控制器,用于处理用户的请求。我们调用了业务逻辑层中的GetData方法来获取数据库中的数据,并将数据递给视图。 4. 视图 视图负责将数据显示给用户。例如: ```html @model List<MyModel> <table> <thead> <tr> <th>字段1</th> <th>字段2</th> <th>字段3</th> </tr> </thead> <tbody> @foreach (var item in Model) { <tr> <td>@item.Field1</td> <td>@item.Field2</td> <td>@item.Field3</td> </tr> } </tbody> </table> ``` 在这个视图中,我们定义了一个表格,用于显示从后端递过来的数据。我们使用了Razor语法来绑定HTML页面后端递过来的数据,使用@foreach循环来遍历数据,并使用@item.Field1、@item.Field2等语法来显示数据的具体字段。 综上所述,使用三层架构将后端得到的数据库数据显示在前端页面,可以实现代码的分层和复用,更加灵活和易于维护。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好人不心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值