JSP_DAO方式实现数据库查询(MyEclipse10,Tomcat7.0,JDK1.7,)——Java Web练习(四)

1.项目结构:

2.创建数据库、表、插入记录

create database TestDao;

use TestDao;

create table student(
    stuid int,
    username varchar(20),
    password varchar(20)
);

insert student(stuid,username,password)
    values ("10001","Eastmount","111111");
insert student(stuid,username,password)
    values ("10002","Yangxiuzhang","123456");

desc student;

select * from student;

3.创建类:util的Package下创建JDBCConnect.java:

package util;

import java.sql.*;
import com.mysql.jdbc.Driver;

public class JDBCConnect {

    //获取默认数据库连接
    public static Connection getConnection() throws SQLException {
        return getConnection("TestDAO", "root", "mysql"); //数据库名 默认用户 密码
    }

    //连接数据库   参数:数据库名 root登录名 密码
    public static Connection getConnection(String dbName, String userName,
            String password) throws SQLException {

        String url = "jdbc:mysql://localhost:3306/" + dbName
                + "?characterEncoding=utf-8";
        //连接MySQL"com.mysql.jdbc.Driver"
        DriverManager.registerDriver(new Driver());
        return DriverManager.getConnection(url, userName, password);
    }

    //设置 PreparedStatement 参数
    public static void setParams(PreparedStatement preStmt, Object... params)
            throws SQLException {

        if (params == null || params.length == 0)
            return;
        for (int i = 1; i <= params.length; i++) {
            Object param = params[i - 1];
            if (param == null) {
                preStmt.setNull(i, Types.NULL);
            } else if (param instanceof Integer) {
                preStmt.setInt(i, (Integer) param);
            } else if (param instanceof String) {
                preStmt.setString(i, (String) param);
            } else if (param instanceof Double) {
                preStmt.setDouble(i, (Double) param);
            } else if (param instanceof Long) {
                preStmt.setDouble(i, (Long) param);
            } else if (param instanceof Timestamp) {
                preStmt.setTimestamp(i, (Timestamp) param);
            } else if (param instanceof Boolean) {
                preStmt.setBoolean(i, (Boolean) param);
            } else if (param instanceof Date) {
                preStmt.setDate(i, (Date) param);
            }
        }
    }

    //执行 SQL,返回影响的行数 异常处理
    public static int executeUpdate(String sql) throws SQLException {
        return executeUpdate(sql, new Object[] {});
    }

    //带参数执行SQL,返回影响的行数 异常处理
    public static int executeUpdate(String sql, Object... params)
            throws SQLException {

        Connection conn = null;
        PreparedStatement preStmt = null;
        try {
            conn = getConnection();
            preStmt = conn.prepareStatement(sql);
            setParams(preStmt, params);
            return preStmt.executeUpdate(); //执行SQL操作
        } finally {
            if (preStmt != null)
                preStmt.close();
            if (conn != null)
                conn.close();
        }
    }
}

4.创建类:bean的Package下创建Student.java:

package bean;

public class Student {

    private Integer id;       //学号
    private String name;      //姓名
    private String password;  //密码
    public Integer getId() { return id; }
    public String getName() { return name; }
    public String getPassword() { return password; }
    public void setId(Integer id) { this.id =  id; }
    public void setName(String name) { this.name =  name; }
    public void setPassword(String pwd) { this.password = pwd; }
}

5.创建类:DAO的Package下创建StudentDAO.java:

package DAO;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import bean.Student;
import util.JDBCConnect;

public class StudentDAO {

    //插入学生
    public static int insert(Student stu) throws Exception {

        String sql = "INSERT INTO student (stuid,username,password) VALUES (?,?,?) ";
        return JDBCConnect.executeUpdate(sql, stu.getId(),stu.getName(),stu.getPassword());
    }

    //更新学生姓名
    public static int update(Student stu) throws Exception {

        String sql = "UPDATE student SET stuid = ? WHERE username = ? ";
        return JDBCConnect.executeUpdate(sql,stu.getId(),stu.getName());
    }

