16|再回首:JdbcTemplate章节小结
郭屹
你好,我是郭屹。
恭喜你学完了 MiniSpring 的第三部分——JdbcTemplate 了。JdbcTemplate 在 Spring 框架里,扮演着非常重要的角色。通过它,我们可以更加便捷地进行数据库操作,缩短了开发周期和开发成本,同时也降低了出错的风险。
它对 Spring 应用程序的稳定性和性能表现有着至关重要的影响,已经成为开发高效、高质量应用程序的不可或缺的一部分。
为了让你更好地掌握这部分内容,下面我们对这一整章做一个重点回顾。
JdbcTemplate 重点回顾
JdbcTemplate 是 Spring 框架中的一部分,是 Spring 对数据访问的一个实现,在 Spring 应用程序中被广泛采用。它这个实现特别好地体现了 Rod Johnson 对简洁实用的原则的把握。JdbcTemplate 封装了 JDBC 的 API,并提供了更为便捷的访问方式,使得开发人员在不需要编写大量代码的情况下,能够高效、灵活地进行数据库操作。
我们知道,JDBC 的程序都是类似的,所以这个部分我们提取出一个 JDBC 访问的模板,同时引入 DataSource 概念,屏蔽具体的数据库,就便利了上层应用业务程序员。然后,我们再进行 SQL 参数的处理,SQL 请求带有参数,实现把数据转换成 SQL 语句所需要的参数格式,对 SQL 语句执行后的返回结果,又要自动绑定为业务对象。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文总结了Spring框架中JdbcTemplate的重要性以及其在数据库操作中的作用。JdbcTemplate作为Spring框架的一部分,通过封装JDBC的API,提供了更为便捷的数据库访问方式,使开发人员能够高效、灵活地进行数据库操作,从而缩短开发周期、降低成本并提高应用程序的稳定性和性能表现。文章重点回顾了JdbcTemplate的实现过程,包括JDBC访问的模板抽取、SQL参数处理、数据库连接池的实现以及将SQL语句配置化等内容。此外,文章还提供了针对每个章节的思考题和参考答案,以帮助读者更好地掌握内容并进行扩展。通过对JdbcTemplate的学习,读者可以举一反三,提出自己的解决方案。整体而言,本文通过深入浅出的方式,向读者介绍了JdbcTemplate的重要性和实现过程,为读者进一步学习和探索提供了基础和思路。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《手把手带你写一个 MiniSpring》,新⼈⾸单¥59
《手把手带你写一个 MiniSpring》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(2)
- 最新
- 精选
- 风轻扬读写分离的实现,按照老师的思路,实现了一下。 1、增加sqlType参数。 首先改造MapperNode,增加sqlType参数. 2、注入双数据源。 因为我们配置到applicationContext.xml中的是SqlSessionFactory,所以数据源的注入要在这个类中。 public class DefaultSqlSessionFactory implements SqlSessionFactory { ........ @Autowired private DataSource readDataSource; @Autowired private DataSource writeDataSource; @Override public SqlSession openSession() { ....... defaultSqlSession.setReadDataSource(readDataSource); defaultSqlSession.setWriteDataSource(writeDataSource); return defaultSqlSession; ....... } ........ } 3、根据sqlType将不同的数据源注入jdbcTemplate中 之后在openSession的时候,塞给SqlSession对象。当用户执行操作的时候,根据操作类型的不同,给JdbcTemplate注入不同的数据源 public class DefaultSqlSession implements SqlSession{ ......... private DataSource readDataSource; private DataSource writeDataSource; ....省略readDataSource和writeDataSource的set方法.... @Override public Object selectOne(String sqlId, Object[] args, PrepareStatementCallBack pstmtcallback) throws Exception { MapperNode mapperNode = this.sqlSessionFactory.getMapperNode(sqlId); if (mapperNode.getSqlType().equals("3")) { jdbcTemplate.setDataSource(readDataSource); } return jdbcTemplate.queryObject(mapperNode.getSql(), args, pstmtcallback); } @Override public Integer delete(String sqlId, Object[] args) throws Exception { MapperNode mapperNode = this.sqlSessionFactory.getMapperNode(sqlId); if (mapperNode.getSqlType().equals("1")) { jdbcTemplate.setDataSource(writeDataSource); } return jdbcTemplate.delete(mapperNode.getSql(), args); } ......... }
作者回复: 赞一个!
2023-05-21归属地:北京2 - peter请教老师几个问题: Q1:会讲解MiniTomcat吗? 很期望针对Tomcat也出一个类似的专栏。 Q2:MVC会导致低并发吗? MVC用一个单一的 Servlet 拦截所有请求,这个设计会降低系统的并发吗?
作者回复: 会跟平台商量是不是要出MiniTomcat。 并发问题需要系统级的解决(web server, servlet 容器,缓存,连接池等等),不是单一servlet这一点可以决定的,servlet本身也是单实例多线程的。
2023-04-17归属地:北京
收起评论