1. 程式人生 > >Java Web 中 JSP增刪改查mySQL資料

Java Web 中 JSP增刪改查mySQL資料

先在workbench中新建一個schema 比如叫 javatemp
再右鍵shcema裡面的table新建一個叫new_table的table
然後設定一下table裡面有什麼 如圖
這裡寫圖片描述
右鍵new_table 顯示前100行 可以先往裡面手動新增一些資料
這裡寫圖片描述
資料庫的就到這

然後開啟J2EE 新建Dynamic web project
先匯入連線mysql的驅動jar包 直接將jar包拖到WEB-INF下的lib目錄
這裡寫圖片描述
在webContent裡新建讀取資料庫jsp檔案 程式碼如下


<%@page import="java.sql.*"%>

<%@ 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>JSP讀取資料庫</title> </head
>
<body> <table border="1" align="center"> <tr> <th>id</th> <th>name</th> <th>author</th> <th>publishing</th> <th>price</th> <th>data</th> </tr> <% String
driverClass="com.mysql.jdbc.Driver"; String url = "jdbc:mysql://127.0.0.1/javatemp"; String user = "root"; String password = "1234"; Connection conn; PreparedStatement pst = null; try{ Class.forName(driverClass).newInstance(); conn = DriverManager.getConnection(url,user,password); String sql = "select * from new_table"; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ %>
<tr> <td><%=rs.getString("id") %></td> <td><%=rs.getString("bookname") %></td> <td><%=rs.getString("publishing") %></td> <td><%=rs.getString("writer") %></td> <td><%=rs.getString("price") %></td> <td><%=rs.getString("date") %></td> </tr> <% } }catch(Exception e){ e.printStackTrace(); } %> </table> </body> </html>

上面程式碼中 user 和 password 是你自己資料庫的使用者名稱和密碼
127.0.0.1也是看你自己資料庫的地址
這裡寫圖片描述
我的兩個資料庫連線 localhost 和127.0.0.1都一樣
執行到伺服器上會顯示如圖結果
這裡寫圖片描述
以上就是查詢mySQL的部分

接下來插入新資料
新建InsertDate.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>
<form action="./insertDate" method="post">
id:        <input type="text" name="id" /><br/>
bookname:  <input type="text" name="bookname" /><br/>
publishing:<input type="text" name="publishing" /><br/>
writer:    <input type="text" name="writer" /><br/>
price:     <input type="text" name="price" /><br/>
date:      <input type="text" name="date" /><br/>

<input type="submit" value="submit"/>
</form>
</body>
</html>

其中form的action insertDate是一個servlet 負責插入資料庫資料
新建這個servlet 這裡寫圖片描述

package servlet;

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

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

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

    /**
     * @see HttpServlet#HttpServlet()
     */
    public insertDate() {
        super();
        // TODO Auto-generated constructor stub
    }

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

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        PrintWriter out = response.getWriter();
        String id = request.getParameter("id");
        String bookname = request.getParameter("bookname");
        String publishing = request.getParameter("publishing");
        String writer = request.getParameter("writer");
        String price = request.getParameter("price");
        String date=request.getParameter("date");

        String driverClass="com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://127.0.0.1/javatemp";
        String user = "root";
        String password = "1234";
        Connection conn;

        try {
            int i=0;
            Class.forName(driverClass).newInstance();
            conn = DriverManager.getConnection(url,user,password);
            String sql = "insert into new_table (id,bookname,publishing,writer,price,date) "
                    + "values(?,?,?,?,?,?)";
            Connection conn1 = DriverManager.getConnection(url, user, password);
            PreparedStatement pstmt;
            pstmt = (PreparedStatement) conn1.prepareStatement(sql);
            pstmt.setString(1, id);
            pstmt.setString(2, bookname);
            pstmt.setString(3, publishing);
            pstmt.setString(4, writer);
            pstmt.setString(5, price);
            pstmt.setString(6, date);
            i = pstmt.executeUpdate();
            conn1.close();
            pstmt.close();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}

執行之後 插入資料注意資料型別 id不能重複 date是DATE型別
格式為 年-月-日