SpringMVC+Mybatis集成记录
来源:互联网 发布:手机如何清除数据 编辑:程序博客网 时间:2024/06/05 03:11
想把自己网站从SpringMVC的数据持久层从SpringMVC自带的jdbctemplate()转为Mybatis,但担心会把项目搞炸,到时麻烦,还是先做个demo,不然哭都没地儿去。
而且最近时间,一方面签三方时填资料发现字都不会写了,另一方面最近帮大佬写测试文档时语言表达都僵硬起来,趁现在没项目时间多好好写写Blog。
先demo再问题
项目结构mybatis麻烦点的就是需要配置一些东西,其他都和其他持久层框架一样
文件路径需要注意一下,个人习惯将除web.xml文件,其他xml文件放在config文件夹中
当在web.xml中路径用到其他文件时
1:如果同在WEB-INF下且没又其他package,可以直接使用,最不济加上/WEB-INF/xxx.xml,这个没试过
2:如果其他文件在WEB-INF新建的文件夹中,路径就要使用/WEB-INF/xxx(package)/xxx.xml
3:如果放在src/main/java下,路径需要classpath:xxx(package)/xxx.xml
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <!-- Spring配置 --> <!-- 配置Spring配置文件路径,好让ContextLoaderListener对其加载与解析--> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/config/applicationContext.xml</param-value> </context-param> <!-- 配置Spring上下文监听器,它的作用就是在启动WEB容器时,就会自动装在我们applicationContext.xml配置--> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 配置Spring字符编码过滤器 --> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- Spring MVC 核心控制器 DispatcherServlet 配置 --> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <!-- 用于标明spring-mvc.xml配置的位置,我是存放在config文件夹下 --> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/config/dispatcher-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <!-- 拦截所有/的请求,交给DispatcherServlet处理,性能最好 --> <url-pattern>/</url-pattern> </servlet-mapping> <!--用于设定默认首页--> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>dispatcher-servlet.xml MVC配置
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> <!--扫描控制器,当配置了它后,Spring会自动的到com.damionew.controller 下扫描带有@controller @service @component等注解等类,将他们自动实例化--> <context:component-scan base-package="com.damionew.controller" /> <!--<mvc:annotation-driven /> 会自动注册DefaultAnnotationHandlerMapping与 AnnotationMethodHandlerAdapter 两个bean,它解决了一些@controllerz注解使用时的提前配置--> <context:annotation-config /> <mvc:annotation-driven /> <mvc:resources mapping="/jsp/**" location="/WEB-INF/jsp/" /> <!--配置 页面控制器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp" /> </bean></beans>applicationContext.xml Spring配置,DataSource
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> <!-- 扫描文件(自动将service层注入)--> <context:component-scan base-package="com.damionew.service"/> <!--配置数据源--> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="com.mysql.jdbc.Driver"/> <property name="jdbcUrl" value="jdbc:mysql://123.206.113.157:3307/ftn"/> <property name="user" value="root"/> <property name="password" value=""/> <!--连接池中保存的最大连接数目--> <property name="maxPoolSize" value="20"/> <!--连接池中保存的最少连接数目--> <property name="minPoolSize" value="2"/> <!-- 初始化连接大小 --> <property name="initialPoolSize" value="2"/> <!-- 获取连接最大等待时间 --> <property name="maxConnectionAge" value="6000"/> <!-- 连接池最大空闲 --> <property name="maxIdleTime" value="60"/> </bean> <!--配置sqlSessionFactory 并将数据源注入--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!--注入数据源--> <property name="dataSource" ref="dataSource"/> <!--指定要使用到到mybatis配置文件--> <property name="configLocation" value="/WEB-INF/config/config.xml"/> <!--用于配置mapper映射xml--> <property name="mapperLocations" value="classpath*:com/damionew/mapper/*.xml"/> </bean> <!-- 创建数据映射器--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.damionew.dao"/> </bean> <!-- 对数据源进行事务管理 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> </beans>唉 URL直接暴露吧,反正也没什么东西
config.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> <!--为com.damionew.model.User设置别名 User 方便调用--> <typeAliases> <typeAlias alias="User" type="com.damionew.model.User"/> </typeAliases></configuration>忘记了最重要的pom.xml
如果报class not found,那怕是少了依赖了,反正在配置文件中,也不会红×提醒
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring.version>4.3.0.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.1</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> </dependency> <!-- 添加Spring-core包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.1.4.RELEASE</version> </dependency> <!-- 添加spring-context包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.1.4.RELEASE</version> </dependency> <!-- 添加spring-tx包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>4.1.4.RELEASE</version> </dependency> <!-- 添加spring-jdbc包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.1.4.RELEASE</version> </dependency> <!-- 为了方便进行单元测试,添加spring-test包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.1.4.RELEASE</version> </dependency> <!--添加spring-web包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.1.4.RELEASE</version> </dependency> <!-- 添加spring-webmvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.1.4.RELEASE</version> </dependency> <!--添加aspectjweaver包 --> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.5</version> </dependency> <!-- 添加mybatis与Spring整合的核心包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.0</version> </dependency> <!-- JSTL --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- jackson --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.5.2</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.5.2</version> </dependency> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5-pre8</version> </dependency> </dependencies>
深知代码不全给别人看得时候回带来多少烦恼,自己以为的,并不是别人认为的
controller->UserController@Autowired自动装配,就不用在配置文件中再配置Bean
package com.damionew.controller;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import com.damionew.model.User;import com.damionew.service.UserService;@Controller@RequestMapping("/user")public class UserController {@Autowiredprivate UserService userService;public UserService getUserService() {return userService;}public void setUserService(UserService userService) {this.userService = userService;}@RequestMapping("/Info")public String userInfo(Model model) {List<User> list = userService.getUserInfo();System.out.println(list.get(0).getUsername());System.out.println(list.get(0).getUserpass());String username = list.get(0).getUsername();model.addAttribute("username", username);return "userInfo";}}dao->UserDao
package com.damionew.dao;import java.util.List;import com.damionew.model.User;public interface UserDao {public List<User> selectUser();}mapper->UserDao.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"> <!--namespace用于与DAO层的接口类进行绑定,这样我们无需实现DAO层的接口 类,其接口类就能够自动的找到相关的SQL语句进行绑定实现--><mapper namespace="com.damionew.dao.UserDao"> <!--select表示查询,它的id名称必须与DAO层接口的方法名相同,否则无法绑定--> <select id="selectUser" parameterType="string" resultType="User"> select * from user </select></mapper>
model->User
package com.damionew.model;public class User {private int id;private String username;private String userpass;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 getUserpass() {return userpass;}public void setUserpass(String userpass) {this.userpass = userpass;}}service->impl->UserServiceImpl
package com.damionew.service.impl;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.damionew.dao.UserDao;import com.damionew.model.User;import com.damionew.service.UserService;@Service("UserService")public class UserServiceImpl implements UserService {@AutowiredUserDao mapper;public List<User> getUserInfo() {List<User> userList= mapper.selectUser();return userList;}}service->UserService 接口
package com.damionew.service;import java.util.List;import com.damionew.model.User;public interface UserService {public List<User> getUserInfo();}
因为想要把原来做的项目转为Mybatis,所以java代码部分写很多了,注释很少,配置多些,亦为自己以后快捷使用
已经放在码云上https://gitee.com/Damionew/MMVC,如果需要自取。git地址:直接在eclipse中Import git 项目:https://gitee.com/Damionew/MMVC.git
- SpringMVC+Mybatis集成记录
- SpringMVC与Mybatis集成
- mybatis与SpringMVC集成
- springmvc+maven+mybatis集成
- SpringMVC MyBatis 集成 HelloWorld
- springmvc集成mybatis
- springMVC+spring+Mybatis集成
- springmvc mybatis集成
- Springmvc-MyBatis集成
- mybatis集成spring,springmvc
- 集成springmvc spirng mybatis
- springmvc+mybatis集成redis
- SpringMvc 和mybatis的集成
- SpringMvc+Spring+Mybatis 环境集成
- springmvc集成mybatis(超详细)
- springmvc+mybatis集成配置
- IDEA SpringMVC集成mybatis教程
- dubbo+springmvc+mybatis集成demo
- git管理gitee从入门
- 小白学数据结构——一、线性结构(栈和队列)
- php结合redis实现高并发下的抢购、秒杀功能
- PTA-地下迷宫探索(DFS,水题)
- 信息学奥赛一本通(C++版) 第二部分 基础算法 第五章 搜索与回溯算法
- SpringMVC+Mybatis集成记录
- SVG在iFrame下自适应完美解决跨域问题
- 插入排序和希尔排序
- File
- Android 5.0屏幕录制漏洞(CVE-2015-3878)威胁预警
- 【linux小白学习之路】ubuntu安装有道词典
- 创建spring mvc 项目
- 编程的学法
- 设计模式(4)-适配器(Adapter)模式