• JDBC和JDBCtemplate区别


    文章来自 https://blog.csdn.net/qq_39651022/article/details/78478571

    1.背景介绍

    Java程序员在以后的工作中很重要的一点就是得和数据库打交道,但是代码和数据库是两个不相干的.

    怎么使用代码对数据库进行操作呢,这个时候就用到JDBC。


    2.知识剖析

    什么是JDBC?

    ①JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,

    可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。

    而多的这个template,就是模板,是Spring框架为我们提供的.

    所以JDBCTemplate就是Spring对JDBC的封装,通俗点说就是Spring对jdbc的封装的模板


    3.常见问题

    jdbc做了什么?

    JDBCTemplate做了什么?

    jdbcTemplate是怎么做到的?


    4.解决方案

    JDBC的原理就是通过Connection这个类获取数据库的连接,

    然后通过PreparedStatement类处理SQL语句,再通过它的.setObject方法传入数据,

    最后通过方法.executeUpdate()和.executeQuery()执行更新,这就是JDBC的基本原理。

    JDBCTemplate帮我们省去了很多麻烦.

    ②指定数据库连接参数.

    打开数据库连接.

    预编译并执行SQL语句.

    遍历查询结果(如果需要的话).

    处理抛出的任何异常.

    处理事务.

    关闭数据库连接

    那么JDBCTemplate怎么做到的,这就和spring有关系了

    SpringIOC容器将管理数据库连接的数据源当作普通Java Bean一样管理,

    然后将数据源注入封装类JdbcTemplate中,:

    JdbcTemplate的dataSource属性就是注入配置的数据源


    5.编码实战


    6.扩展思考

    JdbcTemplate对JDBC的差别在哪?

    jdbc需要每次进行数据库连接, 然后处理SQL语句,传值,关闭数据库.

    甚至有时还可能会出现数据库忘记关闭导致连接被占用.

    在以后的工作中,客户的需求肯定不是一成不变的,这就导致经常会改动数据库内容.

    通过JDBCtemplate我们只需更改需要更改的那一部分内容就可以了,不需要进行全局修改.

    Spring将替我们完成所有的JDBC底层细节处理工作.


    7.参考文献

    ①百度

    ②http://www.cnblogs.com/binyue/p/4037628.html


    8.更多讨论

    (1)使用 jdbc.properties 有什么好处?

    假如我们需要更改连接数据库的配置,我们直接在jdbc.properties里面更改一次就可以了.而JDBC的话需要增删改查里面每个连接数据库的配置都需要更改.

    (2)如果真的发生数据库连接资源被占用,有什么解决方法

    修改 MySQL 安装目录下 my.ini 或者 my.cnf 文件内的 max_user_connections 参数的数值,重启 MySQL 服务器。

    (3)jdbctemplate和mybatis分别在什么情况下使用,jdbc template  和spring+mybatis一样吗?,和mybatis相比有什么优缺点?

    这三个问题其实差不多.JDBCTemplate和Mybatis不一样,Mybatis的sql语句放在了mapper.xml文件里面.相当于配置在了环境当中,随时都可以使用. 而JDBCTemplate则是写在了实现类里面,使用的时候还要进行重新调用配置之类的. 以后的工作中可能对多个表进行操作,配置在环境中使用起来非常方便.

    (4)如何来控制数据库的打开关闭.

    Class.forName("com.mysql.jdbc.Driver"); 这个初始化驱动就是打开了数据库链接

    Connection c = DriverManager.//连接数据库,

    //关闭数据链接

    ps.close();

    c.close();

    而JDBCTemplate的打开关闭则是封装在JDBCTemplate当中.

    (5)jdbc 和 jdbctemplate 相比  效率有差别么

    单从效率方面来说,实际上jdbc比jdbctemplate的效率会高一点.jdbcTemplate则更方便我们进行更改内容,和理解当中的逻辑.

    (6)jdbcTemplate 实现执行多条sql语句.

    一种直接用mysql的批量处理语句.

    另外一种拼接SQL语句直接一次性提交多少条数据.

    (7)jdbcTemplate有什么缺点

    必须于Spring框架结合在一起使用、不支持数据库跨平台、默认没有缓存.

  • 相关阅读:
    一款纯css3实现的翻转按钮
    一款基于jquery实现的鼠标单击出现水波特效
    一款由html5 canvas实现五彩小圆圈背景特效
    一款由css3和jquery实现的卡面折叠式菜单
    一款jquery实现的整屏切换特效
    联想笔记本Win10 F1-F12失效的解决方法
    Android笔记:如何在Fragment里使用findViewById()方法?
    java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
    Call requires API level 21(Current min is 16)
    Android笔记:DrawerLayout抽屉布局的使用
  • 原文地址:https://www.cnblogs.com/wrkjwl/p/9107954.html
Copyright © 2020-2023  润新知