使用spring整合数据源

Spring+JDBC: queryForXXX()|query()

Users u = template.queryForObject(sql,new BeanPropertyRowMapper(Users.class));
List users = template.query(sql,new BeanPropertyRowMapper(Users.class));

String sql = “select name from users”;
String name = template.queryForList(sql, String.class);

String sql = “select * from users”;
List<Map<String, Object>> list = template.queryForList(sql);

//调用存储过程 mydb->demo lambda
this.template.execute("{call demo(?,?)}", new CallableStatementCallback() {
@Override
public Object doInCallableStatement(CallableStatement cs)
throws SQLException, DataAccessException {

return out;
}
});

其他数据源配置:
使用dbcp连接池:导commons-dbcp-x.x.jar和commons-pool-x.x.jar

拿到连接3秒不用自动被容器回收 (Tomcat8.5+)

C3P0连接池:









阿里巴巴数据源:

来至于JNDI Java Naming and Directory Interface (使用tomcat作为实例)

//代表命名服务目录名称为jdbc/mysql(实际为:java:comp/env/jdbc/mysql)

//加上这个的意思是不用使用java:comp/env/来设置jndiName

或者使用:(导入jee命名空间)
<jee:jndi-lookup id=“dataSource” jndi-name=“jdbc/mysql” resource-ref=“true” />

理解template method模式
(其实就是与代理模式相反,将可变的业务拿出来,其他不变的模块组合成一个模板)
例如:

//重写了匿名类来实现功能
Integer execute = template.execute("{call demo(?,?)}", (CallableStatement
cs)-> {
cs.setObject(1, 50); cs.setObject(2, Types.INTEGER); return cs.getInt(2);
});

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值