• 德鲁伊数据库连接池的使用


    为什么要使用数据库连接池?

     

     

    有哪些数据库连接池?

    在这里插入图片描述

     

    怎么使用德鲁伊?

    (第三方jar)

     不过现在流行maven,不建议使用古老方式。

    (properties文件)

    xx.properties文件是用于收集数据库信息如:驱动地址、数据库 连接地址、数据库账号、数据库密码等等一些配置信息。

    !注意 xx.properties文件是在src目录下。

    1. driver = com.mysql.jdbc.Driver
    2. url = jdbc:mysql:///db_music
    3. acc = root
    4. pass = root

    DruidDataSource

             DruidDataSource 是阿里写出来的一个数据源, 它不仅可以获取数据库连接,还把这些数据库连接管理了起来,也就是所谓的数据库连接池。这样的话,当通过该数据源获取数据库连接的时候,如果数据库连接池里有可以使用的连接,那么就直接返回该连接,就省的每次获取数据库连接都要创建了。

    ResourceBundle

            这个类主要用来解决国际化和本地化问题。国际化和本地化可不是两个概念,两者都是一起出现的。可以说,国际化的目的就是为了实现本地化。比如对于“取消”,中文中我们使用“取消”来表示,而英文中我们使用“cancel”。若我们的程序是面向国际的(这也是软件发展的一个趋势),那么使用的人群必然是多语言环境的,实现国际化就非常有必要。而ResourceBundle可以帮助我们轻松完成这个任务:当程序需要一个特定于语言环境的资源时(如 String),程序可以从适合当前用户语言环境的资源包(大多数情况下也就是.properties文件)中加载它。这样可以编写很大程度上独立于用户语言环境的程序代码,它将资源包中大部分(即便不是全部)特定于语言环境的信息隔离开来。说白了ResourceBundle.getBundle()就是获取文件数据的高级读取器。

    utils Package

     

    1. /**
    2. * @author 王永辉
    3. * @version v1.1.0
    4. * @description
    5. * @date 2022-06−06-06−28
    6. **/
    7. public class JDBCUtils {
    8. private static Connection conn;
    9. private static String driverName;
    10. private static String dbUrl;
    11. private static String acc;
    12. private static String pass;
    13. //德鲁伊
    14. private static DruidDataSource dds = new DruidDataSource();
    15. /*
    16. *@Author 玄烨
    17. * @Method 此方法用于静态代码块
    18. * @Date 8:30
    19. */
    20. static {
    21. //德鲁伊
    22. //读取数据库配置资源
    23. ResourceBundle bundle = ResourceBundle.getBundle("db_music");
    24. String driverName = bundle.getString("driver");
    25. String dbUrl = bundle.getString("url");
    26. String acc = bundle.getString("acc");
    27. String pass = bundle.getString("pass");
    28. //设置Connection连接信息
    29. dds.setDriverClassName(driverName);
    30. dds.setUrl(dbUrl);
    31. dds.setUsername(acc);
    32. dds.setPassword(pass);
    33. }
    34. /*
    35. *@Author 玄烨
    36. * @Method 此方法用于获取连接
    37. * @Date 8:30
    38. */
    39. public static Connection getConn() {
    40. try {
    41. //连接
    42. conn = dds.getConnection();
    43. } catch (SQLException e) {
    44. e.printStackTrace();
    45. }
    46. return conn;
    47. }
    48. /*
    49. *@Author 玄烨
    50. * @Method 此方法用于关闭资源
    51. * @Date 11:43
    52. */
    53. public static void closeAll(ResultSet rs,PreparedStatement ps,Connection conn) {
    54. try {
    55. if(rs!=null) {
    56. rs.close();
    57. }
    58. if(ps!=null) {
    59. ps.close();
    60. }
    61. if(conn!=null) {
    62. conn.close();
    63. }
    64. } catch (SQLException e) {
    65. e.printStackTrace();
    66. }
    67. }
    68. }

    效果:

     

  • 相关阅读:
    s3存储容器与awscli的交互
    Leetcode 2876. Count Visited Nodes in a Directed Graph
    java培训技术SpringMVC视图解析器
    开创性的区块链操作系统项目——内容所有权和国际象棋
    Linux安装OpenCV并配置VSCode环境
    Wine 8.14 开发版正式发布
    指针和数组笔试题深度解析
    Kubernetes 100个常用命令!点赞收藏一键三连
    三国志14信息查询小程序(历史武将信息一览)制作更新过程02-基本架构
    Linux学习:初识Linux
  • 原文地址:https://blog.csdn.net/wyh_File/article/details/125516544