JDBC(Java Database connectivity),是连接数据库的一种方式。后面的框架Mybatis和Hibernate等都封装的是JDBC。在JDBC中常用的API有4个:DriverManager、Connection、Statement、ResultSet。

代码演示:

  首先要导入jar包: jstl_el、jstl-1.2_1、mysql-5.1.10

User.java

 public class User {
private int id;
private String age;
private String name; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getAge() {
return age;
} public void setAge(String age) {
this.age = age;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
}
}

QueryServlet.java

 package cn.woo.servlet;

 import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import cn.woo.entity.User;
import cn.woo.util.DBUtil; /**
* 类说明:接收请求的Servlet
*
* @author wyh
* @version 创建时间:2018年8月23日 下午2:46:29
*/
public class QueryServlet extends HttpServlet { /**
*
*/
private static final long serialVersionUID = 1L; @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8"); String action = req.getParameter("action");
List<User> userList = new ArrayList<>(); switch (action) {
case "getUserList":
try {
ResultSet resultSet = DBUtil.query("select * from user");
// 遍历结果集【一行行数据读取】,将结果集放置到实体对象中
while (resultSet.next()) {
User user = new User();
user.setId(resultSet.getInt("id"));
user.setAge(String.valueOf(resultSet.getInt("age")));
user.setName(resultSet.getString("name"));
userList.add(user);
}
req.setAttribute("userList",userList);
// 跳转至展示页面
req.getRequestDispatcher("../UserList.jsp").forward(req, resp);
} catch (SQLException e) {
e.printStackTrace();
}finally {
// 释放资源
DBUtil.closeResource();
}
break;
case "deleteUserInfo":
try {
String id = req.getParameter("id");
int delResult = DBUtil.insertOrDeleteOrUpdate("delete from user where id='"+id+"'");
if(delResult>0) {
System.out.println("删除成功");
}
} catch (SQLException e) {
e.printStackTrace();
}
break;
case "updateUserName":
try {
String id = req.getParameter("id");
String name = req.getParameter("name");
int updateResult = DBUtil.insertOrDeleteOrUpdate("update user set name='"+name+"' where id='"+id+"'");
if(updateResult>0) {
System.out.println("更新用户名成功");
}
} catch (SQLException e) {
e.printStackTrace();
}
break;
case "insertUserInfo":
try {
String addAge = req.getParameter("age");
String addName = req.getParameter("name");
int addResult = DBUtil.insertOrDeleteOrUpdate("insert into user(age,name) value('"+addAge+"','"+addName+"')");
if(addResult>0) {
System.out.println("新增用户成功");
}
} catch (SQLException e) {
e.printStackTrace();
}
break;
default:
break;
}
}
}

UserList.jsp

 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户信息列表</title>
<style type="text/css">
*{
padding: 0;
margin: 0;
} table{
margin: 300px auto;
} td{
width:100px;
text-align: center;
}
</style>
</head>
<body>
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td>序号</td>
<td>工号</td>
<td>年龄</td>
<td>姓名</td>
</tr>
<c:forEach items="${ userList }" var="user" varStatus="status">
<tr>
<td>${ status.index+1 }</td>
<td>${ user.id }</td>
<td>${ user.age }</td>
<td>${ user.name }</td>
</tr>
</c:forEach>
</table>
</body>
</html>

DBUtil.java

 package cn.woo.util;

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; /**
* 类说明:数据库连接工具类
* @author wyh
* @version 创建时间:2018年8月23日 下午3:58:55
*/
public class DBUtil { private static Connection connection;
private static Statement statement; static {
try {
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
// 获取连接 【并设置编码方式】
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/woo?unicode=true&characterEncoding=UTF-8","root","root");
} catch (SQLException e) {
e.printStackTrace();
}
} public static Statement getStatement() throws SQLException {
// 获取statement 【用于执行SQL语句】
statement = connection.createStatement();
return statement;
} /**
* 查
* @param sql 执行查询的sql语句
* @return resultSet 返回的结果集
* @throws SQLException
*/
public static ResultSet query(String sql) throws SQLException {
return getStatement().executeQuery(sql);
} /**
* 增/删/改 通用方法
* @param sql 要执行的SQL语句
* @return 执行结果 >0表明执行成功
* @throws SQLException
*/
public static int insertOrDeleteOrUpdate(String sql) throws SQLException {
return getStatement().executeUpdate(sql);
} /**
* 释放资源
*/
public static void closeResource() {
try {
if(statement!=null) {
statement.close();
}
if(connection!=null) {
connection.close();
}
}catch(Exception e) {
e.printStackTrace();
}
}
}

