javaweb之連接數據庫


最近做完了一個圖書系統的增刪改查,想着來總結一下這幾個月的所學內容。

一.首先你需要在電腦上安裝上mysql或者sql server(本文以mysql為例)


mysql官網:MySQL :: Begin Your Download

sql server官網:SQL Server 下載 | Microsoft


二.Bean層

Bean層為數據表對應的Java類,是封裝數據的模型,比如添加課程系統,在前台提交的課程信息,后台會對應一個Course類,把課程的信息封裝到Course中。在這里,我們寫一個course.java。

 1 package Bean;
 2 
 3 public class Course {
 4        //private類,私有方法公開用,安全
 5         private String  teachername;
 6         private String  place;
 7         private String  classname;
 8         /*set和get用於設置和讀取Java private變量的方法。
 9                這樣子外部程序就不會直接訪問程序的變量。
10                只能通過set去設置值,用get去讀取值。
11                有利於對外封裝。防止外部程序隨意修改我們的變量。*/
12         public String getClassname() {
13             return classname;
14         }
15         public void setClassname(String classname) {
16             this.classname = classname;
17         }
18 
19         public String getTeachername() {
20             return teachername;
21         }
22         public void setTeachername(String teachername) {
23             this.teachername = teachername;
24         }
25         public String getPlace() {
26             return place;
27         }
28         public void setPlace(String place) {
29             this.place = place;
30         }
31 }

三.dao層

dao層叫數據訪問層,全稱為data access object,專門負責一些對數據庫的訪問,屬於一種比較底層,比較基礎的操作,具體到對於某個表、某個實體的增刪改查。此處為增,寫一個daoCourse.java。
 1 package dao;
 2 import java.sql.Connection;
 3 import java.sql.PreparedStatement;
 4 import java.sql.SQLException;
 5 import Bean.Course;
 6 import util.DBUtil;
 7 
 8 public class daoCourse {
 9 
10     public boolean add(Course n)
11     {
12         boolean f=false;
13         int a=0;
14         String sql="insert submitcourse(classname,teachername,place) values(?,?,?)";
15         try {
16              Connection conn=DBUtil.getConnection();
17              PreparedStatement pstmt=conn.prepareStatement(sql);
18              pstmt.setString(1,n.getClassname());
19              pstmt.setString(2,n.getTeachername());
20              pstmt.setString(3,n.getPlace());
21               a=pstmt.executeUpdate();
22         } catch (SQLException e) {
23             // TODO Auto-generated catch block
24             e.printStackTrace();
25         }
26         if(a>0) f=true;
27         return f;
28     }
29 }
 
         
         
        

四.servlet層

servlet是一個java接口,其功能如下(1)創建並返回一個包含基於客戶請求性質的動態內容的完整的 HTML 頁面。我們建立一個course_servlet.java。
(2)創建可嵌入到現有 HTML 頁面中的一部分 HTML 頁面( HTML 片段)。
(3)與其它服務器資源(包括數據庫和基於 Java 的應用程序)進行通信。

 

package servlet;

import java.io.IOException;
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 Bean.Course;
import dao.daoCourse;

/**
 * Servlet implementation class course_servlet
 */
@WebServlet("/course_servlet")
public class course_servlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       daoCourse gooddao=new daoCourse();
    /**
     * @see HttpServlet#HttpServlet()
     */
    public course_servlet() {
        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
        doPost(request, response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        String teachername=request.getParameter("teachername");
        String classname=request.getParameter("classname");
        String place=request.getParameter("place");
        Course n=new Course(classname,teachername,place);
        gooddao.add(n);
        request.setAttribute("message", "添加成功");
        request.getRequestDispatcher("NewFile2.jsp").forward(request, response);            
}

 

 五.util層

util用於連接數據庫,我們寫一個DBUtil.java。

package util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DBUtil {
    public static Connection getConnection() {
        //1.添加mysql的驅動jar包到項目中的WebContent/WEB-INF/lib
        
        //2.如何連接數據庫?
        Connection conn=null;
     try {
        //加載數據庫jar包的驅動
        Class.forName("com.mysql.cj.jdbc.Driver");
        //連接數據庫
        conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/submitcourse?serverTimezone=UTC", "root", "123456");
        System.out.println("連接成功!");
        
        //3.如何操作數據庫里的數據
        //定義sql語句
        
        //執行sql語句
        
        //獲取sql語句執行器
        
        //處理結果
        
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return conn;
    }
    public static void main(String[] args) {
        DBUtil.getConnection();
    }
     public static void close(Connection connection ) {
         try {
             if (connection != null) {
                 connection.close();
             }

         } catch (SQLException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
     }
     public static void close(PreparedStatement preparedStatement ) {
         try {
             if (preparedStatement != null) {
                 preparedStatement.close();
             }

         } catch (SQLException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
     }
     public static void close(ResultSet resultSet ) {
         try {
             if (resultSet != null) {
                 resultSet.close();
             }

         } catch (SQLException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
     }

}

六.寫jsp


 

 

 

 1.NewFile.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>添加課程</title>
</head>
<body>
<form action="course_servlet" method="post">
課程名稱:<input type="text" id="classname" name="classname"><br>
教師姓名:<input type="text" id="teachername" name="teachername"><br>
教學地點:<input type="text" id="place" name="place"><br>
<input type="submit" value="添加">
</form>
</body>
</html>

2.NewFile2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
    Object message = request.getAttribute("message");
    if(message!=null && !"".equals(message)){

%>
<script type="text/javascript">
    alert("<%=request.getAttribute("message")%>");
</script>
<%} %>

<h1>添加成功</h1>


</body>
</html>

七.數據庫表

 

 八.運行結果

 

 

 

 

 

 

 


 

 以上是關於課程添加並連接數據庫所呈現的內容,接下來會繼續給大家更新刪改查。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM