收藏965
分享
阅读11891
更新时间2022-04-11
为了能够更方便的维护和执行SQL语句,JDBC模块提供了存储器的支持,可以通过@Repository注解自定义SQL或自定义SQL语句或从配置文件中加载SQL并自动执行。
@Repository注解:
参数说明:
dsName:数据源名称,默认为空则采用默认数据源;
item:从资源文件中加载item指定的配置项,默认为空;
value:自定义SQL配置(value的优先级高于item);
type:操作类型,默认为查询,可选值:Type.OPT.QUERY或Type.OPT.UPDATE
存储器示例代码:
存储器:
@Repository
public class DemoRepository implements IRepository {
/**
* 注入SQL配置文件(任意配置对象均可)
*/
@Inject
private DefaultRepoConfig _repoCfg;
/**
* 返回SQL配置文件对象, 若不需要配置文件请不要实现IRepository接口
*/
public IConfiguration getConfig() {
return _repoCfg;
}
/**
* 自定义SQL
*/
@Repository("select * from ymcms_attachment where hash = ${hash}")
public IResultSetSQL配置文件对象:
@Configuration("cfgs/default.repo.xml")
public class DefaultRepoConfig extends DefaultConfiguration {
}SQL配置文件default.repo.xml内容:
在控制器中调用:在浏览器中访问http://localhost:8080/hello查看执行结果
@Controller
@RequestMapping("/hello")
public class HelloController {
/**
* 注入存储器
*/
@Inject
private DemoRepository _repo;
@RequestMapping("/")
public IView hello() throws Exception {
// 调用存储器方法
return View.jsonView(_repo.getAttachments("44f5b005c7a94a0d42f53946f16b6bb2"));
}
}说明:
- 存储器类通过声明
@Repository注解被框架自动扫描并加载;- 与其它被容器管理的
@Bean一样支持拦截器、事务、缓存等注解;- 存储器类方法的参数至少有一个参数(方法有多个参数时,采用最后一个参数)用于接收SQL执行结果;
- 查询类型SQL的执行结果数据类型为
IResultSet,更新类型SQL的执行结果数据类型为int;- 用于接收SQL执行结果的方法参数支持变长类型,如:
IResultSet和results IResultSet是一样的;... results
相关
视频
RELATED VIDEOS
科技资讯
1
2
3
4
5
6
7
8
精选课程
共5课时
17.2万人学习
共49课时
77万人学习
共29课时
61.7万人学习
共25课时
39.3万人学习
共43课时
70.9万人学习
共25课时
61.6万人学习
共22课时
23万人学习
共28课时
33.9万人学习
共89课时
125万人学习