返回json数据和模糊搜索
1.新建Book.java类实体,属性做set、get 和toString方法
private int id;
private String name;
private String author;
private float price;
private String publisher;
2、建立BookMapper接口,传入pattern,用ArrayList可以存放多本图书。
public ArrayList<Book> find(String pattern);
3、建立BookMapper.xml做映射
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mapper.BookMapper">
<select id="find" parameterType="string" resultType="entity.Book">
select * from book where name like #{pattern}
</select>
</mapper>
4、mybatis-config.xml 增加<mapper class="mapper.BookMapper"/>
5、建立BookDAO,返回list,多本图书。
public ArrayList<Book> find(String pattern) throws IOException
{
SqlSession session=MyBatisUtils.openSession();
BookMapper bookMapper=session.getMapper(BookMapper.class);
ArrayList<Book> list=bookMapper.find(pattern);
session.close();
return list;
}
6、建立BookController,处理及返回数据
package controller;
import java.io.IOException;
import java.util.ArrayList;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import dao.BookDAO;
import entity.Book;
@Controller
@RequestMapping("/book")
//方法比较多的时候,把含有book的目录提取出来,方便代码看起来简洁。
public class BookController {
@RequestMapping("/get.do")
@ResponseBody
//添加ResponseBody 注解才能把book对象返回到网页上,通常用来返回JSON数据或者是XML数据。
public ArrayList<Book> find(String pattern) throws IOException
{
BookDAO dao=new BookDAO();
ArrayList<Book> list=dao.find("%"+pattern+"%"); //"%"+pattern+"%"模糊搜索
return list;
}
}
7、返回json数据,还引入jackson包(core,annotations,databind)
8、修改spring-servlet.xml配置文件,加含有json的bean
修改配置文件(第一个bean可以省略)
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html; charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html; charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</list>
</property>
</bean>
9、前端welcme.jsp 使用jquery的append方法
<%@ 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>Insert title here</title>
<script type="text/javascript" src="${pageContext.request.contextPath}/jslib/jquery.min.js"></script>
<script type="text/javascript" >
$(function(){
$("#get").click(function(){
$.post("book/get.do",{pattern:$("#pattern").val()},function(data){
$("#books").append("<tr><td>序号</td><td>名称</td><td>价格</td><td>作者</td><td>出版社</td></tr>");
for(i=0;i<data.length;i++){
$("#books").append("<tr><td>"+ (i+1)+"</td><td>"+ data[i].name +"</td><td>"+ data[i].price +"</td><td>"+ data[i].author +"</td><td>"+ data[i].publisher +"</td></tr>");
}
},"json");
});
});
</script>
</head>
<body>
欢迎${name}登录!<br/>
<br/>
<br/>
请输入书名进行模糊查询:<input type="text" id="pattern" >
<input type="button" id="get" value="获取图书"><br>
<table id="books">
</table>
</body>
</html>
输出结果
数据库数据
jar包和文件目录