SpringMVC整合Mybatis+Maven+Bootstrap的简单Demo
来源:互联网 发布:美林数据股份有限公司 编辑:程序博客网 时间:2024/04/30 19:29
按照上次的博客:
基于SpringMVC+Spring+Hibernate+Maven+Bootstrap的简单Demo
这次把Hibernate转换成Mybatis 3.4.1 基本变化在于数据操作层。
下面贴出代码变动的地方(没有贴出的跟上面一条博客相同,项目运行效果也是一致的),以及此次学习Mybatis用的参考文档.
Mybatis官方参考文档
Git源码地址
目录结构图 :
bean.xml :
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> <!-- 打开Spring的Annotation支持 --> <context:annotation-config /> <!-- 设定Spring 去哪些包中找Annotation --> <context:component-scan base-package="com.ctc" /> <!-- 导入Src目录下的jdbc.properties文件 --> <context:property-placeholder location="classpath:jdbc.properties" /> <bean id="DataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="DataSource" /> <property name="configLocation" value="classpath:sqlMapConfig.xml"/> </bean> <!-- 查找类路径下的映射器并自动将它们创建成 MapperFactoryBean. MapperFactoryBean 创建的代理类实现了 UserMapper 接口,并且注入到应用程序中. basePackage 属性是让你为映射器接口文件设置基本的包路径。 你可以使用分号或逗号 作为分隔符设置多于一个的包路径. --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.ctc.Mapper" /> </bean> <!-- 开启Spring的事务处理 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="DataSource" /> </bean> <tx:annotation-driven transaction-manager="transactionManager" /></beans>
web.xml:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <!-- 创建Spring的监听器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:bean.xml</param-value> </context-param> <servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>SpringMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- SpringMVC中使用request --> <listener> <listener-class> org.springframework.web.context.request.RequestContextListener </listener-class> </listener> <!-- 分页框架pager-taglib --> <filter> <filter-name>PageFilter</filter-name> <filter-class>com.ctc.Common.PageFilter</filter-class> </filter> <filter-mapping> <filter-name>PageFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></web-app>
sqlMapConfig.xml :
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <typeAliases> <typeAlias type="com.ctc.Model.User" alias="User" /> </typeAliases></configuration>
User.java :
package com.ctc.Model;/** * * @author Tency * * Date 2016/11 */public class User { private int id; private String userName; private String passWord; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassWord() { return passWord; } public void setPassWord(String passWord) { this.passWord = passWord; } @Override public String toString() { return "User [id=" + id + ", userName=" + userName + ", passWord=" + passWord + "]"; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + id; result = prime * result + ((passWord == null) ? 0 : passWord.hashCode()); result = prime * result + ((userName == null) ? 0 : userName.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; User other = (User) obj; if (id != other.id) return false; if (passWord == null) { if (other.passWord != null) return false; } else if (!passWord.equals(other.passWord)) return false; if (userName == null) { if (other.userName != null) return false; } else if (!userName.equals(other.userName)) return false; return true; }}
UserMapper.java :
package com.ctc.Mapper;import java.util.List;import java.util.Map;import org.mybatis.spring.annotation.MapperScan;import com.ctc.Model.User;/** * * @author Tency * * Date 2016/12 */@MapperScanpublic interface UserMapper { List<User> retrieve(String userName,String passWord); void add(User user); List<User> retrieveAll(Map<String,Object> map); int retrieveCount(); User load(int id); void update(User user); void delete(int id);}
UserMapper.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="com.ctc.Mapper.UserMapper"> <select id="retrieve" parameterType="map" resultType="User"> select * from User where userName=#{0} and passWord=#{1} </select> <select id="retrieveAll" parameterType="int" resultType="User"> select * from User limit #{offset},#{size} </select> <select id="retrieveCount" resultType="int"> select count(*) from User </select> <select id="load" parameterType="int" resultType="User"> select * from User where id=#{id} </select> <insert id="add" parameterType="User"> insert into User (userName,passWord) values (#{userName},#{passWord}) </insert> <update id="update" parameterType="User"> update User set userName=#{userName} , passWord=#{passWord} where id=#{id} </update> <delete id="delete" parameterType="int"> delete from User where id=#{id} </delete></mapper>
UserServiceImpl.java :
package com.ctc.ServiceImpl;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.annotation.Resource;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.apache.ibatis.annotations.Param;import org.springframework.stereotype.Service;import org.springframework.web.context.request.RequestContextHolder;import org.springframework.web.context.request.ServletRequestAttributes;import com.ctc.Mapper.UserMapper;import com.ctc.Model.PageConstants;import com.ctc.Model.Pager;import com.ctc.Model.User;import com.ctc.Service.UserService;/** * * @author Tency * * Date 2016/11 */@Service("userServiceImpl")public class UserServiceImpl implements UserService { @Resource private UserMapper userMapper; HttpSession session; HttpServletRequest request; @Override public List<User> checkLogin(@Param("userName")String userName, @Param("passWord")String passWord) { // TODO Auto-generated method stub List<User> list= userMapper.retrieve(userName, passWord); request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest(); session=request.getSession(); if(!list.isEmpty()) { session.setAttribute("userName", list.get(0).getUserName()); } return list; } @Override public void addUser(User user) { // TODO Auto-generated method stub this.userMapper.add(user); } @Override public User showUser(int id) { // TODO Auto-generated method stub return userMapper.load(id); } @Override public void updateUser(User user) { // TODO Auto-generated method stub this.userMapper.update(user); request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest(); session=request.getSession(); session.setAttribute("userName", user.getUserName()); } @Override public void deleteUser(int id) { // TODO Auto-generated method stub this.userMapper.delete(id); } @Override public Pager<User> userList() { // TODO Auto-generated method stub Map<String,Object> map = new HashMap<String,Object>(); Pager<User> pager = new Pager<User>(); int size = PageConstants.getSize(); int offset = PageConstants.getOffset(); map.put("size", size); map.put("offset", offset); pager.setDatas(userMapper.retrieveAll(map)); pager.setTotal(userMapper.retrieveCount()); return pager; }}
0 0
- SpringMVC整合Mybatis+Maven+Bootstrap的简单Demo
- MyBatis+Spring+Maven的简单整合Demo
- springmvc mybatis 整合 bootstrap maven shiro druid
- SSM springmvc mybatis 整合 bootstrap maven shiro
- 基于SpringMVC+Spring+Hibernate+Maven+Bootstrap的简单Demo
- springmvc+spring+mybatis整合demo(maven)
- Maven+SpringMVC+Mybatis整合入门Demo
- springMVC 与mybatis 整合 demo(maven 工程)
- springMVC 与mybatis 整合 demo(maven 工程)
- Intellij-IDEA-maven+springMVC+mybatis整合DEMO
- maven工程中Springmvc-Mybatis-Mysql的简单整合
- spring-springmvc-mybatis-maven整合的简单工程
- spring+mybatis+springMvc+maven简单整合
- maven springmvc shiro mybatis rest webservice bootstrap整合
- SSM springmvc mybatis 整合 bootstrap maven shiro druid ehcache SSM
- SSM springmvc mybatis 整合 bootstrap maven shiro druid ehcache SSM
- SSM springmvc mybatis 整合 bootstrap maven shiro druid
- 简单的SpringMVC+Mybatis整合
- Elasticsearch 2.3 (ELK)Geo_point绘图、日志Date时间获取实例
- 【MFC】 多国语言设置
- 关于js中用base64编码处理中文的问题
- 微信小程序 wx:key
- Android 开发中的坑
- SpringMVC整合Mybatis+Maven+Bootstrap的简单Demo
- 2017.1.13【初中部 GDKOI】模拟赛B组 天黑黑 题解
- oracle job 每分钟执行一次
- DOM4J解析xml
- TS---DMVPN 建立不通,第一步就是检查物理接口直接是否可以ping通,在检查其他的, 排错思路!!
- React-Native实战系列
- SqlServer2000中附加数据库的时候出现错误9003的解决
- Codecraft-17 and Codeforces Round #391 (Div. 1 + Div. 2, combined) -- B. Bash's Big Day (唯一分解定理)
- 奖券数目