java web学习07:数据源javaBean

一、概述

在这里插入图片描述
在这里插入图片描述

二、创建项目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页面
在这里插入图片描述

发布了30 篇原创文章 · 获赞 0 · 访问量 539

猜你喜欢

转载自blog.csdn.net/weixin_44202489/article/details/102946861
今日推荐