1. 程式人生 > >jsp+servlet+jdbc實現簡單增刪改查

jsp+servlet+jdbc實現簡單增刪改查

今天在程式設計的時候又重新往前面學習jsp+servlet+jdbc做了一個小案例,希望能夠程式猿們一點小啟發,下篇部落格會介紹在這個程式設計中可能遇到的問題。首先我們開始今天的案例;

首先所需要工具 ,以及開發環境

eclipse+mysql5.1+navicat foe mysql 這些工具是基本開發都會用到的

開發環境 jdk1.8以上 ,其實都無所謂。能搭建好tomcat就行 。

開始建web工程,整體結構如圖一個實體 處理的servlet 以及需要的試圖jsp檔案

user

user.java實體類 資料庫根據實體圖建屬性一致就行


public class User {
    private Integer id;
    private String name;
    private Integer age;
    private String tel;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public String getTel() {
        return tel;
    }
    public void setTel(String tel) {
        this.tel = tel;
    }
    @Override
    public String toString() {
        return "User [name=" + name + ", age=" + age + ", tel=" + tel + "]";
    }
    
}
 

工具類:一般在開發過程中都會用到 就封裝一個類

JdbcUtils.java

import java.sql.DriverManager;
import java.sql.SQLException;

import com.mysql.jdbc.Connection;

public  class JdbcUtils {
    public static Connection getConn() {
        String driver = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3306/test_yuanping";
        String username = "root";
        String password = "root";
        Connection conn = null;
        try {
            Class.forName(driver); //
            conn = (Connection) DriverManager.getConnection(url, username, password);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }
}
 

之後就是增刪改查的servlet 每個servlet都有標識

FindServlet

import java.io.IOException;

import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;


import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import com.yp.pojo.User;
import com.yp.utils.JdbcUtils;
@WebServlet("/FindServlet")
public class FindServlet extends HttpServlet {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         try { 

                Connection conn=JdbcUtils.getConn();
              String sql="select * from users";
              Statement st=(Statement) conn.createStatement();
              ResultSet resultSet = st.executeQuery(sql);
              List<User> list = new ArrayList<User>(); 
              while(resultSet.next()) {
                  User user=new User();
                  user.setId(resultSet.getInt("id"));
                  user.setAge(resultSet.getInt("age"));
                  user.setName(resultSet.getString("name"));
                  user.setTel(resultSet.getString("tel"));
                  list.add(user);
              }
              req.setAttribute("list", list);
              resultSet.close();
              st.close();
              }catch (Exception e) {
            // TODO: handle exception
                  e.printStackTrace();
        }
         req.getRequestDispatcher("list.jsp").forward(req, resp);
         
        
          }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // TODO Auto-generated method stub
        super.doPost(req, resp);
    }
}

InsertServlet, DeleteServlet, UpdateServlet分別如下

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import com.yp.utils.JdbcUtils;

/**
 * Servlet implementation class InsertSerlet
 */
@WebServlet("/InsertServlet")
public class InsertServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            
            String name1 = new String(request.getParameter("name").getBytes("iso-8859-1"),"utf-8"); 
            System.out.println(name1);
            String tel=request.getParameter("tel");
            int age=Integer.valueOf(request.getParameter("age"));
        try {

            Connection conn=JdbcUtils.getConn();
                String sql="insert into users(name,age,tel) values(?,?,?)";
                PreparedStatement ps=(PreparedStatement) conn.prepareStatement(sql);
                ps.setString(1, name1);
                ps.setInt(2, age);
                ps.setString(3, tel);
                int i=ps.executeUpdate();
                System.out.println("success"+i);
                ps.close();
                conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        
        response.sendRedirect("FindServlet");
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

import java.io.IOException;

import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;

import com.yp.utils.JdbcUtils;

/**
 * Servlet implementation class DeleteServlet
 */
@WebServlet("/DeleteServlet")
public class DeleteServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            String ids=request.getParameter("id");
            int id=Integer.parseInt(ids);
        try {

            Connection conn=JdbcUtils.getConn();
            //預編譯語句 
            String sql="delete from users where id=?";
            //Statement st=(Statement) conn.createStatement();
            PreparedStatement st=(PreparedStatement) conn.prepareStatement(sql);
            st.setInt(1, id);
            st.execute();
            //關流
            st.close();
            conn.close();
            }
            catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
        
        
        response.sendRedirect("FindServlet");
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}
 

import java.io.IOException;

import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import com.yp.utils.JdbcUtils;

/**
 * Servlet implementation class UpdateServlet
 */
@WebServlet("/UpdateServlet")
public class UpdateServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            String tel=request.getParameter("tel");
            String name = new String(request.getParameter("name").getBytes("iso-8859-1"),"utf-8"); 
            System.out.println(tel);
            String ids=request.getParameter("id");
            int id=Integer.parseInt(ids);
            int age=Integer.valueOf(request.getParameter("age"));
            System.out.println(id);
        try {

            Connection conn=JdbcUtils.getConn();
                String sql="update users set tel=?,name=?,age=? where id=?";
                PreparedStatement ps=(PreparedStatement) conn.prepareStatement(sql);
                
                    ps.setString(1, tel);

                    ps.setString(2, name);
                
                    ps.setInt(3, age);
                    
                    ps.setInt(4, id);
                ps.executeUpdate();
                ps.close();
                conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        
        System.out.println("update  success");
        response.sendRedirect("FindServlet");
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}
 

