添加學生信息(連接數據庫初學)


主要功能有:

1登錄賬號:要求由612位字母、數字、下划線組成,只有字母可以開頭;

2登錄密碼:要求顯示“• ”或“*”表示輸入位數,密碼要求八位以上字母、數字組成。

3性別:要求用單選框或下拉框實現,選項只有“男”或“女”;

4學號:要求八位數字組成,前四位為2018”開頭,輸入自己學號;

5姓名:輸入自己的姓名;

5電子郵箱:要求判斷正確格式xxxx@xxxx.xxxx

6點擊“添加”按鈕,將學生個人信息存儲到數據庫中。

7可以演示連接上數據庫。

 模板:

 

 

先建立數據庫:

 

下面是我項目下的框架:

 

首先

domain層----- 建立數據對象的實體,就是一個javabean。

package com.domain;

public class user {
    
    private String id;
    private String name;
    private String password;
    private String realname;
    private String sex;
    private String number;
    private String email;
    
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getRealname() {
        return realname;
    }
    public void setRealname(String realname) {
        this.realname = realname;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public String getnumber() {
        return number;
    }
    public void setnumber(String number) {
        this.number = number;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    
    
    
}

然后寫一個工具類用來連接數據庫,在util包下面

package com.util;

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

/**
 * @author Hu
 *
 */
public class DBUtil {
    
    public static String db_url = "jdbc:mysql://localhost:3306/homework?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true";
    public static String db_user = "root";
    public static String db_pass = "101032";
    
    public static Connection getConn () {
        Connection conn = null;
        
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(db_url, db_user, db_pass);
            System.out.println("連接成功!");
            
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        return conn;
    }
    public static void main(String[] args) {
        getConn();
    }
    
    /**
     * @param state
     * @param conn
     */
    public static void close (Statement state, Connection conn) {
        if (state != null) {
            try {
                state.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    
    public static void close (ResultSet rs, Statement state, Connection conn) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
        if (state != null) {
            try {
                state.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

}

然后在dao包下寫操作數據庫的類

package com.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;

import com.domain.user;
import com.util.DBUtil;

public class RegisterDao {

    /**
     * 用戶注冊
     * @param user
     * @return
     */
    public boolean register(user user) {
        String sql = "insert into homework(name,password,realname,sex,number,email) values(?,?,?,?,?,?)";
        Connection conn = DBUtil.getConn();
        PreparedStatement pstmt = null;
        int count = 0;
        try {
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1,user.getName());
            pstmt.setString(2,user.getPassword());
            pstmt.setString(3,user.getRealname());
            pstmt.setString(4,user.getSex());
            
            pstmt.setString(5,user.getnumber());
            pstmt.setString(6,user.getEmail());
            count = pstmt.executeUpdate();
        } catch (SQLException e) {
            // TODO 自動生成的 catch 塊
            e.printStackTrace();
        }
        if(count>0) {
            return true;
        }
        return false;
    }

}

然后就是service層中間層、業務邏輯層(接口)

package com.service;

import com.dao.RegisterDao;
import com.domain.user;

public class RegisterService {

    private RegisterDao dao = new RegisterDao();
    
    /**
     * 用於用戶注冊
     * @param user
     * @return
     */
    public boolean register(user user) {
        boolean registerSuccess = false;
        
        registerSuccess = dao.register(user);
        
        return registerSuccess;
    }

}

然后是創建一個簡單servlet,繼承HttpServlet類,並實現doGet、doPost方法

package com.web.servlet;

import java.io.IOException;
import java.io.PrintWriter;

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

import com.domain.user;
import com.service.RegisterService;

/**
 * Servlet implementation class RegisterServlet
 */
public class RegisterServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private RegisterService Ser = new RegisterService();
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public RegisterServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        String name = request.getParameter("name");
        String password = request.getParameter("password");
        String realname = request.getParameter("realname");
        String sex = request.getParameter("sex");
        String number = request.getParameter("number");
        String email = request.getParameter("email");
        
        
        user user = new user();
        user.setName(name);
        user.setPassword(password);
        user.setRealname(realname);
        user.setSex(sex);
        user.setnumber(number);
        user.setEmail(email);
        response.setCharacterEncoding("gbk");
        PrintWriter out = response.getWriter();
        System.out.println(" "+user.getName()+" "+user.getPassword()+" "+user.getRealname()+" "+user.getSex()+" "+user.getnumber()+" "+user.getEmail());
        if(Ser.register(user)) {
            out.println("<script> alert('添加成功!'); window.location.href='register.jsp'; </script>");
            
        }else {
            out.println("<script> alert('添加失敗!'); window.location.href='register.jsp'; </script>");
        }
        out.println("</HTML>");
        out.flush();
        out.close();
        
        
    }

    /**
     * @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文件了,這個界面借鑒了其他人的模板,初學,勉強會用。

<%@ 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>

<!-- Bootstrapvalidate導入 -->
<link rel="stylesheet" href="${pageContext.request.contextPath }/plug-ins/css/bootstrapValidator.css" />
<link href="${pageContext.request.contextPath}/plug-ins/css/demo.css" rel="stylesheet" type="text/css">
<!-- Bootstrap -->
<link href="${pageContext.request.contextPath}/plug-ins/css/bootstrap.css" rel="stylesheet">

<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依賴 jQuery,所以必須放在前邊) -->
<script src="${pageContext.request.contextPath}/plug-ins/js/jquery-1.10.2.min.js"></script>

<!-- 加載 Bootstrap 的所有 JavaScript 插件。你也可以根據需要只加載單個插件。 -->
<script src="${pageContext.request.contextPath}/plug-ins/js/bootstrap.js"></script>

<!-- validate表單驗證導入 -->
<script type="text/javascript" src="${pageContext.request.contextPath}/plug-ins/js/bootstrapValidator.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/plug-ins/js/bootstrapValidator_zh_CN.js"></script>

<!-- Font Awesome -->
<link rel="stylesheet" href="${pageContext.request.contextPath}/plug-ins/css/font-awesome.min.css">

<script type="text/javascript">
    $(function() {
        $('#register').bootstrapValidator(
                {
                    message : 'This value is not valid',
                    feedbackIcons : {
                        valid : 'glyphicon glyphicon-ok',
                        invalid : 'glyphicon glyphicon-remove',
                        validating : 'glyphicon glyphicon-refresh'
                    },
                    fields : {
                        name : {
                            validators : {
                                notEmpty : {
                                    message : '賬號不能為空'
                                },
                                stringLength : {
                                    min : 6,
                                    max : 12,
                                    message : '賬號由6-12個字符組成'
                                },
                                regexp : {
                                    regexp : /^[a-zA-Z][a-zA-Z0-9]+$/,
                                    message : '賬號只能由字母數字組成,必須由字母開頭'
                                }
                            }
                        },
                        password:{
                            validators:{
                                notEmpty : {
                                    message : '密碼不能為空'
                                },
                                stringLength : {
                                    min : 6,
                                    max : 6,
                                    message : '密碼必須由6個字母數字組成'
                                },
                                regexp : {
                                    regexp : /^[a-zA-Z0-9]+$/,
                                    message : '密碼只能由字母數字組成'
                                }
                            }
                        },
                        realname:{
                            validators:{
                                notEmpty : {
                                    message : '姓名不能為空'
                                }
                            }
                        },
                        number:{
                            validators:{
                                notEmpty : {
                                    message : '學號不能為空'
                                },
                                stringLength : {
                                    min : 8,
                                    max : 8,
                                    message : '學號必須由8位字符組成'
                                },
                                regexp : {
                                    regexp : /^2018(\d{4})+$/,
                                    message : '請輸入正確的學號'
                                }
                            }
                        },
                        email:{
                            validators:{
                                notEmpty : {
                                    message : '郵箱不能為空'
                                },
                                regexp : {
                                    regexp : /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/,
                                    message : '請輸入正確的郵箱格式'
                                }
                            }
                        }
                    },
                    password1:{
                        validators:{
                            notEmpty : {
                                message : '學院不能為空'
                            },
                            stringLength : {
                                min : 15,
                                max : 15,

                            },
                            regexp : {
                                regexp : /^[a-zA-Z0-9]+$/,
                                message : '學院只能由字母數字組成'
                            }
                        }
                    },
                    password2:{
                        validators:{
                            notEmpty : {
                                message : '所在系不能為空'
                            },
                            stringLength : {
                                min : 6,
                                max : 6,
                            },
                            regexp : {
                                regexp : /^[a-zA-Z0-9]+$/,
                                message : '所在系只能由字母數字組成'
                            }
                        }
                    },
                    password3:{
                        validators:{
                            notEmpty : {
                                message : '所在班級不能為空'
                            },
                            stringLength : {
                                min : 6,
                                max : 6,
                            },
                            regexp : {
                                regexp : /^[a-zA-Z0-9]+$/,
                                message : '所在班級只能由字母數字組成'
                            }
                        }
                    },
                    password4:{
                        validators:{
                            notEmpty : {
                                message : '生源地不能為空'
                            },
                            stringLength : {
                                min : 6,
                                max : 6,
                            },
                            regexp : {
                                regexp : /^[a-zA-Z0-9]+$/,
                                message : '生源地只能由字母數字組成'
                            }
                        }
                    },
                    password5:{
                        validators:{
                            notEmpty : {
                                message : '備注不能為空'
                            },
                            stringLength : {
                                min : 6,
                                max : 6,
                            },
                            regexp : {
                                regexp : /^[a-zA-Z0-9]+$/,
                                message : '備注只能由字母數字組成'
                            }
                        }
                    },
                });
    });
</script>

</head>
<body>
         <div class="col-lg-8 col-lg-offset-2">
             <div class="page-header">
                 <h2>用戶注冊</h2>
             </div>

             <form id="register" method="post" class="form-horizontal" action="${pageContext.request.contextPath }/registerServlet">
                 <div class="form-group">
                     <label class="col-lg-3 control-label">登陸賬號:</label>
                     <div class="col-lg-4">
                         <input type="text" class="form-control" name="name" placeholder="請設置賬號 " />
                     </div>
                 </div>

                 <div class="form-group">
                     <label class="col-lg-3 control-label">登陸密碼:</label>
                     <div class="col-lg-5">
                         <input type="password" class="form-control" name="password" placeholder="請設置登陸密碼" />
                     </div>
                 </div>
                 
                  <div class="form-group">
                     <label class="col-lg-3 control-label">姓名:</label>
                     <div class="col-lg-5">
                         <input type="text" class="form-control" name="realname" placeholder="請輸入姓名" />
                     </div>
                 </div>
                 
                  <div class="form-group">
                     <label class="col-lg-3 control-label">性別:</label>
                     <div class="col-lg-5">
                        <input type="radio" name="sex" value="man" checked="checked"/><input type="radio" name="sex" value="woman" /></div>
                 </div>

                 <div class="form-group">
                     <label class="col-lg-3 control-label">學號:</label>
                     <div class="col-lg-5">
                         <input type="text" class="form-control" name="number"  placeholder="請輸入學號"/>
                     </div>
                 </div>
                 
                 <div class="form-group">
                     <label class="col-lg-3 control-label">郵箱:</label>
                     <div class="col-lg-5">
                         <input type="text" class="form-control" name="email" placeholder="請輸入用戶郵箱"/>
                     </div>
                 </div>
                 
                 <div class="form-group">
                     <label class="col-lg-3 control-label">所在學院:</label>
                     <div class="col-lg-5">
                         <input type="text" class="form-control" name="password1" placeholder="請輸入所在學院"/>
                     </div>
                 </div>
                 
                 <div class="form-group">
                     <label class="col-lg-3 control-label">所在系:</label>
                     <div class="col-lg-5">
                         <input type="text" class="form-control" name="password2" placeholder="請輸入所在系"/>
                     </div>
                 </div>
                 
                 <div class="form-group">
                     <label class="col-lg-3 control-label">所在班級:</label>
                     <div class="col-lg-5">
                         <input type="text" class="form-control" name="password3" placeholder="請輸入所在班級"/>
                     </div>
                 </div>
                 
                 
                 <div class="form-group">
                     <label class="col-lg-3 control-label">年份:</label>
                     <div class="col-lg-5">
                        <select id="" name="year">
                            <option value="">--入學年份(屆)--</option>
                            <option value="2016">2016</option>
                            <option value="2017">2017</option>
                            <option value="2018">2018</option>
                            <option value="2019">2019</option>
                        </select>
                     </div>
                 </div>

<div class="form-group">
                     <label class="col-lg-3 control-label">生源地:</label>
                     <div class="col-lg-5">
                         <input type="text" class="form-control" name="password4" placeholder="請輸入生源地"/>
                     </div>
                 </div>
                 
                 <div class="form-group">
                     <label class="col-lg-3 control-label">備注:</label>
                     <div class="col-lg-5">
                         <input type="text" class="form-control" name="password5" placeholder="請輸入備注"/>
                     </div>
                 </div>

                 <div class="form-group">
                     <div class="col-lg-3 col-lg-offset-3">
                         <button type="submit" class="btn btn-primary">注冊</button>
                 
             </form>
         </div>
</body>
</html>

剛開始要完成一個項目的時候,犯了許多錯誤,包括Tomcat環境配置和數據庫連接的問題,總之先照貓畫虎的學習。最后別忘了在WebContent文件下的WEB-INF文件下的lib目錄導入jar文件。

沒有其他錯誤的出現,項目就能成功。

 


免責聲明!

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



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