    //删除操作
    public static int delete(Integer id) throws Exception {

        String sql = "DELETE FROM student WHERE stuid = ? ";
        return JDBCConnect.executeUpdate(sql, id);
    }

    //查找记录 某学号
    public static Student find(Integer id) throws Exception {

        String sql = "SELECT * FROM student WHERE stuid = ? ";
        Connection conn = null;
        PreparedStatement preStmt = null;
        ResultSet rs = null;

        try {
            //链接数据库执行SQL语句
            conn = JDBCConnect.getConnection(); //连接默认数据库
            preStmt = conn.prepareStatement(sql);
            preStmt.setInt(1, id);
            rs = preStmt.executeQuery();
            //获取查询结果
            if (rs.next()) {
                Student student = new Student();
                student.setId(rs.getInt("stuid"));
                student.setName(rs.getString("username"));
                return student;
            } else {
                return null;
            }

        } finally { //依次关闭 记录集 声明 连接对象
            if (rs != null)
                rs.close();
            if (preStmt != null)
                preStmt.close();
            if (conn != null)
                conn.close();
        }
    }

    //查询所有学生信息
    public static List<Student> listStudents() throws Exception {

        List<Student> list = new ArrayList<Student>();
        String sql = "SELECT * FROM student";
        Connection conn = null;
        PreparedStatement preStmt = null;
        ResultSet rs = null;

        try {
            conn = JDBCConnect.getConnection();
            preStmt = conn.prepareStatement(sql);
            rs = preStmt.executeQuery();
            while (rs.next()) {
                //设置数据库中表参数 否则报错java.sql.SQLException: Column ‘id‘ not found.
                Student student = new Student();
                student.setId(rs.getInt("stuid"));
                student.setName(rs.getString("username"));
                student.setPassword(rs.getString("password"));
                list.add(student);
            }

        } finally {
            if (rs != null)
                rs.close();
            if (preStmt != null)
                preStmt.close();
            if (conn != null)
                conn.close();
        }
        return list;
    }

}

6.index.jsp:

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP ‘index.jsp‘ starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>

  <body>
    This is my JSP page. <br>
    <A href="student.jsp">JDBC操作</A>
  </body>
</html>

7.student.jsp

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<jsp:directive.page import="DAO.StudentDAO"/>
<jsp:directive.page import="java.util.List"/>
<%
    List studentList = StudentDAO.listStudents();
    request.setAttribute("studentList", studentList);
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP ‘student.jsp‘ starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <style type="text/css">
        body, td, th, input {font-size:12px; text-align:center; }
    </style>
  </head>

  <body>
    <form action="operateStudent.jsp" method=get>
            <table bgcolor="#CCCCCC" cellspacing=1 cellpadding=5 width=100%>
                <tr bgcolor=#DDDDDD>
                    <th>选择</th>
                    <th>学号</th>
                    <th>姓名</th>
                    <th>密码</th>
                    <th>操作</th>
                </tr>

                <c:forEach items="${studentList}" var="stu">
                    <tr bgcolor="#FFFFFF">
                        <td><input type="checkbox" name="id" value="${stu.id}" /></td>
                        <td>${stu.id}</td>
                        <td>${stu.name}</td>
                        <td>${stu.password}</td>
                        <td>
                            <a href="addEmployee.jsp?action=edit&id=${stu.id}">修改</a>
                        </td>
                    </tr>
                </c:forEach>
            </table>
        </form>
  </body>
</html>

8.效果:

本文引用自:http://blog.csdn.net/eastmount/article/details/45833663

时间: 2024-10-28 19:57:39

JSP_DAO方式实现数据库查询(MyEclipse10,Tomcat7.0,JDK1.7,)——Java Web练习(四)的相关文章

Servlet入门(MyEclipse10,Tomcat7.0,JDK1.7,)

1.MyEclipse|File|New|Project|Web Project    填写Project Name:exServlet,点选Java EE 6.0(配套Tomcat7.0) 2.代码结构如下: 3.修改index.jsp页面,完整代码如下: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path =

