手把手带你写一个 MiniSpring
郭屹
前 Sun Microsystems Java 研发工程师,开源软件 MiniSpring、MiniTomcat 开发者
6170 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 26 讲
手把手带你写一个 MiniSpring
15
15
1.0x
00:00/00:00
登录|注册

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
立即购买
登录 后留言

全部留言(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归属地:北京
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部