springMVC+Mybatis
来源:互联网 发布:js email正则表达式 编辑:程序博客网 时间:2024/05/22 14:59
今天自己动手搭建了springMVC和Mybatis的框架,下面就简单的讲一下经过吧。
第一步、新建一个web项目。
第二步、导入 相应的jar包,以下是我用到的jar包
第三步、配置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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>springMVC+Mybatis</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- 加载spring容器配置 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 设置Spring容器加载配置文件路径 (主要配置都在这里面) --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> <!-- 配置Spring核心控制器 --> <servlet> <servlet-name>web</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 不指定 <init-param> 会自动找web.xml相同路径下 web-servlet.xml文件 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>web</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- 解决工程编码过滤器 --> <filter> <filter-name>characterEncodingFilter</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> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
第四步、在WEB-INF下面新建applicationContext.xml,配置如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <!-- properties配置文件 --> <bean id="config" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <!-- 是否忽略不可解析的 --> <property name="ignoreUnresolvablePlaceholders" value="true" /> <!-- 多个locations, 单个location <value> --> <property name="locations"> <list> <value>/WEB-INF/config.properties</value> </list> </property> </bean> <!-- 处理请求response返回值,如下配置能正确返回字符串型返回值,如返回值为对象,则自动转为json --> <bean id="handleAdapter" class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 --> <ref bean="mappingStringHttpMessageConverter" /> </list> </property> </bean> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" /> <bean id="mappingStringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter" /> <!-- 文件上传 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="UTF-8" /> <!-- 加载 其他xml文件 --> <import resource="/aC-common.xml" /></beans>
第五步:在WEB-INF下面新建spring-servlet.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:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <!-- 注册aop功能 --> <aop:aspectj-autoproxy/> <!-- 自动扫描com.springmvc目录及其子目录下面所有类文件,自动注入所有带注解的类 --> <context:component-scan base-package="com.springmvc.*" /> <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsps/" /> <property name="suffix" value=".jsp"></property> </bean> <!-- spring文件上传编码 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="utf-8" /></beans>
第六步:在WEB-INF下面新建aC-common.xml文件,配置如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <context:component-scan base-package="com.springmvc.*" /> <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${common.db.driver}" /> <property name="url" value="${common.db.url}" /> <property name="username" value="${common.db.username}" /> <property name="password" value="${common.db.password}" /> <!-- 最大连接数据库连接数 --> <property name="maxActive" value="500" /> <!-- 最大等待连接中的数量 0标识没有限制 --> <property name="maxIdle" value="10" /> <!-- 最大等待毫秒数 超时报错 --> <property name="maxWait" value="500" /> <property name="defaultAutoCommit" value="true" /> <!-- 是否自我中断 --> <property name="removeAbandoned" value="true" /> <property name="removeAbandonedTimeout" value="60" /> </bean> <bean id="mySessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" > <property name="dataSource"> <ref bean="myDataSource" /> </property> <!-- MyBatis 的 XML 配置文件路径 --> <property name="configLocation" value="/WEB-INF/mybatisSqlMapConfig.xml" /> <!-- 扫描自动生成的xml文件 --><!-- Mybatis XML映射文件 --> <property name="mapperLocations" > <list><!-- Mybatis XML映射文件 --> <value>WEB-INF/sqlMap/**/*.xml</value> </list> </property> </bean> <bean id="mySqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg index="0" ref="mySessionFactory"></constructor-arg> </bean> <!-- 注册单个 mybatisGenerator 自动生成的 接口文件--> <!-- <bean id="TestMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="com.weshare.common.generated.dao.TestMapper" /> <property name="sqlSessionTemplate" ref="weshareSqlSessionTemplate" ></property> </bean> --> <!-- 扫描mybatisGenerator 自动生成的 所有接口--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" > <property name="basePackage" value="com.springmvc.dao" ></property> </bean> <!-- 数据库事务策略--> <bean id="myTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource"> <ref bean="myDataSource" /> </property> </bean> <!-- 使用annotation定义事务 --> <tx:annotation-driven transaction-manager="myTransactionManager" /></beans>
第七步:在WEB-INF下面新建mybatisSqlMapConfig.xml文件,配置如下:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-config.dtd"><configuration> <settings> <!-- 全局映射器启用缓存 --> <setting name="cacheEnabled" value="true" /> <!-- 查询时,关闭关联对象即时加载以提高性能 --> <setting name="lazyLoadingEnabled" value="true" /> <!-- 设置关联对象加载的形态,此处为按需加载字段(加载字段由SQL指 定),不会加载关联表的所有字段,以提高性能 --> <setting name="aggressiveLazyLoading" value="false" /> <!-- 对于未知的SQL查询,允许返回不同的结果集以达到通用的效果 --> <setting name="multipleResultSetsEnabled" value="true" /> <!-- 允许使用列标签代替列名 --> <setting name="useColumnLabel" value="true" /> <!-- 允许使用自定义的主键值(比如由程序生成的UUID 32位编码作为键值),数据表的PK生成策略将被覆盖 --> <setting name="useGeneratedKeys" value="true" /> <!-- 给予被嵌套的resultMap以字段-属性的映射支持 --> <setting name="autoMappingBehavior" value="FULL" /> <!--如果是空显示字段 单不显示值 --> <!-- <setting name="callSettersOnNulls" value="true" /> --> <!-- 对于批量更新操作缓存SQL以提高性能 --> <setting name="defaultExecutorType" value="REUSE" /> <!-- 数据库超过25000秒仍未响应则超时 --> <setting name="defaultStatementTimeout" value="25000" /> </settings></configuration>
配置已经弄完了,然后就下面写一个简单的demo,查询一个用户的信息
1、首先是Action
@Controller@RequestMapping("/user")public class UserAction { @Autowired private IUserService userService; @RequestMapping("/getUserById") @ResponseBody public void getUserById(HttpServletRequest request , HttpServletResponse response) throws IOException{ String id = request.getParameter("id"); User user = userService.getUserById(Integer.valueOf(id)); response.getWriter().println(JSONObject.fromObject(user).toString()); }}
2、service接口和实现类
public interface IUserService { User getUserById(Integer valueOf);}@Servicepublic class UserService implements IUserService{ @Autowired protected UserDao userDao; @Override public User getUserById(Integer id) { return userDao.selectUserById(id); }}
3、dao接口
public interface UserDao extends IBaseDao<User>{ public User selectUserById(@Param(value="id")Integer id);}
4、Mapper配置文件,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.springmvc.dao.user.UserDao"> <select id="selectUserById" resultType="com.springmvc.entity.User"> select id, mobile from t_user where id = #{id} </select></mapper>
这样子一个项目就搭建完成了,然后我们把项目部署到tomcat中,启动,在浏览器中输入
http://localhost:8080/springMVC_Mybatis/user/getUserById?id=17
输出:{“callbacks”:[{}],”id”:17,”mobile”:”15867187387”}。
最后附上一张我的项目文件截图:
1 0
- mybatis,springmvc
- springMVC +MyBatis
- springmvc+mybatis
- Springmvc+mybatis
- mybatis+springMvc
- springMVC+Mybatis
- SpringMVC+MyBatis
- springmvc+mybatis
- springMVC+mybatis
- springmvc+mybatis
- SpringMVC+MyBatis
- springmvc+mybatis
- springmvc+mybatis整合springmvc
- SpringMVC: 重拾springMVC+mybatis
- SpringMVC Mybatis学习资料
- spring+springmvc+mybatis+maven
- SpringMVC+mybatis+DWR3注解
- springMVC+mybatis配置详解
- c语言问题:输入输出数据的问题、if语句的一些问题
- 和我一起学 Selenium WebDriver(6)——基础篇
- JSONModel解析数据成Model 转载
- c++ lambda捕获列表
- 和我一起学 Selenium WebDriver(7)——基础篇
- springMVC+Mybatis
- Temporal anti-aliasing
- IOS开发类似游戏血条 的progressView
- 如何使KVM虚拟机的CPU和物理CPU一模一样?
- 数据挖掘核心技术揭秘——互动出版网
- while continue 更新文件
- 文章标题
- genymotion集成eclipse插件安装教程
- ubuntu第三方源导致软件无法安装的问题