JavaBean DAO and VO查询数据库中的信息

ADO:将访问数据库的操作放到特定的类中去处理,JSP是表现层,所以在表现层调用这个特定的类提供的方法对数据库进行操作,通常将该java类叫做DAO类,它专门负责对数据库的访问

VO:就是普通的JavaBean

JavaBean:的属性,是根据数据中表的列(字段)决定的

JavaBean需要满足3个条件:

1.类 public

2.属性 private

3.属性的setter和gettre方法

例子:

JavaBean DAO and VO查询数据库中的信息_第1张图片 

项目结构:

 JavaBean DAO and VO查询数据库中的信息_第2张图片

 com.Bean包:Student.java,代码如下:

package com.Bean;

public class Student {
	private String id;
	private String name;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
}

com.Dao包:StudentDao.java,编写数据库相关的操作,代码如下:

package com.Dao;

import java.beans.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import com.Util.DBUtil;

import com.Bean.Student;

public class StudentDao {
	public static ArrayList query(String name) throws Exception{
		ArrayList students = null;//声明变量需要赋初值
		ResultSet rs=null;
		Connection conn=null;
		PreparedStatement ps=null;
		try{
			students=new ArrayList<>();
			 conn=DBUtil.getConectionDb();//连接数据库
			String s1 = "select * from users where name=?";
			ps = conn.prepareStatement(s1);//SQL查询
			ps.setString(1, name);
			 rs = ps.executeQuery();
			while(rs.next()){
				Student s = new Student();//创建JavaBean的Student对象
				s.setId(rs.getString(1));
				s.setName(rs.getString(2));
				students.add(s);//将对象放到list集合中
			}
		}catch(SQLException e){
			e.printStackTrace();
		}finally{
			DBUtil.CloseDB(rs, ps, conn);//关闭数据库
		}
		return students;
	}
}

com.Util包:DBUtil.java,数据库的连接代码:

package com.Util;
 
import java.sql.Connection;

import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
 
public class DBUtil {
	public static String username="root";//数据库登录用户
	public static String password="123456";//密码
	public static String database="student";//数据库名字
	public static String url="jdbc:mysql://localhost:3306/"+database+"?useUnicode=true&characterEncoding=utf-8";
	
	static{//静态的会自动调用
		try{
			Class.forName("com.mysql.jdbc.Driver");//加载驱动
		}catch(ClassNotFoundException e){
			e.printStackTrace();
		}
	}
	//连接数据库的方法
	public static Connection getConectionDb(){
		Connection conn=null;
		try{
			conn=DriverManager.getConnection(url,username,password);//获得数据库连接
		}catch(SQLException e){
			e.printStackTrace();
		}
		return conn;
	}
	//关闭数据库的方法
	public static void CloseDB(ResultSet rs,PreparedStatement stm,Connection conn){
		if(rs!=null){
			try{
				rs.close();
			}catch(SQLException e){
				e.printStackTrace();
			}
		}
		if(stm!=null){
			try{
				stm.close();
			}catch(SQLException e){
				e.printStackTrace();
			}
		}
		if(conn!=null){
			try{
				conn.close();
			}catch(SQLException e){
				e.printStackTrace();
			}
		}
		
	}
	
 
}

创建查询页面,form.jsp,代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>



  
    
    
    My JSP 'form.jsp' starting page
    
	
	
	    
	
	
	

  
  
  
    
请输入要查询的名字:

创建查询的显示页面,query.jsp,代码如下:

<%@ page language="java" import="java.util.*" import="com.Bean.*" pageEncoding="UTF-8"%>
<%@ page import="com.Dao.*" %>
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>



  
    
    
    My JSP 'query.jsp' starting page
    
	
	
	    
	
	
	

  
  
  
    <%
    request.setCharacterEncoding("UTF-8");
    String name = request.getParameter("name");
    ArrayList list = StudentDao.query(name); //调用StudentDao的方法query
     %>
     
     <%
     for(int i=0;i
      
      <%
      }
       %>
     
学号 姓名
<%=s.getId() %> <%=s.getName() %>

运行form.jsp,输入要查询的数据:

JavaBean DAO and VO查询数据库中的信息_第3张图片

 点击查询:

JavaBean DAO and VO查询数据库中的信息_第4张图片

数据库找中的表:

 JavaBean DAO and VO查询数据库中的信息_第5张图片

 

 

你可能感兴趣的:(JSP小项目练习,javaWeb,javaBean)