servlet增删改查实例_SpringMVC4+MyBatis3+SQLServer 2014 整合(包括增删改查分页)
前言
说起整合自然离不开ssm,我本身并不太喜欢ORM,尤其是MyBatis,把SQL语句写在xml里,尤其是大SQL,可读性不高,出错也不容易排查。
开发环境
idea2016、SpringMVC4、Mybatis3
项目结构
SSM整合
1、pom.xml
1 3 4.0.0 4 com.autohome 5 SpringMVC3 6 war 7 1.0-SNAPSHOT 8 SpringMVC3 9 http://maven.apache.org10 11 12 junit13 junit14 4.1015 16 17 org.springframework18 spring-core19 4.3.6.RELEASE20 21 22 org.springframework23 spring-beans24 4.3.6.RELEASE25 26 27 org.springframework28 spring-context29 4.3.6.RELEASE30 31 32 org.springframework33 spring-web34 4.3.6.RELEASE35 36 37 org.springframework38 spring-context-support39 4.3.6.RELEASE40 41 42 org.springframework43 spring-webmvc44 4.3.6.RELEASE45 46 47 org.springframework48 spring-jdbc49 4.3.6.RELEASE50 51 52 org.apache.velocity53 velocity54 1.6.255 56 57 org.apache.velocity58 velocity-tools59 2.060 61 62 org.mybatis63 mybatis64 3.4.265 66 67 org.mybatis68 mybatis-spring69 1.3.070 71 72 com.microsoft.sqlserver73 sqljdbc474 4.075 76 77 commons-dbcp78 commons-dbcp79 1.480 81 82 83 SpringMVC384 85
2、web.xml
1 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 3 "http://java.sun.com/dtd/web-app_2_3.dtd" > 4 5 6 Archetype Created Web Application 7 8 9 contextConfigLocation10 classpath:applicationContext.xml11 12 13 org.springframework.web.context.ContextLoaderListener14 15 16 17 SpringMVC18 org.springframework.web.servlet.DispatcherServlet19 20 contextConfigLocation21 classpath:springmvc-servlet.xml22 23 24 25 SpringMVC26 /27 28
3、applicationContext.xml无配置内容所以忽略
4、springmvc-servlet.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
5、springmvc-mybatis.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 4 5 6 7 8 9 10 11 12 13 14 15 16
6、dao接口层、mapper(dao接口实现层)、Biz层、 model层忽略不计(id,name,address3个测试字段)。 mapper文件让我踩了坑,后恍然大悟,mapper.xml要放在resources包下。
public interface UserMapper { List listAllUser(); List listPagedUser(@Param("pageIndex") int pageIndex,@Param("pageSize") int pageSize); int count(); int updateUser(User user); int deleteUser(int id); int insertUser(User user); User getUserById(int id); } 1 <?xml version="1.0" encoding="UTF-8"?> 2 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 4 5 6 7 select * from t_userinfo 8 9 10 11 select top ${pageSize} * from t_userinfo where id not in (select top (${pageSize} * (${pageIndex} -1)) id from t_userinfo)12 13 14 15 select count(*) from t_userinfo16 17 18 19 insert into t_userinfo VALUES (#{name},#{address})20 21 22 23 UPDATE t_userinfo set name=#{name},address=#{address} where id=#{id}24 25 26 27 DELETE FROM t_userinfo where id=#{id}28 29 30 31 select * from t_userinfo where id=#{id}32 33 34
package com.autohome.service; import com.autohome.model.User;import com.autohome.mapper.UserMapper;import org.apache.ibatis.annotations.Param;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service; import java.util.List;import java.util.Map; @Servicepublic class UserBizImpl implements IUserBiz { @Autowired private UserMapper userMapper; public List listAllUser() { return userMapper.listAllUser(); } public List listPagedUser(@Param("pageIndex") int pageIndex,@Param("pageSize") int pageSize) { return userMapper.listPagedUser(pageIndex,pageSize); } public int count() { return userMapper.count(); } public int updateUser(User user) { return userMapper.updateUser(user); } public int deleteUser(int id) { return userMapper.deleteUser(id); } public int insertUser(User user) { return userMapper.insertUser(user); } public User getUserById(int id) { return userMapper.getUserById(id); }}7、Controller。 我新建了一个UserController,在这里调用了增删改查分页的操作
package com.autohome.controller; import com.autohome.service.IUserBiz;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView; import com.autohome.model.User; @Controller@RequestMapping("/User")public class UserController { @Autowired private IUserBiz userBiz; @RequestMapping("/index") public ModelAndView index(){ //System.out.println("size:"+userBiz.listAllUser().size()); System.out.println("size:"+userBiz.count()); User user =new User();// user.setName("张三");// user.setAddress("shanxi"); int result = userBiz.insertUser(user);// if(result>0)// {// System.out.println("insert success");// }else{// System.out.println("insert err");// } int result = userBiz.deleteUser(39); if(result>0) { System.out.println("delete success"); }else{ System.out.println("delete err"); } // User user =new User();// user.setId(35);// user.setName("张三11111");// user.setAddress("china"); int result = userBiz.updateUser(user);// if(result>0)// {// System.out.println("update success");// }else{// System.out.println("update err");// } //System.out.println("size:"+userBiz.listPagedUser(1,10).size()); ModelAndView mav=new ModelAndView("index"); return mav; }}
总结
做这个demo前我看的ssm整合教程全部是基于myeclipse开发的,而且教程把dao接口和dao实现是全部放在src java目录下的,也就是mapper目录包括了mapper接口和mapper.xml。 我做第一个demo时在idea里也是这么做的,demo运行始终不成功,一直提示找不 到mapper.xml里的方法,后来编译的时候我发现target/classes里确实找不到mapper.xml。 不知道用myeclipse整合开发时是否遇到这个问题,后我把mapper.xml文件放到resources目录中,编译后target文件中就能找到mapper.xml。 方法运行也搞定了。写demo写了半个小时,debug这个问题花了2个小时,好在demo跑起来了,也算是有收获的。
博客地址:http://www.cnblogs.com/sword-successful/
servlet增删改查实例_SpringMVC4+MyBatis3+SQLServer 2014 整合(包括增删改查分页)相关推荐
- php mysql增删改查实例_php连接数据库实现用户数据的增删改查实例
下面小编就为大家带来一篇使用PHP连接数据库_实现用户数据的增删改查的整体操作示例.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 main页面(主页面) 代号 姓名 性 ...
- server的自增主键返回函数 sql_mybatis+sqlserver中返回非自增主键
首先把实体类贴出来(这里只贴出属性,其它的就是getter和setter方法): public class Around { private String xccd; //对应主键 private ...
- servlet mysql insert_servlet+mybatis 实现mysql的增删改查实例
古人云:温故而知新.趁周末,重新来学习了一遍servlet + mybatis 实现mysql的增删改查,算是对自己学习的一个总结和记录. 开门见山,首先我们来看一下项目目录结构: 不难发现这是一个m ...
- Andriod --- JetPack (七):Room + ViewModel + LiveData 增删改查实例
1.Andriod - JetPack (一):初识 JetPack 2.Andriod - JetPack (二):LifeCycle 的诞生 3.Andriod - JetPack (三):Vie ...
- c# 操作oracle数据库,C#连接oracle数据库增删改查实例
[实例简介] C#连接oracle数据库,增删改查实例,OracleParameter防Sql注入等,适用于新手学习 [实例截图] [核心代码] 5868e8be-414a-4138-8390-2fb ...
- python pymysql实例_Python使用pymysql模块操作mysql增删改查实例分析
Python使用pymysql模块操作mysql增删改查实例分析 发布时间:2020-09-30 16:42:12 来源:脚本之家 阅读:92 本文实例讲述了Python使用pymysql模块操作My ...
- IntelliJ Idea SpringBoot 数据库增删改查实例
. ____ _ __ _ _/\\ / ___'_ __ _ _(_)_ __ __ _ \\\\( ( )\___ | '_ | '_| | '_ \/ _` | \\\\ \\/ ___)| | ...
- Java程序-单链表增删改查(实现对水浒人物的增删改查操作)
单链表增删改查(实现对水浒人物的增删改查操作) 前言 一.链表(Linked List)介绍 二.应用实例 1.问题描述 2.代码实现 总结 前言 参考:B站,尚硅谷数据结构与算法 课程 一.链表(L ...
- spring入门(11)-spring与hibernate整合完成增删改查的操作(封装HibernateTemplate模版类对象)
今天是spring的最后一节课,这节课老师讲了spring与hibernate整合完成增删改查的操作,这是很重要的一节课,这也是第一次真正的实现spring结合Hibernate和数据库连接上,下面是 ...
最新文章
- MPB:北林张静等-丛枝菌根真菌(AMF)孢子、菌丝密度及侵染率定量测定方法
- shell for循环案例:自动批量添加iptables应用端口规则
- 应对 Job 场景,Serverless 如何帮助企业便捷上云
- 封神系统-运维大脑的日志检测
- POJ1177 Picture 线段树+离散化+扫描线
- Ubuntu下selenium+Chrome的安装使用
- oracle dba开头的表,KU$开头的表是什么表?
- 从架构设计理念到集群部署,全面认识KubeEdge
- mac 黑窗口连接mysql_mac系统下mysql环境变量设置及远程连接
- linux下grep查找关键字
- 进入阿里做测试员遥不可及?这里或许有你想要的答案
- [算法]用java实现堆操作
- ubuntu下取代ping的好工具tcpping
- JSON数组转LIST集合的两种方法
- rk3399 rt5640 录音调试记录
- python opencv 摄像头亮度_python 基于opencv操作摄像头
- 期权与期货有哪些不同?
- 一寸照纯红色底图片_红底证件照换成蓝色背景,边缘怎样处理,才能让照片更自然呢?...
- 解读正则化 LASSO回归 岭回归
- 独家 | PHM数据竞赛首个中国夺冠团队经验分享(常用模型赛题详解PPT视频)...
热门文章
- 读写分离,读写分离死锁解决方案,事务发布死锁解决方案,发布订阅死锁解决方案|事务(进程 ID *)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务...
- ORA-04091: table is mutating, trigger/function may not see it
- 服务器应用程序不可用您试图在此 Web 服务器上访问的 Web 应用程序当前不可用。请点击 Web 浏览器中的“刷...
- sql server 2008学习8 sql server存储和索引结构
- mybatis批量插入oracle报表达式,mybatis oracle两种方式批量插入数据
- B+Tree索引为什么可以支持千万级别数据量的查找——讲讲mysql索引的底层数据结构
- git 服务器+git linux客户端搭建测试2
- Swoole的TCP/IP HTTP WebSocket关系
- 华为p50预计售价鸿蒙是什么,华为P50pro预计售价多少 华为P50Pro参数配置
- 扬州大学广陵学院计算机网络试卷,扬州大学广陵学院控制工程考试样卷B.doc