5.数据源及分层开发
JDBC访问数据库的弊端
- 分析
- 访问前需要先获取连接
- 每次操作结束后,要释放资源
- 频繁的连接导致系统的安全性和稳定性差
- 解决问题
- 可以使用数据源和连接池
使用Tomcat数据源
- 连接池工作原理
- 连接池是由容器提供的,用来管理池中连接对象
- 数据源(DataSource)
- javax.sql.DataSource接口负责建立与数据库的连接
- 由Tomcat提供,将连接保存在连接池中
- 注意:
- 数据源用来连接数据库,获得连接(Connection)对象
- 连接池用来管理连接( Connection )对象
- 在程序中使用JNDI获取数据源
- 在Tomcat中配置数据源的步骤
- Tomcat中加入数据库驱动文件
- 配置Tomcat的conf/context.xml
- 使用JNDI获取连接对象
步骤
1、配置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"/>
<!--
name 指定Resource的JNDI名称
Container 指定管理Resource的Manager
type 指定Resource所属的Java类
maxActive 指定连接池中处于活动状态的数据库连接的最大数目
maxIdle 指定连接池中处于空闲状态的数据库连接的最大数目
maxWait 指定连接池中的连接处于空闲的最长时间
-->
2、使用JNDI获取连接对象
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/news"); //上面的数据源name
Connection conn = ds.getConnection();
out.println(conn);
JavaBean
JavaBean
- 就是一个Java类
作用
- 封装业务逻辑
- 封装数据
dao包中的接口(NewsDao)以及类(NewsDaoImpl)主要负责和数据操作相关的事情
CategoryDao{
//根据类别删除新闻信息
//删除新闻分类
}* **service**包中的接口和类对dao的方法进行封装和调用,主要负责和**业务逻辑相关的操作** * ```java //需求:删除某新闻类别 CategoryService{ …deleteCategory ()… }
JSP动作标签
通过动作标签,程序员可以在JSP页面中把页面的显示功能部分封装起来,使整个页面更简洁和易于维护
< jsp:useBean >
- < jsp:useBean >
- 装载一个将在JSP页面中使用的JavaBean,发挥Java组件重用的优势
<jsp:useBean id="name" class="package.class" scope="scope" >
/*
id="name" ———— JavaBean的引用名
class="package.class" ———— JavaBean的类
scope="scope" ———— JavaBean的范围
*/
< jsp:include >
- < jsp:include >
- 把指定文件插入正在生成的页面中
<jsp:include page="URL"> //page="URL" ———— 引入的页面
< %@include% >
<%@include file="URL"%> //file="URL" ———— 引入的页面
- < %@include% >与< jsp:include >
- < jsp:include >为动态包含,将被包含页面的结果包含进来。先处理,再包含
- < %@include% >为静态包含,将被包含页面的内容包含进来。先包含,再处理
页面跳转
- 页面跳转
- request.getRequestDispatcher().forward()转发
- response.sendRedirect()重定向
- < jsp:forward >
<jsp:forward page="URL"> //page="URL" ———— 跳转的页面
分层开发
图解
解释
- 三层架构:
- 视图:
HTML
、JSP
- 业务逻辑层:
service
- 数据访问层:
dao
- SpringMVC:
- View:视图
- Model:
dao
、service
、pojo
- Controller:
action
、servlet
…