JDBC操作数据库--查询

本博客展示了如何通过SQL查询实现性别筛选,并将筛选结果以表的形式展示。包括了处理表单提交中文乱码问题的方法,以及使用Java进行数据库连接与数据查询的基本流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*" %>
<%!
String codeToString(String str) //解决表单提交中文乱码问题
{
String s=str ;
try
{
byte bt[]=str.getBytes("ISO-8859-1");
s=new String(bt);
return s;
}
catch(Exception e)
{
return s;
}
}
%>
<%
String sql=null ; //使用引用数据类型一定要赋值为null
String ss=codeToString(request.getParameter("sex")) ; //转换表单提交的数据 编码重新构造 刚开始打开页面的时候会有null异常所以我们要拦截
if(ss==null||ss.trim().length()==0) //如果是空指针或者空字符那么返回所有结果 如果是刚打开该页面那么ss返回的是null 我们因该把这个条件放在第一位否则后面的条件执行会处错误
sql=new String("select * from userTable");
else
sql= new String("select * from userTable where user_sex = '" +ss.trim() + "'");
%>
<html>
<head>
<title>
select information by sex !
</title>
</head>
<body>
<%
Connection c ;
Statement s ;
ResultSet r ;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
}
catch(ClassNotFoundException e) //类没有发现
{
out.println(e.toString()) ;
}
try
{
c=DriverManager.getConnection("jdbc:odbc:testDataBase");
s=c.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY ) ;
r=s.executeQuery(sql) ;
out.print("<form action=select.jsp name=form1 method=post >");
out.print("请选择要查询的性别:&nbsp&nbsp") ;
out.print("<select name=sex>") ;
out.print("<option value=''>");
out.print("所有人");
out.print("</option>");
out.print("<option value=男 >");
out.print("男");
out.print("</option>");
out.print("<option value=女>");
out.print("女");
out.print("</option>");
out.print("</select>");
out.print("&nbsp&nbsp<input type=submit value=提交查询>") ;
out.print("</form><br>") ;
out.print("<table border>") ;
r.last() ;
out.print("共有"+ r.getRow()+"行记录.<br>") ;
r.beforeFirst() ;
while(r.next())
{
out.print("<tr>") ;
out.print("<td width=22>"+r.getInt(1)+"</td>") ;
out.print("<td>"+r.getString(2)+"</td>") ;
out.print("<td>"+r.getString(3)+"</td>") ;
out.print("<td>"+r.getString(4)+"</td>") ;
out.print("<td>"+r.getString(5)+"</td>") ;
out.print("<td>"+r.getString(6)+"</td>") ;
out.print("<td>"+r.getString(7)+"</td>") ;
out.print("<td>"+r.getString(8)+"</td>") ;
out.print("<td>"+r.getString(9)+"</td>") ;
out.print("</tr>") ;
}
out.print("</table>") ;
r.close() ;
c.close() ;
s.close() ;
}
catch(SQLException e)
{
out.println(e.toString()) ;
}
%>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值