LambdaQueryWrapper里SFunction<T, ?>... columns怎么表示
时间: 2024-02-06 07:09:04 浏览: 49
`LambdaQueryWrapper` 是 MyBatis-Plus 框架提供的一个方便的查询构造器,用于构造复杂的查询条件。其中,`SFunction<T, R>` 是 MyBatis-Plus 框架提供的一个函数式接口,用于将实体类中的属性映射到数据库表的列。
在 `LambdaQueryWrapper` 中,`columns` 参数的类型为 `SFunction<T, ?>...`,表示一个可变长度的 `SFunction` 数组,可以接收多个实体类属性。具体用法如下:
- 定义一个实体类 `User`,其中包含两个属性 `id` 和 `name`:
```java
public class User {
private Long id;
private String name;
// 省略 getter 和 setter 方法
}
```
- 使用 `LambdaQueryWrapper` 构造查询条件,例如查询 `name` 为 "张三" 的用户:
```java
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getName, "张三");
```
在上面的代码中,`User::getName` 表示获取实体类 `User` 的 `name` 属性,将其映射到数据库表的列,用于构造查询条件。如果要同时查询多个属性,只需将多个 `SFunction` 对象作为参数传入即可,例如:
```java
wrapper.select(
User::getId,
User::getName
);
```
上述代码表示查询 `id` 和 `name` 两个属性,并将结果封装为 `User` 对象返回。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
<?php // 连接数据库 $conn = new mysqli("localhost", "root", "123456", "wyya"); // 检查连接是否成功 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 查询五个歌单的表 $tables = array(); $result = mysqli_query($conn, "SHOW TABLES LIKE '%_list'"); if ($result->num_rows > 0) { while ($row = mysqli_fetch_array($result)) { $tables[] = $row[0]; } } // 获取选中的歌单表 $tableName = isset($_GET["table"]) ? $_GET["table"] : ""; $data = array(); if (!empty($tableName)) { $result = mysqli_query($conn, "SELECT * FROM $tableName"); if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { $data[] = $row; } } } ?> <!DOCTYPE html> <html> <head> <title>网易云音乐歌单</title> <style> table { border-collapse: collapse; width: 100%; } th, td { text-align: left; padding: 8px; } tr:nth-child(even) { background-color: #f2f2f2; } th { background-color: #4CAF50; color: white; } .dropdown { position: relative; display: inline-block; } .dropdown-content { display: none; position: absolute; z-index: 1; } .dropdown:hover .dropdown-content { display: block; } </style> </head> <body> 网易云音乐歌单 分类 <?php foreach ($tables as $table) { ?> <?php echo str_replace("_list", "", $table); ?> <?php } ?> <?php if (!empty($tableName)) { ?> <?php $columns = mysqli_query($conn, "SHOW COLUMNS FROM $tableName"); if ($columns->num_rows > 0) { while ($column = mysqli_fetch_array($columns)) { ?> <?php echo $column["Field"]; ?> <?php } } ?> <?php foreach ($data as $row) { ?> <?php foreach ($row as $value) { ?> <?php echo $value; ?> <?php } ?> <?php } ?> <?php } ?> </body> </html> <?php // 关闭连接 $conn->close(); ?>修改代码,将one修改成华语,two修改成欧美,three修改成日语,four修改成韩语,five修改成粤语
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
<?php // 连接数据库 $conn = new mysqli("localhost", "root", "123456", "wyya"); // 检查连接是否成功 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 查询五个歌单的表 $tables = array(); $result = mysqli_query($conn, "SHOW TABLES LIKE '%_list'"); if ($result->num_rows > 0) { while ($row = mysqli_fetch_array($result)) { $tables[] = $row[0]; } } // 获取选中的歌单表 $tableName = isset($_GET["table"]) ? $_GET["table"] : ""; $data = array(); if (!empty($tableName)) { $result = mysqli_query($conn, "SELECT * FROM $tableName"); if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { $data[] = $row; } } } ?> <!DOCTYPE html> <html> <head> <title>网易云音乐歌单</title> <style> table { border-collapse: collapse; width: 100%; } th, td { text-align: left; padding: 8px; } tr:nth-child(even) { background-color: #f2f2f2; } th { background-color: #4CAF50; color: white; } </style> </head> <body> 网易云音乐歌单 华语 欧美 日语 韩语 粤语 <?php if (!empty($tableName)) { ?> <?php $columns = mysqli_query($conn, "SHOW COLUMNS FROM $tableName"); if ($columns->num_rows > 0) { while ($column = mysqli_fetch_array($columns)) { ?> <?php echo $column["Field"]; ?> <?php } } ?> <?php foreach ($data as $row) { ?> <?php foreach ($row as $value) { ?> <?php echo $value; ?> <?php } ?> <?php } ?> <?php } ?> </body> </html> <?php // 关闭连接 $conn->close(); ?>修改代码,将华语,欧美,日语,韩语,粤语放入一个命名为分类的菜单中,实现点击菜单后点击华语,欧美,日语,韩语,粤语再跳转
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)