非链接方式访问数据库--查询的数据集用Dataset来存储。

private void Button_Click_1(object sender, RoutedEventArgs e) { //非链接方式访问数据库, //1创建连接对象(连接字符串) using (SqlConnection conn = new SqlConnection(SQLHelper.ConnectionString)) { //2.创建数据适配器对象 using (SqlDataAdapter sda = new SqlDataAdapter("select * from St

新手玩阿里云ECS搭建tomcat7.0+JDK1.6服务器(J2EE小项目练习)

阿里云给我提供的是CentOS 5.8 64位系统! 废话不多说,直接上操作吧!(依赖的jdk是得首先安装的) 用yum查看了一下,我的这台机器yum服务器里面没有tomcat7.0版本的,只有个5.0版本的,不过jdk6.0还是有的! yum查询有没有我要的软件包:比如jdk,可以如下查询 yum -y list java* 既然有这个安装包,那就可以用yum进行安装了 yum install java-1.6.0-openjdk.x86_64 会首先下载,然后再安装,这其中你可能需要输入一些

Java Axis2 1.6.3+JDK1.7.0_13+Tomcat7.0.65+eclipse搭建web service

jdk tomcat axis2 1.6.3 sqljdbc4.jar [ http://www.open-open.com/lib/view/1329999223671 http://blog.csdn.net/keenweiwei/article/details/7332261 ]

CAS 实现单点登录(SSO)数据库查询认证机制-自定义编码方式(四)

通过xml配置方式实现数据库查询认证,的确简单但是不够灵活.但是如果登录验证逻辑稍微复杂些,可能通过这种配置方式就不能满足需求了,比如:当用户登录时,需要判断该用户是否绑定了邮箱,如果未绑定,拒绝登录并给出提示信息. 遇到类似的情况,就需要使用自定义登录来完成,并且给出的提示信息也需要是自定义的.  自定义登录验证(默认实现QueryDatabaseAuthenticationHandler) CAS内置了一些AuthenticationHandler实现类,如下图所示,在cas-server-

十三年磨一剑,万能数据库查询分析器7.023版本 发布

中国本土程序员马根峰(CSDN专访马根峰:海量数据处理与分析大师的中国本土程序员)推出的个人作品----万能数据库查询分析器,中文版本<DB 查询分析器>.英文版本<DB Query Analyzer>.它具有强大的功能.友好的操作界面.良好的操作性.跨越各种数据库平台乃至于EXCEL和文本文件. DB 查询分析器在中关村在线 下载量超过12万 次,位居整个数据库类排行榜中前10位. 在<程序员>2007第2期的"新产品&工具点评"部分,编辑

eclipse 使用tomcat7.0建立Dynamic Web Project 时 web.xml的问题

最近使用Eclipse helios版本结合tomcat7.0建立动态的web项目时,发现在WEB-INF下的web.xml没有了. 解决方案: 建立web项目时,建到第三个下一步时,将 Generate web.xml deployment descriptor 这个选项选中即可.

CAS 实现单点登录(SSO)数据库查询认证机制-xml方式(三)

继前面介绍过基于CAS实现单点登录(SSO)的实例演示,演示过程中服务端认证机制采用的是默认配置即CAS Servier默认用户名和密码一致即可登录成功,那么本文将侧重于应用方面,真正通过查询用户名密码来进程验证用户是否可以登录. CAS Server添加相关的jar包 需要在web项目的lib下添加两个包:cas-server-support-jdbc-x.x.x.jar和 mysql-connector-java-x.x.x-bin.jar(具体版本号根据情况而定) 修改CAS Server

NHibernate 有好几种数据库查询方式

NHibernate 有好几种数据库查询方式 1.原生SQL var employeeQuery = Database.Session .CreateSQLQuery("select * from Employee where FirstName = 'John'") .AddEntity(typeof(Employee)); var employees = employeeQuery.List<Employee>(); 2.Hibernate Query Language