一、概述
二、创建项目DdtaSourceDemo
创建lib文件夹导入jar包
创建META-INF文件夹
创建项目context.xml
编写数据库连接管理器ConnectionManager
```java
package net.qing.dbutil;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
/** * 功能:数据库连接管理类 * 日期:2019 年 10 月 28 日
31
*/public class ConnectionManager {
/** * 私有化构造方法,拒绝实例化 */
private ConnectionManager() {
}
/** * 获取数据库连接静态方法 * * @return */
public static Connection getConnection() {
// 定义数据库连接
Connection conn = null;
try { // 初始化上下文
Context ctx = new InitialContext();
// 在数据库连接池里查询获取数据源
DataSource ds = (DataSource) ctx.lookup("java:comp/env/qing/news");
// 通过数据源获取数据库连接
conn = ds.getConnection(); }
catch (NamingException e)
{ e.printStackTrace(); }
catch (SQLException e)
{
e.printStackTrace();
}
// 返回数据库连接
return conn;
}
public static void main(String[] args) {
Connection conn = getConnection();
if (conn !=null){
System.out.println("恭喜连接成功");
}else {
System.out.println("抱歉连接失败");
}
}
}
编辑首页文件
编写topic_list.jsp文件
<%@ page import="java.sql.Connection" %>
<%@ page import="net.qing.dbutil.ConnectionManager" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %><%--
Created by IntelliJ IDEA.
User: lenovo
Date: 2019/11/7
Time: 9:35
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>新闻栏目列表</title>
</head>
<body>
<%
//获取数据库连接
Connection conn = ConnectionManager.getConnection();
//定义SQL字符串
String strSQL = "select * from topic";
//创建语句对象
Statement stmt = conn.createStatement();
//执行SQL查询,返回结果集
ResultSet rs = stmt.executeQuery(strSQL);
//遍历结果集,分行显示在页面
while (rs.next()){
out.print(rs.getInt("tid")+""+rs.getString("tname") +"<br/>");
}
%>
</body>
</html>
添加格式
<%@ page import="java.sql.Connection" %>
<%@ page import="net.qing.dbutil.ConnectionManager" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %><%--
Created by IntelliJ IDEA.
User: lenovo
Date: 2019/11/7
Time: 9:35
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>新闻栏目列表</title>
</head>
<body>
<%
//获取数据库连接
Connection conn = ConnectionManager.getConnection();
//定义SQL字符串
String strSQL = "select * from topic";
//创建语句对象
Statement stmt = conn.createStatement();
//执行SQL查询,返回结果集
ResultSet rs = stmt.executeQuery(strSQL);
//设置格式框
out.println("<table border =1 cellpadding = '10'>" +
"<tr><td width='50' align='center'><b>编号</b></td><td width='50' align='center'><b>栏目</b></td></tr>");
//遍历结果集,分行显示在页面
while (rs.next()){
out.print("<tr><td align='center'>"+rs.getInt("tid")+"</td><td align='center'>"+rs.getString("tname") +"</td></tr><br/>");
}
%>
</body>
</html>
栏目实体类
封装业务
具有实现特定功能的方法和方法实现
通常与一个封装数据的JavaBean对应
创建栏目数据访问对象——TopicDao:
栏目数据访问类TopicDao
package net.qing.dao;
/**
* 功能:栏目数据访问类
* 日期:2019年10月28日
*/
import net.qing.bean.Topic;
import net.qing.dbutil.ConnectionManager;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class TopicDao {
/**
* 查询全部栏目
*
* @return 全部栏目构成的列表
*/
public List<Topic> findAllTopics() {
// 定义栏目列表
List<Topic> topics = new ArrayList<>();
try {
// 获取数据库连接
Connection conn = ConnectionManager.getConnection();
// 定义SQL字符串
String strSQL = "select * from topic";
// 创建语句对象
Statement stmt = conn.createStatement();
// 执行SQL查询,返回结果集
ResultSet rs = stmt.executeQuery(strSQL);
// 遍历结果集
while (rs.next()) {
// 创建栏目实体对象
Topic topic = new Topic();
// 利用当前记录的字段值设置栏目实体属性
topic.setTid(rs.getInt("tid"));
topic.setTname(rs.getString("tname"));
// 将栏目实体添加到栏目列表
topics.add(topic);
}
} catch (SQLException e) {
e.printStackTrace();
}
// 返回栏目列表
return topics;
}
}
编写topic_list_new.jsp页面
<%@ page import="net.qing.dao.TopicDao" %>
<%@ page import="java.util.List" %>
<%@ page import="net.qing.bean.Topic" %><%--
Created by IntelliJ IDEA.
User: lenovo
Date: 2019/11/7
Time: 19:07
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>新闻栏目列表</title>
</head>
<body>
<%
//创建栏目数据访问对象
TopicDao topicDao = new TopicDao();
//获取全部栏目列表
List<Topic> topics = topicDao.findAllTopics();
//遍历全部栏目并在页面上分行显示
for (Topic topic: topics){
out.print(topic.getTid() + "" +topic.getTname() +"<br/>");
}
%>
</body>
</html>
启动tomcat服务器,访问topic_list_new.jsp页面