下面的SelectServlet是用來更改資料時表單回顯用的

package com.yp.servlet;

import java.io.IOException;

import java.sql.ResultSet;


import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;

import com.yp.pojo.User;
import com.yp.utils.JdbcUtils;

/**
 * Servlet implementation class SelectServlet
 */
@WebServlet("/SelectServlet")
public class SelectServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
   
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        int id=Integer.valueOf(request.getParameter("id"));
        try { 

                Connection conn=JdbcUtils.getConn();
              String sql="select * from users where id=? ";
              PreparedStatement ps=(PreparedStatement) conn.prepareStatement(sql);
              ps.setInt(1, id);
              
              ResultSet resultSet = ps.executeQuery();
              User user=new User();
              while(resultSet.next()) {

                  user.setId(resultSet.getInt("id"));
                  user.setAge(resultSet.getInt("age"));
                  user.setName(resultSet.getString("name"));
                  user.setTel(resultSet.getString("tel"));              
              }
              request.setAttribute("user", user);
              resultSet.close();
              ps.close();
              conn.close();
              }catch (Exception e) {
            // TODO: handle exception
                  e.printStackTrace();
        }
         request.getRequestDispatcher("update.jsp").forward(request, response);
         
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}
 

jsp頁面,index.jsp就是新增用的 ,list.jsp是操作介面,update.jsp是更新頁面,以下是分別jsp頁面程式碼

jsp頁面

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!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>Insert title here</title>
</head>
<body>
<center>
    <h2>add page</h2>
    <form action="InsertServlet" method="post">
        name:<input type="text" name="name" >
        <br><br>
        age:<input type="text" name="age">
        <br><br>
        tel:<input type="text" name="tel">
        <br>
        <input type="submit" value="add">
    </form>
</center>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@page import="java.util.List"%>
<%@page import="com.yp.pojo.User"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    <center>
    <h1>USER LIST</h1>
        <table cellpadding="10" cellspacing="0" border="1">
            <tr>
                <td>id</td>
                <td>name</td>
                <td>age</td>
                <td>tel</td>
                <td>操作</td>
            </tr>
            <%
            List<User> list=(List<User>)request.getAttribute("list");
         if (list == null || list.size() < 1) { 
                out.print("沒有資料!"); 
                  } else { 
                // 遍歷圖書集合中的資料 
                for (User user : list) { 
        %>
            <tr>
                <td><%=user.getId()%></td>
                <td><%=user.getName()%></td>
                <td><%=user.getAge()%></td>
                <td><%=user.getTel()%></td>
                <td>
                <a href="DeleteServlet?id=<%=user.getId()%>"> 刪除</a>
                <a href="SelectServlet?id=<%=user.getId()%>"> 修改</a>
                </td>
            </tr>
            <% 
      } 
      } 
    %>
        </table>
    </center>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 <%@page import="com.yp.pojo.User"%>
<!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>Insert title here</title>
</head>
<body>
    <center>
    <h1>USER Update</h1>
            <%
            User user=(User)request.getAttribute("user");
            
            %>
        <form action="UpdateServlet" method="post">
        <input type="hidden" name="id" value="<%=user.getId()%>">
            name:<input type="text" name="name" value="<%=user.getName()%>">
            <br><br>
            age:<input type="text" name="age" value="<%=user.getAge()%>">
            <br><br>
            tel:<input type="text" name="tel" value="<%=user.getTel()%>">
            <br>
            <input type="submit" value="update">
        </form>
            
</body>
</html>

完成後效果圖:

有bug問題會在下篇更新。

相關推薦

jsp+servlet+jdbc實現簡單刪改

今天在程式設計的時候又重新往前面學習jsp+servlet+jdbc做了一個小案例,希望能夠程式猿們一點小啟發,下篇部落格會介紹在這個程式設計中可能遇到的問題。首先我們開始今天的案例; 首先所需要工具 ,以及開發環境 eclipse+mysql5.1+navicat fo

JDBC實現簡單刪改

