🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 混合模型 混合模型。兼具灵活性和更好的维护性。POJO可以实现Tail(尾巴的意思),或者继承TailBean,这样查询出的ResultSet 除了按照pojo进行映射外,无法映射的值将按照列表/值保存。如下一个混合模型: ```java /*混合模型*/ public User extends TailBean{ private int id ; private String name; private int roleId; /*以下是getter和setter 方法*/ } ``` 对于sql语句: ```markdown selectUser === select u.*,r.name r_name from user u left join role r on u.roleId=r.id ..... ``` 执行查询的时候 ```java List<User> list = sqlManager.select(sqlId,User.class,paras); for(User user:list){ System.out.println(user.getId()); System.out.println(user.get("rName")); } ``` 程序可以通过get方法获取到未被映射到pojo的值,也可以在模板里直接 ${user.rName} 显示(对于大多数模板引擎都支持) 另外一种更自由的实现混合模型的方法是在目标Pojo上采用注解@Tail,如果注解不带参数,则默认会调用set(String,Object) 方法来放置额外的查询属性,否则,依据注解的set参数来确定调用方法 ```java @Tail(set="addValue") public class User { private Integer id ; private Integer age ; public User addValue(String str,Object ok){ ext.put(str, ok); return this; } ```