spring-mybatis实现简单模糊查询
2017-12-19 19:49
896 查看
这里写代码片1.建立maven项目 引入项目所需要的依赖 ,以下简单列举两个不全部展示
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.1</version> </dependency>
2.配置web.xml文件,
<servlet-name>标签里边的名字要一致,这里根据官方给的来进行命名
<servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-*.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
3
3.1. 添加配置数据库db.properties文件
3.2. 添加配置文件
spring-dao.xml
<!--spring就会去自动扫描base-package对应的路径或者该路径的子包下面的java文件,如果扫描到文件中带有@Service,@Component,@Repository,@Controller等这些注解的类,则把这些类注册为bean --> <context:component-scan base-package="com.fengfeng.dao" /> <!-- properties配置信息的加载 --> <context:property-placeholder location="classpath:db.properties"/> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean> <!-- 配置 mybatis 的 settings --> <bean id="configuration" class="org.apache.ibatis.session.Configuration"> <property name="mapUnderscoreToCamelCase" value="true"/> </bean> <!-- 配置 mybatis 的相关信息 --> <bean class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="configLocation" value="classpath:mybatis-config.xml"/> <property name="configuration" ref="configuration"/> <property name="typeAliasesPackage" value="com.fengfeng.entity"/> <property name="dataSource" ref="dataSource"/> <property name="mapperLocations" value="classpath*:com/fengfeng/dao/*.xml"/> </bean> <!-- 把 dao 接口的实现类注册到 spring 中,允许通过注解方式获取对象使用 --> <!-- 使用 @Autowride 代替 session.getMapper(UserDao.class); --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.fengfeng.dao"/> </bean>
3.3 配置 spring-service.xml 文件
<!-- 包扫描 --> <context:component-scan base-package="com.fengfeng.service"/>
3.4 配置spring-web.xml文件
<context:component-scan base-package="com.fengfeng.controller"/> <!-- 对所有的资源都放行 --> <mvc:default-servlet-handler/>
4.创建实体类UserDO.java,封装getter,setter方法和toString()方法,根据自己需要添加构造函数
private int id; private String name; private Integer age; private String photo;
5.service层 ,创建service接口,方法.
/** * 查询用户 * @param keyword 一组关键词 * @return */ List<UserDO> listUser(String[] keyword); /** * 添加用户 * @param user */ void addUser(UserDO user); /** * 删除用户 * @param id 一组需要删除的用户的 id */ void removeUser(String[] id);
6.创建数据库操纵层dao层方法,这里service与dao层方法类似,就不再重新命名,我们使用service方法进行实现
/** * 查询用户 * @param keyword 一组关键词 * @return */ List<UserDO> listUser(String[] keyword); /** * 添加用户 * @param user */ void addUser(UserDO user); /** * 删除用户 * @param id 一组需要删除的用户的 id */ void removeUser(String[] id);
7,创建UserMapper.xml文件来对dao层放进行 实现
<!-- 在 controller 中给 keyword 一个默认值 "" --> <!-- 所有以 keyword 永远也不为 null --> <select id="listUser" resultType="com.fengfeng.entity.UserDO"> SELECT id, name FROM user <where> <!-- # 传入的字符串会自动添加 '' eg:'i' --> <!-- $ 传入的字符串不会添加 '' eg:i --> <if test="array != ''"> <foreach collection="array" item="item" separator="OR"> name LIKE '%${item}%' </foreach> </if> </where> </select> <delete id="removeUser"> DELETE FROM user WHERE <foreach collection="array" item="item" separator="OR"> id = ${item} </foreach> </delete> 8.对service接口中的方法进行完善,创建UserServiceImpl.java 实现接口中的方法
@Service
public class UserServiceImpl implements UserService {
@Autowired private UserDao dao; public List<UserDO> listUser(String[] keyword) { return dao.listUser(keyword); } public void addUser(UserDO user) { dao.addUser(user); } public void removeUser(String[] id) { dao.removeUser(id); }
}
8.创建Controller.java
@Controller
public class UserController {
@Autowired private UserService service; @RequestMapping("/user/list") public String listUser(@RequestParam(required=false, defaultValue="")String keyword, Model model) { // 通过注解设置 keyword 可以不传,不传的时候给与默认值 "" // 这样做的目的是为了减少 keyword != null 这个判断 List<UserDO> list = service.listUser(keyword.split(" ")); // 使用 model 在请求转发的时候携带参数 model.addAttribute("list", list); model.addAttribute("keyword", keyword); // 使用 forward 或 redirect 关键字的时候需要写全路径 // 如果没有使用关键字,则会自动拼接前后缀 return "forward:/WEB-INF/user/list.jsp"; } @RequestMapping("/user/remove") public String removeUser(String[] id) { service.removeUser(id); return "redirect:/user/list"; }
}
9.随随便便的前端list.jsp页面,能出来效果但是丑的要命!
<body> <form action='<c:url value="/user/list"></c:url>'> <input type="text" name="keyword" value="${keyword }"> <input type="submit"> </form> <form action='<c:url value="/user/remove"></c:url>'> <input type="submit" value="删除"> <table border="1"> <tr> <th></th> <th>id</th> <th>名字</th> </tr> <c:forEach items="${list }" var="user"> <tr> <td> <!-- 把 user.id 提交给服务器 --> <input type="checkbox" name="id" value="${user.id }"> </td> <td>${user.id }</td> <td>${user.name }</td> </tr> </c:forEach> </table> </form> </body>
相关文章推荐
- springmvc+Mybatis 分页查询的简单实现
- 分页查询简单实现(Freemarker+SpringMVC+Mybatis)
- spring boot+mvc+mybatis+netty-sokey.io+html+js实现简单即时通讯聊天系统
- Spring+SpringMVc+Mybatis实现数据库查询
- mybatis+oracle实现模糊查询
- Maven+Mybatis+Spring+SpringMVC实现分页查询(附源码)
- mybatis 几种实现模糊查询的方法简介
- maven+spring+springmvc+mybatis+ajax 框架下实现简单的聊天室
- maven项目 spring-boot 整合 mybatis 实现查询功能demo
- eclipse搭建简单springboot-mybatis项目实现页面简单跳转
- spring mvc + mybatis 的ehcache 的简单实现
- springmvc+mybatis实现商品查询
- springMVC+Mybatis 在oracle中进行模糊查询
- MyBatis整合spring、spring MVC实现简单登陆,并在控制台添加sql语句打印
- mybatis 几种实现模糊查询的方法简介
- Struts+Spring+MyBatis MVC模式实现分页分页查询
- springmvc+mybatis+sql server实现简单登录功能【转】
- SpringMvc+Mybatis实现一个简单人事管理系统(一)
- easyui+spring MVC+Mybatis实现分页查询
- Ajax 模糊查询的简单实现