• J5_数据源及分层开发


    数据源及分层开发

    使用JDBC访问数据库,每次访问前需要先获取连接;每次操作结束后,要释放资源;频繁的连接导致系统的安全性和稳定性差。

    可以使用数据源连接池解决此问题。

    数据源与连接池
    • 连接池

      连接池的工作原理:连接池是由容器提供的,用来管理池中连接对象。连接池自动分配连接对象并对闲置的连接进行回收

    • 数据源(DataSource)

      javax.sql.DataSource接口负责建立与数据库的连接;

      由Tomcat提供,将连接保存在连接池中

      1、数据源用来连接数据库,获得连接(Connection)对象

      2、连接池用来管理连接( Connection)对象

      3、在程序中使用 JNDI 获取数据源

    在Tomcat中配置数据源的步骤:
    • Tomcat中加入数据库驱动文件

    • 配置Tomcat的conf/context.xml

      <Resource name="jdbc/news" 
                auth="Container"  type="javax.sql.DataSource"  maxActive="100" 
                maxIdle="30" maxWait="10000" username="root"  password="bdqn" 
                driverClassName="com.mysql.jdbc.Driver" 
                url="jdbc:mysql://127.0.0.1:3306/kgcnews"/>
      
      • 1
      • 2
      • 3
      • 4
      • 5
    1. name 指定Resource的JNDI名称
    2. Container 指定管理Resource的Manager
    3. type 指定Resource所属的Java类
    4. maxActive 指定连接池中处于活动状态的数据库连接的最大数目
    5. maxIdle 指定连接池中处于空闲状态的数据库连接的最大数目
    6. maxWait 指定连接池中的连接处于空闲的最长时间
    • 使用JNDI获取连接对象

      JNDI (Java Nameing and Directory Interface,java命名和目录接口)是一种将对象和名字绑定的技术,对象工厂负责生产出对象,这些对象都和唯一的名字相绑定。程序中可以通过这个名字来获得对象的引用。Tomcat把DataSource作为一种可配置的JNDI资源来处理,生成DataSource对象的工厂为org.apache.comm.ons.dbcp.BasicDataSourceFactory。

    使用JNDI获取连接对象
        Context ctx = new InitialContext();
    	DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/news");   固定的
    	Connection conn = ds.getConnection();
    	out.println(conn);
    
    • 1
    • 2
    • 3
    • 4
    • 5

    因为JNDI是由Tomcat内部提供的,关联性强,只能放一个项目。大多使用德鲁伊(druid),德鲁伊使用的文档说明连接
    https://editor.csdn.net/md?not_checkout=1&spm=1001.2014.3001.4503&articleId=126987559

    JavaBean封装数据

    JavaBean就是一个Java类,类必须是具体的和公共的,并且具有无参数的构造器【有时一个bean就是一个实体类】

    作用:封装业务逻辑;封装数据

    分层开发的优势
    • 分层的组成及作用

      • 表示层:与用户交互、展示数据
      • 业务逻辑层:控制业务流程及事务
      • 数据访问层:实现数据库操作
    • 分层优点

      • 职责清晰,分工明确
      • 利于维护扩展
      • 利于代码重用
    JSP动作标签:
    < jsp:useBean>
    • JSP动作标签

      通过动作标签,程序员可以在JSP页面中把页面的显示功能部分封装起来,使整个页面更简洁和易于维护

    • < jsp:useBean>

      装载一个将在JSP页面中使用的JavaBase,发挥Java组件重用的优势

      
      
      • 1
      • name:JavaBean的引用名
      • package.class:JavaBean的类
      • scope:JavaBean的范围
    < jsp:include>

    把指定文件插入正在生成的页面中

    	
    
    • 1
    < %@include%>
    <%@include file="URL"%>
    
    • 1
    • < %@include%>与< jsp:include>对比:

      • < jsp:include>为动态包含,将被包含页面的结果包含进来。先处理,再包含

      • < %@include%>为静态包含,将被包含页面的内容包含进来。先包含,再处理

    页面跳转:
    • 页面跳转

      • request.getRequestDispatcher().forward() 转发

      • response.sendRedirect() 重定向

    • < jsp:forward>

      
      
      • 1
  • 相关阅读:
    汽车电子专栏目录一览
    leetcode 729. My Calendar I(日程1)
    Day 53 前端开发 jQuery
    霍尔电流传感器在UPS蓄电池浮充电流远程监测方案的应用
    自定义starter
    【TSP问题】基于遗传算法求解固定的开放式不返回多旅行推销员问题(M-TSP)附matlab代码
    【计算机网络】TCP为什么需要3次握手
    【模型训练】YOLOv7车辆三类别检测
    【TES720D-KIT】青翼科技支持双网口的全国产化四核CPU+FPGA处理器开发套件
    mlflow详细安装部署
  • 原文地址:https://blog.csdn.net/m0_70083523/article/details/126987559