public class jdbcTest { /** * 建立表 */ public static void createTable() throws SQLException{ String sql = "CREATE TABLE IF NOT EXISTS `user`("

JDBC簡單刪改實現

這裡我們先在資料庫建立一個userinfo表: CREATE TABLE  userinfo (     userid` INT (11),     userName  VARCHAR (180),  &n

Node+Express+MySql實現簡單刪改和登入

var express = require('express'); var mysql = require('mysql'); var app = express(); var bodyParser = require('body-parser'); //連結資料庫 var connection = mys

Hibernate5配置及實現簡單刪改

1、 建立專案(java專案) 2、建立lib資料夾,在lib中匯入相關jar包(Hibernate10個,MySQL 1個),然後右鍵buildpath 3、編寫hibernate.cfg.xml配置檔案,(src目錄下) <hibernate-configura

idea+spring4+springmvc+mybatis+maven實現簡單刪改CRUD

type https suffix rec 項目目錄結構 inject btree 控制器 clu 在學習spring4+springmvc+mybatis的ssm框架,idea整合簡單實現增刪改查功能,在這裏記錄一下。 原文在這裏:https://my.oschina.n

MyBatis框架實現簡單刪改

MyBtatis 是一個支援普通SQL查詢,儲存過程和高階對映的優秀持久層框架 MyBatis使用簡單的XML或註解用於配置和原始對映,將介面和JAVA的P0J0s(普通的Java物件),對映成資料庫

SSH實現簡單刪改的功能例項

在網上看到一篇寫的很不錯的關於SSH 整合實現簡單的增刪改查功能的例項。 因為也是初次使用SSH框架,通過這樣的例項更好的理解SSH框架。對原本的程式碼進行了修改和優化。如有不足之處,還請指教。 原文連結:http://blog.csdn.net/zhubi

Spring + Hibernate實現簡單刪改

一、準備工作: 1.建立資料庫think,建立資料表user,裡面有兩個欄位name和pwd,均為varchar型別。 2.在eclipse中建立SH工程,在lib目錄下匯入相關包:              二、Hibernate的相關準備工作 1.建立com.zt包,在

國產化之路-統信UOS + Nginx + Asp.Net MVC + EF Core 3.1 + 達夢DM8實現簡單刪改操作

## 專題目錄 [國產化之路-統信UOS作業系統安裝](https://www.cnblogs.com/yuanqq/p/13738341.html) [國產化之路-國產作業系統安裝.net core 3.1 sdk](https://www.cnblogs.com/yuanqq/p/13686446.htm

jsp+servlet+jdbc實現對資料庫的刪改

一、JSP和Servlet的簡單介紹 1、Servlet和JSP簡介: Java開發Web應用程式時用到的技術主要有兩種,即Servlet和JSP,Servlet是在伺服器端執行的Java程式,一個被稱為Servlet容器的程式(其實就是伺服器) 負責執行Java程式,而J

Oracle+mybatis實現對資料的簡單刪改

第一步:--建立一個表空間:名字叫 mybatis,建在D盤下的date資料夾下: 第二步:建立使用者,名字叫  lisi  ,密碼為  :123456 第三步:給使用者授權: 第四步:我們在    lisi  使用者下建立一個emp表: 隨便插入幾個值: (這個表在網上有,可以扒下來) 第五步:(這

JqueryEasyUI實現CRUD刪改操作

per queryall call .get field string cal upd wid 1.代碼介紹: 前端界面由jsp,JqueryEasyUI制作,後臺代碼由Servlet實現邏輯操作 註:JqueryEasyUI的庫文件和其他自己jar包自己導入。Jquery

JavaWeb程序利用Servlet的對SQLserver刪改操作

tag struct 連接失敗 -1 rop quest map rom stream 聲明:學了幾天終於將增刪改查的操作掌握了,也發現了一些問題,所以總結一下. 重點:操作數據庫主要用的是SQL語句跟其他無關. 一:前提知識:PreparedStatement

Redis:五種數據類型的簡單刪改

war value tro sts class 例子 list集合 ring one Redis簡單增刪改查例子 例一:字符串的增刪改查 #增加一個key為ay_key的值 127.0.0.1:6379> set ay_key "ay" OK #查詢ay_key的值

Java操作數據庫實現"刪改"

mysq 新的 rom 可用 erp catch next() value eight 本文主要講解JDBC操作數據庫 主要實現對MySql數據庫的"增刪改查" 綜合概述: JDBC的常用類和接口 一 DriverManager類 DriverManage類用

Asp.net Core 2.1使用 EF Core 簡單刪改操作數據庫

generic nuget ini gen 項目 pub sass .net 增刪改查 Asp.net Core 2.1使用 EF Core 簡單增刪改查操作數據庫 大概步驟如下5步: 1、創建項目(Asp.net Core 2.1項目) 2、項目使用EF Core 3、建

mysql資料庫的簡單刪改,合併欄位,拼接字元操作,用java完成將一張表中的查詢結果合併存入另一張表的指定欄位

首先問題描述:我現在有兩個表,一個表是關鍵詞,一個表是含有關鍵詞的標籤,需要做的就是在關鍵詞表中新建一個標籤欄位,把包含該關鍵詞的全部標籤存入其中。比如關鍵詞是Java,標籤可能有Java開發,Java後臺等。我這裡關鍵詞有4000個,標籤有40000個,我用了小段java程式碼+sql的函式就完成

mybatis學習使用2簡單刪改

mybatis的增刪改查程式碼如下demo: User.java package com.rookie.bigdata.domain; import lombok.Data; import java.io.Serializable; /** * @author * @dat

Nodejs加Vue.js的簡單刪改

用的node做的後臺,資料庫為mysql,資料互動和頁面渲染用的vue,專案目錄圖: 話不多說,首先來看node專案的配置檔案app.js,註釋我會寫在程式碼裡 //引用模組 var express = require('express'); var path = require('p