模糊查询,主要通过sql语句来进行查询


一.dao层

加入模糊查询的方法

package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List; //import com.mysql.cj.protocol.ResultBuilder; import Bean.Course;
import util.DBUtil; public class daoCourse { public boolean add(Course n)
{
boolean f=false;
int a=0;
String sql="insert submitcourse(classname,teachername,place) values(?,?,?)";
try {
Connection conn=DBUtil.getConnection();
PreparedStatement pstmt=conn.prepareStatement(sql);
pstmt.setString(1,n.getClassname());
pstmt.setString(2,n.getTeachername());
pstmt.setString(3,n.getPlace());
a=pstmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(a>0) f=true;
return f;
}
public boolean delete(Course n) {
boolean f=false;
int a=0;
String sql="delete from submitcourse where teachername=?";
try {
Connection conn=DBUtil.getConnection();
PreparedStatement pstmt=conn.prepareStatement(sql);
pstmt.setString(1,n.getTeachername());
a=pstmt.executeUpdate();
System.out.println("fuck you");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(a>0) f=true;
return f;
}
public List<Course> list(){
String sql="select * from submitcourse";
List<Course> list=new ArrayList<>();
ResultSet rs=null;
Course ns=new Course();
try {
Connection conn=DBUtil.getConnection();
PreparedStatement pstmt=conn.prepareStatement(sql);
// pstmt.setString(1,n.getTeachername());
rs=pstmt.executeQuery();
while(rs.next())
{
ns=new Course(rs.getString(1),rs.getString(2),rs.getString(3));
list.add(ns);
}
//System.out.println(rs);
System.out.println(rs);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
public boolean update(Course n,String old_teachername){
boolean f=false;
int a=0;
String sql = "update submitcourse set classname='"+n.getClassname()+"',teachername='"+n.getTeachername()+"',place='"+n.getPlace()+"' where teachername='"+old_teachername+"'";
try {
Connection conn=DBUtil.getConnection();
PreparedStatement pstmt=conn.prepareStatement(sql);
a=pstmt.executeUpdate();
System.out.println(a);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(a>0) f=true; return f; }
public Course queryByTeachername(String teachername) {
String sql="select * from submitcourse where teachername=?";
Course n=new Course();
try {
ResultSet rs=null;
Connection conn=DBUtil.getConnection();
PreparedStatement pstmt=conn.prepareStatement(sql);
pstmt.setString(1,teachername);
rs=pstmt.executeQuery();
while(rs.next()) {
n=new Course(rs.getString(1), rs.getString(2),rs.getString(3));
}
System.out.println("fuck you");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return n ; }
public List<Course> searchByTeachername(String teachername){//模糊查询
List<Course> ns=new ArrayList<Course>();
String sql="select * from submitcourse where teachername like ?";
ResultSet rs=null; try {
Connection conn=DBUtil.getConnection();
PreparedStatement pstmt=conn.prepareStatement(sql);
pstmt.setString(1, "%"+teachername+"%");
rs=pstmt.executeQuery();
while(rs.next())
{
Course n=new Course(rs.getString(1),rs.getString(2),rs.getString(3));
ns.add(n);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ns;
}
}

二.servlet层

package servlet;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import Bean.Course;
import dao.daoCourse; /**
* Servlet implementation class course_servlet
*/
@WebServlet("/course_servlet")
public class course_servlet extends HttpServlet {
private static final long serialVersionUID = 1L;
daoCourse gooddao=new daoCourse();
/**
* @see HttpServlet#HttpServlet()
*/
public course_servlet() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(request, response);
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String method=request.getParameter("method");
String keyword=request.getParameter("keyword");//这是你要搜索的关键字
if("add".equals(method))
{
String teachername=request.getParameter("teachername");
String classname=request.getParameter("classname");
String place=request.getParameter("place");
Course n=new Course(classname,teachername,place);
gooddao.add(n);
request.setAttribute("message", "添加成功");
request.getRequestDispatcher("NewFile2.jsp").forward(request, response);
} else if("delete".equals(method)) {
String teachername=request.getParameter("teachername");
Course n=new Course();
n.setTeachername(teachername);
gooddao.delete(n);
request.setAttribute("message", "删除成功");
request.getRequestDispatcher("course_servlet?method=looklist").forward(request, response);
}
else if("looklist".equals(method)) {
List<Course> nt= gooddao.list();
request.setAttribute("nt", nt);
System.out.println("王建民");
request.getRequestDispatcher("NewFile3.jsp").forward(request, response);
}
else if("queryByTeachername".equals(method))
{
String teachername=request.getParameter("teachername");
Course n=new Course();
System.out.println("8888");
n.setTeachername(teachername);
n= gooddao.queryByTeachername(teachername);
request.setAttribute("n", n);
request.getRequestDispatcher("update.jsp").forward(request, response);
}
else if("update".equals(method))
{
String teachername=request.getParameter("teachername");
String classname=request.getParameter("classname");
String place=request.getParameter("place");
String old_teachername=request.getParameter("old_teachername");
Course n=new Course(classname,teachername,place);
gooddao.update(n,old_teachername);
request.setAttribute("message", "添加成功");
request.getRequestDispatcher("course_servlet?method=looklist").forward(request, response);
}
else if("searchByTeachername".equals(method))
{
System.out.println(keyword);
List<Course> cha= gooddao.searchByTeachername(keyword); //传至dao层
request.setAttribute("n", cha);
request.getRequestDispatcher("chaxun.jsp").forward(request, response);
}
} }

三.jsp层

我们在chaxun.jsp里面添加查询的功能

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="course_servlet?method=searchByTeachername" method="post">
按老师姓名查询<input type="text" name="keyword" id="keyword">
<input type="submit" value="搜索">
<table>
<tr>
<td>课程名称</td>
<td>教师姓名</td>
<td>教学地点</td>
<td>操作</td>
</tr>
<c:forEach items="${n}" var="xm">
<tr>
<td>${xm.classname}</td>
<td>${xm.teachername}</td>
<td>${xm.place}</td>
<td><a href="course_servlet?method=delete&teachername=${xm.teachername}" onClick="return confirm('确认删除吗?');">删除</a>
<a href="course_servlet?method=queryByTeachername&teachername=${xm.teachername}">修改</a>
</tr>
</c:forEach> </table>
</form>
</body>
</html>

四.运行结果

点击查询

输入“刘”,即可得到查询结果


这就是一整个增删改查的过程,你只需要建一个表,后期可以进行美化、判断,完善功能!!!!

javaweb之模糊查询的更多相关文章

  1. 详细介绍idea实现javaweb项目登入注册(华东交通大学教务处信息管理系统)、模糊查询

    详细介绍idea实现javaweb项目登入注册(华东交通大学教务处信息管理系统).模糊查询 1,创建数据库,我的用户名:root 密码:root,数据库名称:lianwei,表名:login 2,效果 ...

  2. 模糊查询的sql语句

    Java程序中使用的sql语句一直不明白是什么作用,在网上搜索了一些资料,看到一篇博客,稍微解答了具体每条代码的作用,因为作者加了详细的注解,可以作为参考 <JavaWeb dao层条件查询(模 ...

  3. Mybatis框架的模糊查询(多种写法)、删除、添加(四)

    学习Mybatis这么多天,那么我给大家分享一下我的学习成果.从最基础的开始配置. 一.创建一个web项目,看一下项目架构 二.说道项目就会想到需要什么jar 三.就是准备大配置链接Orcl数据库 & ...

  4. js—模糊查询

    首先要明白什么是模糊查询(废话又来了),就是根据关键字把列表中符合关键字的一项或某项罗列出来,也就是要检查列表的每一项中是否含有关键字,因此抽象一下就是一个字符串中是否含有某个字符或者字符串. 以下例 ...

  5. mybatis : trim标签, “等于==”经验, CDATA标签 ,模糊查询CONCAT,LIKE

    一.My Batis trim标签有点类似于replace效果. trim 属性, prefix:前缀覆盖并增加其内容 suffix:后缀覆盖并增加其内容 prefixOverrides:前缀判断的条 ...

  6. combobox实现模糊查询自动填充

    利用winform设计软件界面时,经常用到combobox控件,但有时需要绑定数据表中的数据,更进一步,需要实现对数据表中数据的模糊查询功能.本文就讲讲述如何用C#实现combobox下拉列表的模糊查 ...

  7. [转]ORACLE中Like与Instr模糊查询性能大比拼

    instr(title,'手册')>0  相当于  title like '%手册%' instr(title,'手册')=1  相当于  title like '手册%' instr(titl ...

  8. 关系数据库SQL之基本数据查询:子查询、分组查询、模糊查询

    前言 上一篇关系数据库常用SQL语句语法大全主要是关系型数据库大体结构,本文细说一下关系型数据库查询的SQL语法. 语法回顾 SELECT [ALL|DISTINCT] <目标列表达式>[ ...

  9. StackExchange.Redis加载Lua脚本进行模糊查询的批量删除和修改

    前言 使用StackExchange.Redis没有直接相关的方法进行模糊查询的批量删除和修改操作,虽然可以通过Scan相关的方法进行模糊查询,例如:HashScan("hashkey&qu ...

随机推荐

  1. 基于idea做java程序的本地k8s调试-skaffold(一)

    先介绍下本篇文章是基于ideas下开发微服务的场景,大家都知道微服务嘛,一个个微的服务...很多,先不谈调试,要跑起来都费力,可能的原因有: 环境变量的配置,如果多个项目穿插着来,env变量可能废了, ...

  2. U8g2库的使用

    一.硬件介绍: 由于笔者这里只有0.96寸的OLED屏幕,那就讲讲最常用的0.96寸OLED屏幕吧. OLED介绍: OLED,即有机发光二极管( Organic Light Emitting Dio ...

  3. Spring-MyBatis的配置文件

    <?xml version="1.0" encoding="UTF8"?> <beans xmlns="http://www.spr ...

  4. js 加载 xml 及遍历属性及内容 整理

    本文旨在: js加载xml文件并读取节点信息 1 加载xml文件 var xmlDoc = loadXMLDoc("negativeData.xml"); function loa ...

  5. 解决Hadoop集群hdfs无法启动DataNode的问题

    问题描述: 在hadoop启动hdfs的之后,使用jps命令查看运行情况时发现hdfs的DataNode并没有打开. 笔者出现此情况前曾使用hdfs namenode -format格式化了hdfs ...

  6. 洛谷P1049 [NOIP2001 普及组] 装箱问题

    本题就是一个简单的01背包问题   1.因为每个物品只能选一次,而且要使箱子的剩余空间为最小.所以可以确定属性为 MAX 2.由于是从n个物品里面选i个物品 那么就是选出的i个物品的空间总和要尽可能的 ...

  7. 22.1.22 并查集和KMP算法

    22.1.22 并查集和KMP算法 1.并查集结构 1)实现: 并查集有多种实现方式,例如向上指的图的方式,数组的方式等等.其根本思想就在于准确记录某个节点的根节点,这个这种记录就能够很快的实现并查集 ...

  8. mybatis学习一:基于xml与注解配置入门实例与问题

    注:本case参考自:http://www.cnblogs.com/ysocean/p/7277545.html 一:Mybatis的介绍: MyBatis 本是apache的一个开源项目iBatis ...

  9. rabbitmq 中 vhost 的作用是什么?

    vhost本质上是一个mini版的RabbitMQ服务器,拥有自己的队列.绑定.交换器和权限控制: vhost通过在各个实例间提供逻辑上分离,允许你为不同应用程序安全保密地运行数据: vhost是AM ...

  10. Redis的持久化方案(三)

    Redis的所有数据都是保存到内存中的. Rdb:快照形式,定期把内存中当前时刻的数据保存到磁盘.Redis默认支持的持久化方案. aof形式:append only file.把所有对redis数据 ...