JavaWeb连接数据库增删改查(含登录验证、分页)

简单的页面对数据库的增删改查——新手入门推举

一、准备工作

  • eclipse(无版本要求)或myeclipse都行,本人用的是eclipse
  • Apache Tomcat,我用的是7.0版本
  • 数据库 MySQL
  • 需要掌握到的知识点:项目的基本框架搭建(经典三层框架
    在这里插入图片描述

二、项目的基本框架搭建

三层框架分别为:表现层、业务逻辑层、数据访问层。

  • 表现层:包含JSP和Servlet等与web相关的内容,负责与浏览器的响应和请求;
  • 业务层:只关心业务逻辑;
  • 数据层:封装了对数据库的访问细节,数据操作类;

三层关系:表现层依赖业务层,而业务层依赖数据层

三、实现数据库的连接

需要在MySQL中创建所需数据库,并将表建好。

  1. 数据库名为test
  2. 项目信息表名为User,表结构如下,其中id为自增长主键,增量为1。
    在这里插入图片描述

四、代码实现

1、在Util包下新建一个JDBCUtil 类用来处理对数据进行连接

package Util;

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

public class JDBCUtil {
	private static String DBDriver="org.gjt.mm.mysql.Driver";
	private static String url="jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8";
	private static String user="root";
	private static String password="root";
	static Connection con=null;
	static Statement sta=null;
	static PreparedStatement psta=null;
	//获得数据库的链接
	public static Connection getConnection()
	{
		try {
			Class.forName(DBDriver);
			try {
				con = DriverManager.getConnection(url, user, password);
				return con;
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		} catch (ClassNotFoundException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}

		return null;
	}
	public static Statement createStatement()
	{
		try {
			sta=getConnection().createStatement();
			return sta;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}
	//创造数据预处理对象
	public static PreparedStatement createPreparedStatement(String sql)
	{
		try {
			psta = getConnection().prepareStatement(sql);
			return psta;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return psta;
	}
	//关闭所有打开的资源
	public static void closeOperation()
	{
		if(psta==null)
		{
			try {
				psta.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if(sta==null)
		{
			try {
				sta.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if(con==null)
		{
			try {
				con.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}

	}
}

2、在Model包下创建User实体类(实体类中的对象对应数据库表中的字段数据)

package Model;

//类的设计
public class User {
	private int id;
	private String userName;
	private String password;
	private String Email;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	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;
	}
	public String getEmail() {
		return Email;
	}
	public void setEmail(String email) {
		Email = email;
	}

}

3、在Dao包下创建UserDao实现对数据库的增删改查方法

package Dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import Model.User;
import Util.MysqlHelper;

public class UserDao {
	public boolean Login(String userName,String password){
		String sql="select userName,password from User ";
		ResultSet rs=MysqlHelper.executeQuery(sql);
		try {
			while(rs.next()){               //用户输入的信息和数据库中的信息做比较,判断输入是否正确;  
			    String name = rs.getString("userName");  
			    String pwd = rs.getString("password");  
			    if(name.equals(userName) && pwd.equals(Util.MD5Helper.GetMD5Code(password))){
			        return true;  
			    }   
			}
			rs.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	}
	public void addUser(User u)
	{
		String sql="insert into User (userName,password,Email) values (?,?,?)";
		Util.MysqlHelper.executeUpdate(sql, u.getUserName(),Util.MD5Helper.GetMD5Code(u.getPassword()),u.getEmail());
	}
	public void delete
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值