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. python 开发微信 自定义菜单

    1.再次重复说明,下面代码只是为了简单说明接口获取方式.实际中并不推荐,尤其是业务繁重的公众号,更需要中控服务器,统一的获取accessToken. vim basic.py #name: basic ...

  2. R语言中的字符处理

    R语言中的字符处理 (2011-07-10 22:29:48) 转载▼ 标签: r语言 字符处理 字符串 连接 分割 分类: R R的字符串处理能力还是很强大的,具体有base包的几个函数和strin ...

  3. 通过sessionid提取这个用户在服务器中保存的session变量

  4. 项目中gulp使用发生的错误及解决

    在项目开发中,执行gulp css来生成合成的css文件时,报如下错误 Error: Cannot find module 'browserslist' 解决方法: npm install brows ...

  5. cc和gcc

    cc就是一个链接文件连接到gcc中.只不过cc是unix中常用的编辑工具,而在linux中用的gcc.有一些在unix中写好的程序要放在linux中,所以要指定命令cc为gcc,其实一样.用where ...

  6. idea中,使用facets添加完web后,项目已变为web项目,但web.xml中内容经常变为红色,并报错,如何解决?

    这中错误经常是由于配置facets并添加完web后,没有进一步配置web.xml文件,导致web.xml是使用系统默认的. 如图:需要进一步配置web.xml文件,使用我们src/main/webap ...

  7. <转>哥舒意:关于米奇的三个真相 (米奇·阿尔博姆)

    http://book.douban.com/review/6436827/   <时光守护者>的故事也不算复杂,虽然有三条线同时进行,但是三条线的情节都条理分明,而且这次他使用了类似于奇 ...

  8. java实例练习——基于TCP/IP协议的多客户端通信

    先说一下大概的思路: 应用多线程来实现服务器与多客户端之间的通信 1.服务器端创建ServerSocket,循环调用accept()等待客户端连接: 2.客户端创建一个Socket并请求与服务器端连接 ...

  9. bzoj1412: [ZJOI2009]狼和羊的故事(最小割)

    传送门 首先,考虑只有狼和羊怎么办.我们把源点向所有羊连边,容$inf$,所有狼向汇点连边,容$inf$,然后羊向周围所有的狼连边,容$1$.那么,只要求一个割就能把狼和羊给分开,求一个最小割就是答案 ...

  10. [Xcode 实际操作]五、使用表格-(6)UITableView滑动到指定单元格

    目录:[Swift]Xcode实际操作 本文将演示如何使表格滑动到指定的索引路径. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //首 ...