JSP--课堂笔记(连接数据库实现增、删、改、查)

实现用户信息的增删改查

思路分析:实现增删改查功能需要的步骤大致一样如下:
加载数据库驱动---->连接数据库---->创建语句容器(存储实现相关功能的SQL语句)---->执行SQL语句---->得到结果---->关闭数据库连接。
可以把四种不同的功能写在同一UserDao类内,然后写分别四个jsp文件实现java代码,再写四个jsp文件实现HTML代码。使代码清晰易懂且简练。

使用Java Bean。建立一个User类避免麻烦的获取参数。

package com.aaa.bean;

public class User {
    
	private int id;
    private String username;
    private String password;
	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;
	}
    }

代码简化:加载数据库驱动、连接数据库、关闭数据库驱动均为重复代码,可以封装到一个类中,用到时直接调用。
以下为封装的类

package com.aaa.conn;

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

public class DBconn {
	public static final String dbDriver="com.mysql.jdbc.Driver";
	public static final String dbURL="你数据库的地址";
	public static final String dbUsername="你数据库的用户名";
	public static final String dbPwd="你数据库的密码";
	
public static Connection getConntion() {
	Connection conn = null;
	 try {
	 Class.forName(dbDriver);
	 } catch (ClassNotFoundException e) {
	 // TODO Auto-generated catch block
	 e.printStackTrace();
	 }
	 try {
	 conn = DriverManager.getConnection(dbURL,dbUsername,dbPwd);
	 } catch (SQLException e) {
	 // TODO Auto-generated catch block
	 e.printStackTrace();
	 }
	 return conn;
  }


public static void close(Connection conn,PreparedStatement pt, ResultSet rs) {
	//关闭数据库连接
	if (rs!=null) {
		try {
			rs.close();
		}catch(SQLException e){
		   //
		}
	}
	if (pt != null) {
		try {
			pt.close();
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
	}
	if (conn != null) {
		try {
			conn.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
public static void close(Connection conn,PreparedStatement pt) {
	//关闭数据库连接
	if (pt != null) {
		try {
			pt.close();
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
	}
	if (conn != null) {
		try {
			conn.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
}

一、实现查询功能
需要做的事有:
1、建一个query.jsp
2、将查询的方法写在已建好的UserDao中(Java Resources----src----右击新建包以.dao结尾----包下再建UserDao.java文件)

以下是查询方法代码(写在UserDao中):

	public ArrayList queryAll() {
		ArrayList users = new ArrayList();
		conn=DBconn.getConntion();
		try {
			String sql="select * from admin_info";
			pt = conn.prepareStatement(sql);
			rs = pt.executeQuery(); 
			
			while (rs.next()) {
				User user = new User();
				user.setUsername(rs.getString("name"));
				user.setPassword(rs.getString("pwd"));
				users.add(user);
				System.out.println("成功查询到内容");
			}

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		DBconn.close(conn,pt);
		return users;

	}

以下是jsp文件代码:

<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>
	<%@page import="com.aaa.bean.*,com.aaa.dao.*"%>
<%@page import="java.sql.*"%>
<%@page import="java.util.*"%>




Insert title here


<%
	UserDao userDao=new UserDao();
    ArrayListusers =userDao.queryAll();
    //遍历结果集
    for(int i=0;i");
    	
    }
%>


1.使用泛型,避免代码重复运行。
2.将SQL语句定义成字符串易于理解。
3.pt和rs分别为PreparedStatement和ResultSet两方法的对象,是我整个UserDao的全局变量,已经全部赋了初始值
4.代码将数据库中的所有的用户信息(用户名和密码)打印到数组中,最后通过jsp文件输出到页面。

PS:DBconn是我封装的方法的类名(目前有创建数据库连接,关闭数据库两种方法。关闭数据库方法已经重载过。)

二、实现新增功能

需要做的事有:
1、建一个doRegister.jsp
2、建一个Register.jsp
3、将新增的方法写在已建好的UserDao中

以下是新增方法代码(写在UserDao中):

	public boolean insert(User user) {
		boolean t=false;
		conn=DBconn.getConntion();
		String sql="insert into admin_info(name,pwd) values(?,?)";
		try {
			pt=conn.prepareStatement(sql);
			pt.setString(1, user.getUsername());
			pt.setString(2, user.getPassword());
			int i=pt.executeUpdate();
			if(i>0) {
				t=true;
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		DBconn.close(conn,pt,rs);
		return t;

	}

以下是doRegister代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@page import="com.aaa.bean.*" %>
<%@page import="com.aaa.dao.*" %>




Insert title here


	<%
		//1.获取用户输入的用户名和密码
	String username = request.getParameter("username");
	String password = request.getParameter("password");
	//2.把数据封装到user对象
	User user= new User();
	user.setUsername(username);
	user.setPassword(password);
	//3.把数据写入数据库		
	%>		
	<%  UserDao userDao=new UserDao();
			boolean t = userDao.insert(user);
			if(t){
		out.print("添加成功!!");
			}
			else{
		out.print("添加失败!!");
			}
	%>
	
立即登录

以下是Register代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




注册


用户名:
密码:

1.通过Register获取用户输入要新增的的用户名和密码。
2.通过doRegister调用写在UserDao里的insert方法将获取到的新增用户的用户名和密码写入数据库。并给予提示。
3.UserDao中的insert方法采用Boolean型,通过返回值的判断进行数据的添加。

三、实现删除功能

需要做的事有:
1、建一个doDelete.jsp
2、建一个Delete.jsp
3、将删除的方法写在已建好的UserDao中

以下是删除方法代码(写在UserDao中):

		public boolean delete(User user) {
		boolean t=false;
		conn=DBconn.getConntion();
		String sql="delete from admin_info where name=? and pwd=?";
		try {
			pt=conn.prepareStatement(sql);
			pt.setString(1, user.getUsername());
			pt.setString(2, user.getPassword());
			int i=pt.executeUpdate();
			if(i>0) {
				t=true;
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		DBconn.close(conn,pt,rs);
		return t;

	}

以下是doDelete代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@page import="com.aaa.bean.*" %>
<%@page import="com.aaa.dao.*" %>




Insert title here


	<%
		//1.获取用户输入的用户名和密码
	String username = request.getParameter("username");
	String password = request.getParameter("password");
	//2.把数据封装到user对象
	User user= new User();
	user.setUsername(username);
	user.setPassword(password);
	//3.把数据写入数据库		
	%>		
	<%  UserDao userDao=new UserDao();
			boolean t = userDao.delete(user);
			if(t){
		out.print("删除成功!!");
			}
			else{
		out.print("删除失败!!");
			}
	%>
	
返回登录页面

以下是Delete代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




删除


用户名:
密码:

1.通过Delete获取用户输入要删除的的用户名和密码。
2.通过doDelete调用写在UserDao里的delete方法将获取到的用户名和密码从数据库删除。并给予提示。
3.UserDao中的delete方法采用Boolean型,通过返回值的判断进行数据的删除。

四、实现修改功能
PS:未完待续。。新手上路,水平不足请见谅。

你可能感兴趣的:(JSP--课堂笔记(连接数据库实现增、删、改、查))