首页 > 数据库 >7-在Servlet中连接数据库,怎么做?

7-在Servlet中连接数据库,怎么做?

时间:2023-05-06 12:58:10浏览次数:35  
标签:String 数据库 resultSet public connection null Servlet 连接

  • Servlet是Java程序,所以在Servlet中完全可以编写JDBC代码连接数据库。
  • 在一个webapp中去连接数据库,需要将驱动jar包放到WEB-INF/lib目录下。(com.mysql.cj.jdbc.Driver 这个类就在驱动jar包当中。)

代码如下:

package com.north.javaweb.servlet;

import jakarta.servlet.*;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;

public class StudentServlet implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
        // 设置相应的内容类型
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        // 连接数据库
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        try {
            // 注册驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            // 获取连接
            String url = "jdbc:mysql://localhost:3306/north";
            String user = "root";
            String password = "123456";
            // 获取预编译数据库操作对象
            connection = DriverManager.getConnection(url, user, password);
            String sql = "select name from user";
            preparedStatement = connection.prepareStatement(sql);
            // 执行sql
            resultSet = preparedStatement.executeQuery();
            // 处理结果集
            while (resultSet.next()) {
                String name = resultSet.getString("name");
                out.println(name + "<br>");
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            // 释放资源
            if (resultSet != null) {
                try {
                    resultSet.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (preparedStatement != null) {
                try {
                    preparedStatement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (connection != null) {
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

标签:String,数据库,resultSet,public,connection,null,Servlet,连接
From: https://www.cnblogs.com/NorthPoet/p/17376890.html

相关文章

  • 8-在集成开发环境当中开发Servlet程序
    1.集成开发工具很多,其中目前使用比较多的是:IntelliJIDEA(这个居多,IDEA在提示功能方面要强于Eclipse,也就是说IDEA使用起来比Eclipse更加智能,更好用。JetBrain公司开发的。收费的。)Eclipse(这个少一些),Eclipse目前还是有团队使用,只不过处于减少的趋势,自己从事工作之后,可能......
  • 9-Servlet对象的生命周期
    1.什么是Servlet对象生命周期?Servlet对象什么时候被创建。Servlet对象什么时候被销毁。Servlet对象创建了几个?Servlet对象的生命周期表示:一个Servlet对象从出生在最后的死亡,整个过程是怎样的。2.Servlet对象是由谁来维护的?Servlet对象的创建,对象上方法的调用......
  • 10-Servlet
    第五章Servlet组件1我们为什么需要Servlet?1.1Web应用基本运行模式生活中的例子Web应用运行模1.2Web服务器中Servlet作用举例举例一:插入数据举例二:查询数据通过网页驱动服务器端的Java程序。在网页上显示Java程序返回的数据。2什么是Servlet......
  • Portainer连接远程Docker
    介绍Portainer是一个可视化的容器镜像的图形管理工具,利用Portainer可以轻松构建,管理和维护Docker环境。而且完全免费,基于容器化的安装方式,方便高效部署。官方站点:https://www.portainer.io/连接远程Docker1、配置远程Docker端口vim/usr/lib/systemd/system/docker.service......
  • servlet + Extjs + ext.ajax.request(亲测可用)
     1.js代码 Ext.onReady(function(){Ext.Ajax.request({url:"AjaxServlet.do?name=里杂谈",//url:"AjaxServlet.do",method:"get",//params:{name:"xxx"},suc......
  • canal数据库数据备份时,不同步删除分区动作。
        场景:我们有一大批业务数据,为减少数据库压力和提高使用效率,需要周期性的清理历史分区数据。但是这些数据并不是代表不要了。需要在另一个地方保存 传统数据库的主从复制功能,主要强调的是可以互为备份,强调高可用和可读写分离。但是在我们这个场景下并不适用......
  • PostgreSQL数据库支持中文拼音和笔画排序
    PostgreSQL数据库支持中文拼音和笔画排序1.前言默认安装,PG是不支持中文拼音和笔画排序的。1postgres=# select * from pg_settings where name ~ 'collate';2    name    | setting | unit |    category    |            short_d......
  • 向量数据库
    1.向量概念向量是一种在数学和物理学中常用的概念,通常表示为一个有序的数值序列,可以用来表示空间中的位置、速度、加速度、力等物理量。多维度-->多个标量一个向量通常由多个标量组成,这些标量表示在不同维度上的数值。例如,在二维平面上,一个向量可以由两个标量x和y表示,其中x表示......
  • java基于springboot+vue的校园新闻网站、校园新闻管理系统,附源码+数据库+文档+PPT,适合
    1、项目介绍校园新闻网站的主要使用者分为管理员和用户,实现功能包括管理员:首页、个人中心、用户管理、新闻类型管理、校园新闻管理、留言板管理、论坛交流、系统管理,用户前台:首页、校园新闻、论坛交流、留言反馈、个人中心、后台管理等功能。由于本网站的功能模块设计比较全面,所......
  • MySQL----数据库的安装、创建
    一、MySQL的安装。。。。。 二、MySQL实例的创建注意:停掉MySQL的服务(我的电脑---管理---服务) 如果实例一次创建不成功,第二次创建时会遇到如下错误:mysql安装出现errorNr.1045我们在windows下安装mysql时会出现Accessdeniedforuser'root'@localhost'(usingpassword:No)的问......