欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

Eclipse使用(七)—— 使用Eclipse創(chuàng)建JavaWeb項目并使用JDBC連接數(shù)據(jù)庫實現(xiàn)簡 - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!

您當前位置>首頁 » 新聞資訊 » 網(wǎng)站建設 >

Eclipse使用(七)—— 使用Eclipse創(chuàng)建JavaWeb項目并使用JDBC連接數(shù)據(jù)庫實現(xiàn)簡

發(fā)表時間:2018-1-2

發(fā)布人:葵宇科技

瀏覽次數(shù):64

本項目繼承于: Eclipse使用(六)—— 使用Eclipse創(chuàng)建JavaWeb項目

一、創(chuàng)建數(shù)據(jù)庫表(這里使用的是Mysql5.7)

DDL語句如下:

CREATE TABLE `tb_user` (
  `u_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用戶編號',
  `u_username` varchar(30) NOT NULL COMMENT '用戶名',
  `u_password` varchar(30) NOT NULL COMMENT '密碼',
  PRIMARY KEY (`u_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

請注意:我個表使用了自增主鍵,所以注冊時使用的sql沒有u_id的參數(shù),如果沒有添加自增主鍵的,請務必在sql中添加u_id

二、項目需要使用的jar示例

三、編寫持久層和業(yè)務層代碼

項目src目錄結構預覽:

1、在src目錄下創(chuàng)建com.mengfei.entity包,并在包中創(chuàng)建實體類User

package com.mengfei.entity;

import java.io.Serializable;

public class User implements Serializable{
	private static final long serialVersionUID = 1L;
	
	private Integer uid;
	private String username;
	private String password;
	public Integer getUid() {
		return uid;
	}
	public void setUid(Integer uid) {
		this.uid = uid;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	@Override
	public String toString() {
		return "User{" +
				"uid=" + uid +
				", username='" + username + '\'' +
				", password='" + password + '\'' +
				'}';
	}
}

2、在com.mengfei包中創(chuàng)建dao包,并在包中創(chuàng)建類BaseDao

package com.mengfei.dao;

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

public class BaseDao {
	protected Connection conn;
	protected PreparedStatement ps;
	protected ResultSet rs;

	public Connection getConnection() {
		try {
			Class.forName("com.mysql.jdbc.Driver");
            //請注意:如果使用的jdbc版本或mysql數(shù)據(jù)庫版本過高,比如8.0以上版本的,請在url后面加一個時區(qū)參數(shù)
            //如:jdbc:mysql://localhost:3306/demo?useSSL=false&serverTimezone=GMT%2B8
			conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/demo?useSSL=false", "alex", "123");
			//Class.forName("oracle.jdbc.driver.OracleDriver");
			//conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "alex", "123");
			/**
			 * com.mysql.jdbc.Driver是創(chuàng)建連接的驅(qū)動類,Oracle使用的是oracle.jdbc.driver.OracleDriver
			 * jdbc:mysql://localhost:3306/demo?useSSL=false是要連接的url地址,Oracle使用的是jdbc:oracle:thin:@localhost:1521:orcl
			 * localhost代表本地連接,如果使用遠程連接則要改成IP地址
			 * demo是要連接的mysql中數(shù)據(jù)庫的名字,Oracle中用的是實例orcl
			 * ?useSSL=false是參數(shù),不寫也能連接,Oracle中不需要
			 * alex是要連接的用戶名
			 * 123是用戶的密碼
			 */
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return conn;
	}

	public void closeDB(ResultSet rs, PreparedStatement ps, Connection conn) {

		try {
			if (rs != null) {
				rs.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}

        try {
			if (ps != null) {
				ps.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}

        try {
			if (conn != null) {
				conn.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}

	}

	// 測試是否連接上數(shù)據(jù)庫
	public static void main(String[] args) {
		BaseDao dao = new BaseDao();
		System.out.println(dao.getConnection());
	}

}

3、在com.mengfei.dao包中創(chuàng)建接口UserDao

package com.mengfei.dao;

import com.mengfei.entity.User;

public interface UserDao {
	/**
	 * 用戶注冊
	 * @param user
	 * @return
	 */
	Integer register(User user);
	
	/**
	 * 用戶登陸
	 * @param user
	 * @return
	 */
	User login(User user);
}

4、在com.mengfei.dao包中創(chuàng)建impl包,并在包中創(chuàng)建類UserDaoImpl,該類繼承BaseDao,實現(xiàn)UserDao

package com.mengfei.dao.impl;

import java.sql.SQLException;

import com.mengfei.dao.BaseDao;
import com.mengfei.dao.UserDao;
import com.mengfei.entity.User;

public class UserDaoImpl extends BaseDao implements UserDao {

	@Override
	public Integer register(User user) {
		int row = 0;
		conn = getConnection();
		String sql = "insert into tb_user(u_username,u_password) values(?,?)";
		try {
			ps = conn.prepareStatement(sql);
			ps.setString(1, user.getUsername());
			ps.setString(2, user.getPassword());
			row = ps.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			closeDB(rs, ps, conn);
		}
		return row;
	}

	@Override
	public User login(User user) {
		User u=null;
		conn=getConnection();
		String sql="select * from tb_user where u_username=? and u_password=?";
		try {
			ps=conn.prepareStatement(sql);
			ps.setString(1, user.getUsername());
			ps.setString(2, user.getPassword());
			rs = ps.executeQuery();
			while(rs.next()){
				u=new User();
				u.setUid(rs.getInt(1));
				u.setUsername(rs.getString(2));
				u.setPassword(rs.getString(3));
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			closeDB(rs, ps, conn);
		}
		return u;
	}

}

5、在com.mengfei包中創(chuàng)建biz包,并在包中創(chuàng)建接口UserBiz

package com.mengfei.biz;

import com.mengfei.entity.User;

public interface UserBiz {
	/**
	 * 用戶注冊
	 * @param username
	 * @param password
	 * @return
	 */
	Boolean register(String username, String password);

	/**
	 * 用戶登陸
	 * @param username
	 * @param password
	 * @return
	 */
	User login(String username, String password);
}

6、在com.mengfei.biz包中創(chuàng)建impl包,并在包中創(chuàng)建類UserBizImpl實現(xiàn)UserBiz

package com.mengfei.biz.impl;

import com.mengfei.biz.UserBiz;
import com.mengfei.dao.UserDao;
import com.mengfei.dao.impl.UserDaoImpl;
import com.mengfei.entity.User;

public class UserBizImpl implements UserBiz {

	private UserDao userDao = new UserDaoImpl();

	@Override
	public Boolean register(String username, String password) {
		User user = new User();
		user.setUsername(username);
		user.setPassword(password);
		Integer result = userDao.register(user);
		if (result > 0) {
			return true;
		}
		return false;
	}

	@Override
	public User login(String username, String password) {
		User user = new User();
		user.setUsername(username);
		user.setPassword(password);
		User u = userDao.login(user);
		return u;
	}

}

7、在com.mengfei包中創(chuàng)建servlet包,并在包中創(chuàng)建UserServlet

package com.mengfei.servlet;

import java.io.IOException;

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.mengfei.biz.UserBiz;
import com.mengfei.biz.impl.UserBizImpl;
import com.mengfei.entity.User;

@WebServlet("/UserServlet")
public class UserServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
	protected void doPost(HttpServletRequest request,
 HttpServletResponse response) throws ServletException, IOException {
		UserBiz userBiz=new UserBizImpl();
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String operate = request.getParameter("operate");
		if(null == username || null == password || null == operate) {
			response.sendRedirect("index.jsp");
		}
		switch(operate) {
			case "register" :
				Boolean b = userBiz.register(username, password);
				if(b) {
					request.getRequestDispatcher("success.jsp").forward(request, response);
				}else {
					response.sendRedirect("index.jsp");
				}
				break;
			case "login" :
				User user = userBiz.login(username, password);
				if(null!=user) {
					request.setAttribute("username", user.getUsername());
					request.getRequestDispatcher("success.jsp").forward(request, response);
				}else {
					response.sendRedirect("index.jsp");
				}
				break;
			default:
				response.sendRedirect("index.jsp");
				break;
		}
	}

}

四、編寫表現(xiàn)層代碼(web.xml文件暫時不用管它)

1、在WebContent目錄中創(chuàng)建js目錄,將jquery-3.2.1.js文件放進去

請注意:如果jquery版本不一致的要記得修改版本號

2、編寫index.jsp(放在WebContext目錄下)

<%@ 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>
<script src="js/jquery-3.2.1.js"></script>
</head>
<body>
	<form id="form" action="UserServlet" method="post"><%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <c:if test="${empty username}">
        注冊成功!
    </c:if>

    <c:if test="${!empty username}">
        登陸成功!歡迎 ${username} !
    </c:if>
</body>
</html>

五、部署測試

1、右鍵點擊本地server將項目添加到Tomcat中

2、啟動Tomcat,在瀏覽器中輸入localhost:8080/JDBCJavaWebDemo/index.jsp,顯示如下圖:

OK,到這里就可以自己進行注冊和登陸測試啦