JSP学习之---运用useBean和jdbc操作。实现简答前台操作数据库。

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/qq_34291777 https://blog.csdn.net/qq_34291777/article/details/71505957

JSP学习之—运用useBean和jdbc操作。实现简答前台操作数据库。

功能描述

1 . 在”student”表中查询所有大于特定年龄的学生信息,此年龄由用户指定(提示,在网页上面添加一个文本框用于用户输入年龄,然后根据用户输入的年龄创建sql语句,下面加一个按钮,单击按钮将查询结果显示在网页上。
2 . 向”student”表中填入若干数据记录,要求数据由网页输入,并在下一页面显示插入后的结果。


数据库表设计

在mysql中按照下表的结构建立”student”表

字段名 数据类型
name 文本
address 文本
age 数字

实现效果展示

1 .查询
这里写图片描述

2 . 插入
这里写图片描述


实现代码

1 . DbHandle.java

package com.shiyan5_buchong;

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

public class DbHandle {

    Connection conn;
    Statement sta = null;
    ResultSet rst = null;
    public DbHandle(){
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try {
            conn = DriverManager.getConnection("jdbc:mysql://www.malikcheng.xin:3306/test","***","***");
        } catch (SQLException e) {
            e.printStackTrace();
        }
        //System.out.println("success!");
    }


    public ResultSet select( String age){
        String sql ="select * from students where age >"+age;
        try {
            sta = conn.createStatement();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        try {
            rst = sta.executeQuery(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        }
//      System.out.println(sql);
        return rst;
    }
    public ResultSet selectAll( ){
        try {
            sta = conn.createStatement();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        try {
            rst = sta.executeQuery("select id,name,address,age from students");
        } catch (SQLException e) {
            e.printStackTrace();
        }
//      System.out.println(sql);
        return rst;
    }
    public void  insert (String id,String name,String age,String address ) {
        String sql = "insert into students (id,name,age,address) values ("+id+",'"+name+"',"+age+",'"+address+"'"+")";
        try {
            sta = conn.createStatement();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        try {
            sta.execute(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        }

//      System.out.println(sql);
    }

    public void close () throws Exception{
        sta.close();
        conn.close();
    }
    public static void main(String[] args) throws Exception {
        DbHandle d = new DbHandle();
        d.insert("33", "qq",  "88","qq");
        ResultSet rst =d.selectAll(); 
        while (rst.next()){
            System.out.print("\n"+rst.getString(1)+" ");
            System.out.print(" "+rst.getString(2)+" ");
        System.out.print("  "+rst.getString(3)+"\n");

        }
    }
}

2 . 查询页面

<%@page import="java.sql.ResultSet"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<jsp:useBean id="dbhandle" class="com.shiyan5_buchong.DbHandle"></jsp:useBean>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
    <table bgcolor="greed" border="1" cellspacing="0" cellpadding="0"
        align="center" width="500">
        <%
            String age = request.getParameter("age");
        out.println("<tr>");
        out.println("<td>" + ("id") + "</td>");
        out.println("<td>" + ("name") + "</td>");
        out.println("<td>" + ("address") + "</td>");
        out.println("<td>" + ("age") + "</td>");
        out.println("</tr>");
            if (age != null) {
                ResultSet rst = dbhandle.select(age);
                while (rst.next()) {
                    out.println("<tr>");
                    out.println("<td>" + rst.getString("id") + "</td>");
                    out.println("<td>" + rst.getString("name") + "</td>");
                    out.println("<td>" + rst.getString("address") + "</td>");
                    out.println("<td>" + rst.getString("age") + "</td>");
                    out.println("</tr>");
                }
                rst.close();
                dbhandle.close();
            }
            else{
                ResultSet rst = dbhandle.selectAll();
                while (rst.next()) {
                    out.println("<tr>");
                    out.println("<td>" + rst.getString("id") + "</td>");
                    out.println("<td>" + rst.getString("name") + "</td>");
                    out.println("<td>" + rst.getString("address") + "</td>");
                    out.println("<td>" + rst.getString("age") + "</td>");
                    out.println("</tr>");
                }
                rst.close();
                dbhandle.close();
            }
        %>
    </table>
    <div align="center">

        <form method="post" action="">
            <span>输入要查询的大于特定年龄的数值:</span> <input type="text" name="age">
            <input type="submit" value="提交">
        </form>
    </div>
</body>
</html>

3 . 插入页面

<%@page import="java.sql.ResultSet"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
 <jsp:useBean id="dbhandle" class="com.shiyan5_buchong.DbHandle"></jsp:useBean> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
    <table bgcolor="greed" border="1" cellspacing="0" cellpadding="0"
        align="center" width="500">
        <%
        String age = request.getParameter("age");
        String id = request.getParameter("id");
        String address  = request.getParameter("address");
        String name= request.getParameter("name");
        out.println("<tr>");
        out.println("<td>" + ("id") + "</td>");
        out.println("<td>" + ("name") + "</td>");
        out.println("<td>" + ("address") + "</td>");
        out.println("<td>" + ("age") + "</td>");
        out.println("</tr>");
            if (id != null) {
             dbhandle.insert(id, name, age,address);                

            }
                ResultSet rst = dbhandle.selectAll();
                while (rst.next()) {
                    out.println("<tr>");
                    out.println("<td>" + rst.getString("id") + "</td>");
                    out.println("<td>" + rst.getString("name") + "</td>");
                    out.println("<td>" + rst.getString("address") + "</td>");
                    out.println("<td>" + rst.getString("age") + "</td>");
                    out.println("</tr>");
                }
                rst.close();
                dbhandle.close();

        %>
    </table>
    <form method="post" action="">
    <table align="center">
  <tr>
    <td>id:</td>
    <td><input type="text" name="id" required="required"></td>
  </tr>
  <tr>
    <td>name:</td>
    <td><input type="text" name="name"></td>
  </tr>
  <tr>
    <td>address:</td>
    <td><input type="text" name="address"></td>
  </tr>
  <tr>
    <td>age:</td>
    <td><input type="text" name="age"></td>
  </tr>
  <tr>
    <td colspan="2" align="center">
    <input type="submit" name="" value="提交">
    <input type="reset" name="" value ="重设">
    </td>

  </tr>
</table>

    </form>
</body>
</html>

3 . 注意不要忘记把mysql驱动拷到WebContent\WEB-INF\lib 下
4 。 还有些bug没有解决,只是简单的实现。比如只能提交一次、提交的数据格式不正确时等等。

猜你喜欢

转载自blog.csdn.net/qq_34291777/article/details/71505957