【深夜放毒,記錄生活^_^】 |
學了HTML之後 , 一直想寫一個能夠實現登錄功能的小網頁 ,終於……現在開始學習數據庫,經過查閱資料,創建了很簡單的一個java web小項目來實現登陸操作,界面不怎麼美觀,大家見笑了,哈哈。
首先,我們先進行準備工作:下載連接數據庫的jar包,這裏我用百度網盤分享給大家吧 - -> MySQ的jar包點我!提取碼:v5sd
SQL server的點我!提取碼:ra6f
下載完之後請記住路徑,我們創建一個java web項目,請打開eclipse 新建項目 – >新建一個動態的java web 項目;
這裏我給它起名就叫做Test_01,哈哈
然後,打開項目,接着依次打開WebContent – > WEB-INF目錄
將剛纔下載好的jar包放入其中,我們直接copy過來即可,然後我們發現項目中多了這個,代表導入成功,恭喜你!
然後我們先利用java文件來連接數據庫,打開項目列表中的src文件夾(新建兩個包,如下圖):
然後我們在包com.test.dao裏面創建兩個java文件,一個是Test.java, 一個是UserDao.java
Test.java代碼如下:
public class Test {
private int id;
private String name;
private int number;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return number;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public void setAge(int age) {
this.number = age;
}
private Test()
{
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.chap01.dbuitl.DBConnect;
public class UserDao {
private Test test;
public Test getTest() {
return test;
}
public void setTest(Test test) {
this.test = test;
}
@SuppressWarnings("null")
public static void main(String[] args) throws SQLException {
DBConnect dbConnect = new DBConnect();
Connection connection = dbConnect.getConnection();
Statement statement = null;
try {
statement = connection.createStatement();
}catch(SQLException e)
{
e.printStackTrace();
}
ResultSet resultSet = null;
int resultSet2 = 0;
String sql2 = "insert into zhang(id) values('8')"; //插入
try
{
resultSet2 = statement.executeUpdate(sql2);
}catch(SQLException e)
{
e.printStackTrace();
}
while(resultSet2 > 0) //返回值:受影響的行數;
{
System.out.println("插入成功!");
break;
}
String update = "update zhang set name =2 where id = 8"; //更新
int result = 0;
try
{
result = statement.executeUpdate(update);
}catch(SQLException s)
{
s.printStackTrace();
}
while(result > 0)
{
System.out.println("更新成功!");
break;
}
String del = "delete from zhang where id=8"; //刪除
int ResultSet = 0;
try
{
ResultSet = statement.executeUpdate(del);
}catch(SQLException d)
{
d.printStackTrace();
}
while(ResultSet > 0)
{
System.out.println("刪除成功!");
break;
}
String sql = "SELECT *FROM zhang where id>0";
try
{
resultSet = statement.executeQuery(sql);
}catch(SQLException e)
{
e.printStackTrace();
}
try
{
while(resultSet.next())
{
int number = resultSet.getInt("id");
String name = resultSet.getString("name");
int number2 = resultSet.getInt("number");
int phone1 = resultSet.getInt("phone1");
int phone2 = resultSet.getInt("phone2");
String phone3 = resultSet.getString("mobilePhone"); //verchar 類型的數據直接用String類型的變量接收;
String home = resultSet.getString("home");
System.out.print("編號: " + number);
System.out.print(" 名字: " + name);
System.out.print(" 學號: " + number2);
System.out.print(" 電話號碼: " + phone1 + phone2);
System.out.print(" 家鄉: " + home);
System.out.println(" 手機號碼: " + phone3);
}
resultSet.close();
}catch(SQLException q)
{
q.printStackTrace();
}
}
}
package com.chap01.dbuitl;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBConnect {
private static String DBDriver = "com.mysql.jdbc.Driver";
private static String DBUrl = "jdbc:mysql://localhost:3306/usertest"; //最後面usertest是數據庫的名字
private static String DBUser = "root";
private static String DBPass = ""; //在這裏填寫你的密碼
private static Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
static {
try {
Class.forName(DBDriver);
System.out.println("連接數據庫中···");
}catch(ClassNotFoundException e)
{
e.printStackTrace();
}
}
public static Connection getConnection() { //與數據庫建立連接的方法
try {
connection = DriverManager.getConnection(DBUrl, DBUser, DBPass);
System.out.println("數據庫連接成功");
}catch(SQLException e) {
System.out.println("失敗");
e.printStackTrace();
}
return connection;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
然後呢,我們打開右擊WebContent文件夾,新建幾個jsp文件 (login.jsp是登陸頁面 , deal.jsp是進行登陸的處理界面,main.jsp是登陸成功的界面,error.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>
<!-- 登錄界面 -->
<h1>歡迎使用登錄管理系統!</h1>
<!-- action 提交請求的地址 method 處理請求的方式 -->
<form action="deal.jsp" method="post">
<table>
<tr>
<td>請輸入你的賬號</td>
<td>
<input type="text" name="userName"/>
</td>
</tr>
<tr>
<td>請輸入你的密碼</td>
<td>
<input type="password" name="userPwd"/>
</td>
</tr>
<tr>
<td></td>
<td>
<input type="submit"/>
</td>
</tr>
</table>
</form>
</body>
</html>
很簡單的一個登錄界面,接下來我們繼續,修改處理文件deal.jsp的代碼如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
request.setCharacterEncoding("UTF-8");
//獲取用戶輸入的賬號和密碼
String username = request.getParameter("userName");
String password = request.getParameter("userPwd");
String DBDriver = "com.mysql.jdbc.Driver";
String DBUrl = "jdbc:mysql://localhost:3306/usertest"; //最後是數據庫的名字
String DBUser = "root";
String DBPass = ""; //數據庫密碼
//根據獲得的用戶名到數據庫查找用戶
Connection c = null;
try{
Class.forName("com.mysql.jdbc.Driver");
c = DriverManager.getConnection(DBUrl, DBUser, DBPass);
out.print(username);
String sql = "select * from zhang where number = '" + username + "'";
PreparedStatement st = c.prepareStatement(sql);
ResultSet rs = st.executeQuery();
//判斷用戶是否存在
if(rs.next()){
//獲取密碼
String pwd = rs.getString("mobilephone");
//判斷密碼是否相同
if(!pwd.equals(password)){
response.sendRedirect("error.jsp");//密碼錯誤跳轉error界面
}
response.sendRedirect("main.jsp");
}else{
response.sendRedirect("error.jsp");
}
}catch(Exception e){
e.printStackTrace();
}
%>
</body>
</html>
<%@ 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>
<h4>Error!</h4>
<br>
<h4>學號不存在!對不起,你不是我們的人員!即將跳轉登陸頁面!</h4>
//5秒後跳轉到登錄頁面
<% response.setHeader("refresh","5;url=login.jsp"); %>
</body>
</html>
<%@ 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 style="background-color:lightblue">
<%
out.println("Welcome!" );
%>
</body>
</html>