首次尝试连接mysql数据库,并将信息存入,收获颇多。
设计思路:使用 Javascript书写前端网页,servlet项目中写后台,通过正则表达式对输入格式进行判断,完成题目要求
1.网页
packageDBUtil;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;public classDBUtil {public static String db_url = "jdbc:mysql://localhost:3306/shuju";public static String db_user = "root";public static String db_pass = "root";public staticConnection getConn () {
Connection conn= null;try{
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection(db_url, db_user, db_pass);
}catch(Exception e) {
e.printStackTrace();
}returnconn;
}/*** ???????
*@paramstate
*@paramconn*/
public static voidclose (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 voidclose (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();
}
}
}public static void main(String[] args) throwsSQLException {
Connection conn=getConn();
PreparedStatement pstmt= null;
ResultSet rs= null;
String sql="select * from user";
pstmt=conn.prepareStatement(sql);
rs=pstmt.executeQuery();if(rs.next()){
System.out.println("空");
}else{
System.out.println("非空");
}
}
}
2.格式设计
Insert title here登录账号: | |
---|---|
登录密码: | |
性别: | 男 女 |
姓名: | |
学号: | |
电子邮件: | |
所在学院: | |
所在系: | |
所在班级: | |
入学年份: | 1998 1999 2000 |
生源地: | |
备注: | |
3.设置所需成员
package Entity;
public class User { private String tel;
private String username;
private String password;
private String sex;
private String name;
private String num;
private String email;
private String xueyuan;
private String xi;
private String ban;
private String year;
private String address;
private String addment;
public String getUsername() {returnusername;
}
publicvoidsetUsername(String username) {this.username =username;
}
public String getNum() {returnnum;
}
publicvoidsetNum(String num) {this.num=num;
}
public String getBan() {returnban;
}
publicvoidsetBan(String ban) {this.ban=ban;
}
public String getXueyuan() {returnxueyuan;
}
publicvoidsetXueyuan(String xueyuan) {this.xueyuan=xueyuan;
}
public String getXi() {returnxi;
}
publicvoidsetXi(String xi) {this.xi=xi;
}
public String getAddment() {returnaddment;
}
publicvoidsetAddment(String addment) {this.addment=addment;
}
public String getYear() {returnyear;
}
publicvoidsetYear(String year) {this.year=year;
}
public String getPassword() {returnpassword;
}
publicvoidsetPassssword(String password) {this.password =password;
}
public String getName() {returnname;
}
publicvoidsetName(String name) {this.name =name;
}
public String getSex() {returnsex;
}
publicvoidsetSex(String sex) {this.sex =sex;
}
public String getAddress() {returnaddress;
}
publicvoidsetAddress(String address) {this.address =address;
}
public String getTel() {returntel;
}
publicvoidsetTel(String tel) {this.tel =tel;
}
public String getEmail() {returnemail;
}
publicvoidsetEmail(String email) {this.email =email;
}
public User() {}
public User(String username,String password,String sex,String name,String num,String email,String xueyuan,String xi,String ban,String year,String address,String addment) {this.username=username;this.password=password;this.sex=sex;this.name=name;this.num=num;this.email=email;this.xueyuan=xueyuan;this.xi=xi;this.ban=ban;this.year=year;this.address=address;this.addment=addment;
}
}
4.后台运行
packageServlet;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importDao.Dao;importEntity.User;importjava.io.PrintWriter;importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql.Statement;importjava.util.regex.Matcher;importjava.util.regex.Pattern;
@WebServlet("/servlet")public class servlet extendsHttpServlet {private static final long serialVersionUID = 1L;publicservlet() {super();
}protected void service(HttpServletRequest req, HttpServletResponse resp) throwsServletException, IOException {
req.setCharacterEncoding("utf-8");
String method= req.getParameter("method");if ("add".equals(method)) {
add(req, resp);
}
}private void add(HttpServletRequest req, HttpServletResponse resp) throwsIOException, ServletException{
req.setCharacterEncoding("utf-8");
String username= req.getParameter("username");
String password= req.getParameter("password");
String sex= req.getParameter("sex");
String name= req.getParameter("name");
String num= req.getParameter("num");
String email= req.getParameter("email");
String xueyuan= req.getParameter("xueyuan");
String xi= req.getParameter("xi");
String ban= req.getParameter("ban");
String year= req.getParameter("year");
String address= req.getParameter("address");
String addment= req.getParameter("addment");
Pattern p= null;
Pattern s= null;
Pattern t= null;
Matcher m= null;
Matcher n= null;
Matcher y= null;boolean b = false;boolean c = false;boolean u = false;
p= Pattern.compile("2018[0-9]{4}");
m=p.matcher(num);
b=m.matches();
s= Pattern.compile("^[A-Za-z][A-Za-z0-9]{5,11}$") ;
n=s.matcher(username);
c=n.matches();
t= Pattern.compile("^[A-Za-z0-9\\u4e00-\\u9fa5]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$") ;
y=t.matcher(email);
u=y.matches();if(!c){
PrintWriter out=resp.getWriter();
out.print("");
}else if(!b) {
PrintWriter out=resp.getWriter();
out.print("");
}else if(!u){
PrintWriter out=resp.getWriter();
out.print("");
}else{
User user= newUser(username,password,sex,name,num,email,xueyuan,xi,ban,year,address,addment);
Dao dao=newDao();boolean f=dao.add(user);if(f) {
req.setAttribute("message", "注册成功!");
req.getRequestDispatcher("user.jsp").forward(req,resp);
}else{
req.setAttribute("message", "注册失败!");
req.getRequestDispatcher("user.jsp").forward(req,resp);
}
}
}
}
5.连接到数据库
packageDao;importjava.sql.Connection;importjava.sql.Statement;importDBUtil.DBUtil;importEntity.User;public classDao {public booleanadd(User user) {//TODO Auto-generated method stub
String sql = "insert into user1(username,password,sex,name,num,email,xueyuan,xi,ban,year,address,addment) values('"+ user.getUsername() + "','"+ user.getPassword() +"','"+ user.getSex() +"','" + user.getName() +"','"+ user.getNum() +"','"+user.getEmail() +"','"+ user.getXueyuan()+"','"+ user.getXi()+"','"+ user.getBan()+"','"+ user.getYear()+"','"+ user.getAddress()+"','"+ user.getAddment()+"')";
Connection conn=DBUtil.getConn();
Statement state= null;boolean f = false;int a = 0;try{
state=conn.createStatement();
a=state.executeUpdate(sql);
}catch(Exception e) {
e.printStackTrace();
}finally{
DBUtil.close(state, conn);
}if (a>0) {
f= true;
}returnf;
}
}