java web通过java类来驱动对数据库进行操作(以数据库查询为例)
1.java类(写于Java Resources文件夹下的src的包中,无包则需自己创建)
package java第九周1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Sqlmethod {
/*
String driver="com.mysql.jdbc.Driver";
String url1="jdbc:mysql://localhost:3306/aaa";
String url2="?user=root&password=2411030483";
String url3="&useUnicode=true&characterEncoding=UTF-8";
String url=url1+url2+url3;
Class.forName(driver);
Connection conn=DriverManager.getConnection(url);//实现注册驱动并建立数据库的连接
*/
private String driverName="com.mysql.jdbc.Driver";
private String userName="root";
private String userPW="2411030483";
private String dbName="aaa";
public Sqlmethod(String driverName, String userName, String userPW, String dbName) {
super();
this.driverName = driverName;
this.userName = userName;
this.userPW = userPW;
this.dbName = dbName;
}
public Sqlmethod() {
super();
// TODO Auto-generated constructor stub
}
public String getDriverName() {
return driverName;
}
public void setDriverName(String driverName) {
this.driverName = driverName;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPW() {
return userPW;
}
public void setUserPW(String userPW) {
this.userPW = userPW;
}
public String getDbName() {
return dbName;
}
public void setDbName(String dbName) {
this.dbName = dbName;
}
public Connection getConn() throws Exception{
String url1="jdbc:mysql://localhost:3306/"+dbName;
String url2="?user=root&password="+userPW;
String url3="&useUnicode=true&characterEncoding=UTF-8";
String url=url1+url2+url3;
Class.forName(driverName);
Connection conn=DriverManager.getConnection(url);
return conn;
}
public void free(Connection conn,Statement stmt,ResultSet rs) throws Exception//关闭不同的接口,使其通用性更高
{
if(rs!=null){rs.close();}
if(stmt!=null){stmt.close();}
if(conn!=null){conn.close();}
}
public void free2(Connection conn,Statement stmt) throws Exception
{
if(stmt!=null){stmt.close();}
if(conn!=null){conn.close();}
}
public void free3(Connection conn) throws Exception
{
if(conn!=null){conn.close();}
}
}
2.提交表单
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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>查询信息页面</title>
</head>
<body>
<form action="select2.jsp" method="post"><%//创建表单传输数据 %>
<p>请选择想要查询的分数范围</p>
<hr>
最低体重: <input type="text" name="weight1"><br><br>
最高体重: <input type="text" name="weight2"><br><br>
<input type="submit" value="提交">
<input type="reset" value="取消">
</form><br>
</body>
</html>
3.数据库查询
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="java第九周1.Sqlmethod"%>
<!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>输出信息页面</title>
</head>
<body>
<%
Sqlmethod ss = new Sqlmethod();
Connection conn = ss.getConn();
String sql = "select id,name,sex,age,weight,height from biao1 where weight>=? and weight<=?;";//写出对数据库的操作语句,?表示占位符
%>
<%
if (request.getParameter("weight1") != null && request.getParameter("weight1").trim().length() > 0
&& request.getParameter("weight2") != null && request.getParameter("weight2").trim().length() > 0) {
String weight1 = request.getParameter("weight1");//通过表单获取数据
String weight2 = request.getParameter("weight2");
double wt1 = Double.parseDouble(weight1);
double wt2 = Double.parseDouble(weight2);//将数据转换为相应类型
PreparedStatement pstmt = conn.prepareStatement(sql);//对象
pstmt.setDouble(1, wt1);//将第一个占位符赋值
pstmt.setDouble(2, wt2);
ResultSet rs = pstmt.executeQuery();//执行select,返回一个结果集
rs.last();
%>
你要查询的共有<%=rs.getRow()%>人
<table border="2" width="650">
<%
//建立表格,显示数据
%>
<tr>
<td>记录条数</td>
<td>学号</td>
<td>姓名</td>
<td>性别</td>
<td>年龄</td>
<td>体重</td>
<td>身高</td>
</tr>
<%
rs.beforeFirst();//将信息放入表格
while (rs.next()) {
%><tr>
<td><%=rs.getRow()%></td>
<td><%=rs.getInt(1)%></td>
<td><%=rs.getString(2)%></td>
<td><%=rs.getString(3)%></td>
<td><%=rs.getInt(4)%></td>
<td><%=rs.getDouble(5)%></td>
<td><%=rs.getDouble(6)%></td>
</tr>
<%
}
%>
</table>
<%
ss.free(conn, pstmt, rs);
} else
out.println("输入异常");
ss.free3(conn);
%>
</body>
</html>