JDBC连接数据库(Servlet+JSP)的更多相关文章

  1. tomcat中配置servlet.xml的JNDI或JDBC连接数据库【原】

    tomcat中配置servlet.xml的JNDI或JDBC连接数据库 一. JNDI 1. tomcat环境 找到X:\xxx\......\apache-tomcat-6.0.39\conf\se ...

  2. 小峰servlet/jsp(3)登陆功能实现

    一.User模型: User.java: package com.java1234.model; public class User { private int id; private String ...

  3. 使用JNDI或JDBC连接数据库

    一. JNDI 1. tomcat环境 找到X:\xxx\......\apache-tomcat-6.0.39\conf\server.xml,在<Host>节点中配置如下: <H ...

  4. javabean+servlet+jsp实现分页

    前端实现用ligerUI实现分页,感觉用框架确实简单,闲着无聊,模拟着liger的分页界面实现了一遍(只要是功能,样式什么无视) 这里用基础的三层架构+servlet+jsp实现,思路很简单,把所有分 ...

  5. Eclipse通过jdbc连接数据库制作简单登陆界面

    一.前言: 做网站开发,要求有多种搭配方式,前台技术可以使用PHP.ASP.JSP.ASP.NET.CGI等任何一种: 需要用到的基础语言用的最多的就是HTML/CSS.JS.JAVA.XML这些了, ...

  6. JDBC和servlet设计思路、DAO模式思路、MVC思路粗略总结

    #JDBC和Servlet联合起来使用的项目思路: 说明:建库,最好一开始设置utf8字符集 step1: 在数据库中建表 如   create table t_user{ ...... } step ...

  7. 🈲Eclipse通过jdbc连接数据库制作简单登陆界面【新手必看】

    一.前言: 做网站开发,要求有多种搭配方式,前台技术可以使用PHP.ASP.JSP.ASP.NET.CGI等任何一种: 需要用到的基础语言用的最多的就是HTML/CSS.JS.JAVA.XML这些了, ...

  8. 小峰servlet/jsp(1)

    一.scriptlet标签: 通过scriptlet标签我们可以可以在jsp理嵌入java代码: 第一种:<%! %>  可以在里面定义全局变量.方法.类: 第二种:<% %> ...

  9. MySQL+Service+Servlet+Jsp实现Table表格分页展示数据

    下面以一个示例讲解如何使用MySQL+Service+Servlet+Jsp实现Table表格分页展示数据: eg:请假管理系统 要求如下: 一.打开首页页面, 访问查询请假记录的 servlet , ...

  10. JDBC连接数据库

    JDBC连接数据库 1.加载JDBC驱动程序. Class.forName("com.mysql.jdbc.Driver"); 建立连接,. Connection conn = D ...

随机推荐

  1. linux date用法

    读者可以设定特定的格式,格式设定规则:一个加号后接数个标记,每个标记中都有%,其中可用的标记列表和说明如下:  %n : 下一行 %t : 跳格 %H : 小时(00..23) %I : 小时(01. ...

  2. HDFS内容追加

    配置:hdfs-site.xml <property> <name>dfs.support.append</name> <value>true</ ...

  3. python接口自动化(三十五)-封装与调用--流程类接口关联(详解)

    简介 流程相关的接口,主要用 session 关联,如果写成函数(如上篇),s 参数每个函数都要带,每个函数多个参数,这时候封装成类会更方便.在这里我们还是以博客园为例,带着小伙伴们实践一下. 接口封 ...

  4. Xuzhou Winter Camp 1C(模拟)

    #include<iostream>#include<cstdio>#include<algorithm>#include<cmath>#include ...

  5. 洛谷P1053 篝火晚会

    P1053 篝火晚会 题目描述 佳佳刚进高中,在军训的时候,由于佳佳吃苦耐劳,很快得到了教官的赏识,成为了“小教官”.在军训结束的那天晚上,佳佳被命令组织同学们进行篝火晚会.一共有n个同学,编号从1到 ...

  6. vue使用webpack压缩后体积过大要怎么优化

    vue使用webPack压缩后存储过大,怎么优化 在生产环境去除developtool选项 在webpack.config.js中设置的developtool选项,仅适用于开发环境,这样会造成打包成的 ...

  7. Redis数据类型,持久化,回收策略——(Redis缓存第一章)

    缓存:第一种是内存缓存 比如Map(简单的数据结构),以及EH Cache(Java第三方库),第二种是缓存组件比如Memached,Redis:Redis(remote dictionary ser ...

  8. jmeter将参数值写入到指定文件(转)

    有时在测试过程中需要将测试过程中生成的参数保存下来,jmeter并没有此类功能,此时,可以 通过beanshell编写代码来实现 思路: 每次请求响应返回后,通过正则表达式获取到需要保存的值,通过Be ...

  9. iconfont的应用

    http://www.iconfont.cn/help/platform.html http://www.iconfont.cn/users/project 点击下载之后: 打开demo.html: ...

  10. Unittest组织用例的姿势

    本文我们将会讲解Python Unittest 里组织用例的5种姿势. 环境准备: python 3.0以上 python requests库 小编的环境: python 3.6.4 一.TestLo ...