table(集合对象)

说明:table()必须使用schema级别的集合对象
SQL> Declare
  2    Type t_nstbl Is Table Of Varchar2(20);  --本地
  3    v_nstbl t_nstbl;
  4    csr Sys_Refcursor;
  5    vlu Varchar2(20);
  6  Begin
  7    v_nstbl:=t_nstbl('a','b','c');
  8    Open csr For Select * From (Table(v_nstbl));
  9    Loop
 10      Fetch csr Into vlu;
 11      Exit When csr%Notfound;
 12      dbms_output.put_line(vlu);
 13    End Loop;
 14  End;
 15  /
Declare
  Type t_nstbl Is Table Of Varchar2(20);
  v_nstbl t_nstbl;
  csr Sys_Refcursor;
  vlu Varchar2(20);
Begin
  v_nstbl:=t_nstbl('a','b','c');
  Open csr For Select * From (Table(v_nstbl));
  Loop
    Fetch csr Into vlu;
    Exit When csr%Notfound;
    dbms_output.put_line(vlu);
  End Loop;
End;
ORA-06550: 第 8 行, 第 37 列: 
PLS-00642: 在 SQL 语句中不允许使用本地收集类型
ORA-06550: 第 8 行, 第 31 列: 
PL/SQL: ORA-22905: 无法从非嵌套表项访问行
ORA-06550: 第 8 行, 第 16 列: 
PL/SQL: SQL Statement ignored


SQL> Create Or Replace Type t_nstbl Is Table Of Varchar2(20);  --schema级别
  2  /
Type created
SQL> Declare
  2   -- Type t_nstbl Is Table Of Varchar2(20);
  3    v_nstbl t_nstbl;
  4    csr Sys_Refcursor;
  5    vlu Varchar2(20);
  6  Begin
  7    v_nstbl:=t_nstbl('a','b','c');
  8    Open csr For Select * From (Table(v_nstbl));
  9    Loop
 10      Fetch csr Into vlu;
 11      Exit When csr%Notfound;
 12      dbms_output.put_line(vlu);
 13    End Loop;
 14  End;


 15  /
a
b
c
PL/SQL procedure successfully completed
### MyBatisPlus 映射对象集合 #### 自动映射机制 MyBatis-Plus 提供了强大的自动映射功能,能够简化实体类与数据库表之间的转换过程。当配置好相应的环境后,框架会依据驼峰命名规则自动完成字段到属性的映射工作[^1]。 对于JSON类型的列,默认情况下可以通过引入`jackson-databind`库来实现复杂数据结构(如嵌套的对象或者列表)的序列化和反序列化操作[^3]: ```xml <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.10.0</version> </dependency> ``` #### 实体类定义 为了支持更复杂的业务场景,在设计实体类时可以利用注解的方式指定特定的行为。比如针对某些特殊的数据类型,可通过自定义TypeHandler来进行处理;而对于简单的关联关系,则可以直接声明为对应的Java类型即可。 假设有一个名为 `User` 的实体类,其中包含了一个 JSON 字段用于存储用户的兴趣爱好信息: ```java @TableField(typeHandler = JacksonTypeHandler.class) private Map<String, Object> hobbies; ``` 这里使用了 `@TableField` 注解并指定了一个基于 Jackson 库实现的 TypeHandler 来负责该字段与其他部分之间相互转化的工作。 #### 查询测试案例 下面是一个完整的单元测试例子,展示了如何通过 MyBatis-Plus 进行基本 CRUD 操作以及获取全部记录的方法[^2]: ```java @SpringBootTest class Mybatispluse01ApplicationTests { @Autowired private UserDao userDao; @Test void contextLoads() { // 获取所有用户的信息 List<User> users = userDao.selectList(null); // 打印结果集 System.out.println(users); // 可选:断言验证返回的结果不为空 assertNotNull(users); } } ``` 在这个例子中,调用了 `selectList()` 方法传入 null 参数表示执行无条件查询语句,即 SELECT * FROM 表名 。最终得到的是由多个 User 对象组成的列表形式的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值