知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!
您當(dāng)前位置>首頁 » 新聞資訊 » 網(wǎng)站建設(shè) >
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ù),如果沒有添加自增主鍵的,請務(wù)必在sql中添加u_id
二、項目需要使用的jar示例
三、編寫持久層和業(yè)務(wù)層代碼
項目src目錄結(jié)構(gòu)預(yù)覽:
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,到這里就可以自己進行注冊和登陸測試?yán)?/strong>
相關(guān)案例查看更多
相關(guān)閱讀
- 服務(wù)器
- 小程序被攻擊
- 網(wǎng)站建設(shè)招商
- 云南科技公司
- 小程序技術(shù)
- 網(wǎng)站排名
- 云南省城鄉(xiāng)建設(shè)廳網(wǎng)站
- 開發(fā)制作小程序
- 網(wǎng)站建設(shè)服務(wù)公司
- 汽車回收管理
- 電商網(wǎng)站建設(shè)
- 昆明軟件公司
- 云南網(wǎng)站建設(shè)選
- 云南網(wǎng)站建設(shè)電話
- 小程序開發(fā)公司
- 花農(nóng)小程序
- 網(wǎng)站收錄
- 智慧農(nóng)貿(mào)市場
- 報廢車拆解管理系統(tǒng)
- 云南網(wǎng)頁制作
- 云南網(wǎng)站建設(shè)公司
- 云南建設(shè)廳官方網(wǎng)站
- 網(wǎng)站建設(shè)哪家強
- 公眾號模板消息
- 云南網(wǎng)站建設(shè)價格
- 云南網(wǎng)站建設(shè)百度
- 區(qū)塊鏈
- 網(wǎng)絡(luò)公司哪家好
- 網(wǎng)站建設(shè)首頁
- .net網(wǎng)站