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没有解决,只是简单的实现。比如只能提交一次、提交的数据格式不正确时等等。