SpringMvc4+Mybatis整合
2015-12-12 09:34
260 查看
1.修改applicationContext.xml添加Spring对Mybatis的支持。参考官方文档的介绍:mybatis-spring。实现后的的applicationContext.xml文件如下:
配置文件作用见注释
2.在WEB-INF路径下创建jdbc.properties配置文件,修改成为本地配置即可,配置文件内容如下:
jdbc.properties
3.创建测试代码,目录结构如图:
TestController:
UserMapper.java:
UserMapper.xml:
UserService.java:
User.java:
数据库User表结构如图:
建表sql:
部署运行项目,数据库新添加了一条信息。
<?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:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/> <bean class="org.springframework.http.converter.ResourceHttpMessageConverter"/> <!-- 系统基础配置 将占位符替换到指定的配置文件中 --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <!-- 忽略占位符异常 --> <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/> <!-- 在解析一个占位符的时候,会先用系统属性来尝试,然后才会用指定的属性文件--> <property name="ignoreResourceNotFound" value="true"/> <property name="locations"> <list> <!-- 标准配置 --> <value>/WEB-INF/jdbc.properties </value> </list> </property> </bean> <!-- 数据源配置,使用应用内的DBCP数据库连接池,已经包含在Spring中 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <!-- 数据库连接 --> <property name="driverClassName" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <property name="maxIdle" value="${dbcp.maxIdle}"/> <property name="maxActive" value="${dbcp.maxActive}"/> <property name="defaultAutoCommit" value="true" /> <property name="timeBetweenEvictionRunsMillis" value="3600000"/> <property name="minEvictableIdleTimeMillis" value="3600000"/> </bean> <!-- 配置jdbcTemplate --></span> <span class="hljs-tag" style="color: rgb(0, 102, 102); box-sizing: border-box;"> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <constructor-arg ref="dataSource"/> </bean> <!-- 配置事务管理器 --> <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!-- MyBatis配置 --> <!-- 创建Factory Bean --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- sessionFactory的必须属性JDBC DataSource --> <property name="dataSource" ref="dataSource"/> <!-- 仅当一些特殊环境中data sources 和 MyBatis transaction managers被忽略时,才需要这个配置 或者当mapper XML文件作为作为mapper classes时不在classpath路径下myBatis设置、Mpapper位置<property name="configLocation" value="classpath:/mapper/mybatis-config.xml" /> --> <!-- 该属性指定mybatis xml映射文件的位置 --> <property name="mapperLocations" value="classpath*:/mapper/*mapper.xml"/> </bean> <!-- mapper接口自动扫描注入 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.zzq"/> </bean> <!-- 以静态变量保存ApplicationContext --> <!-- bean class="com.xingyun.juju.core.SpringContextHolder" lazy-init="false" /--> <!-- 文件上传 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="10000000"/> </bean> <context:component-scan base-package="com.zzq.*"/> </beans>
配置文件作用见注释
2.在WEB-INF路径下创建jdbc.properties配置文件,修改成为本地配置即可,配置文件内容如下:
jdbc.properties
## MySQL jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc\:mysql\://127.0.0.1\:3306/zzq_test?useUnicode\=true&characterEncoding\=UTF-8 jdbc.username=root jdbc.password=root dbcp.maxIdle=5 dbcp.maxActive=40
3.创建测试代码,目录结构如图:
TestController:
package com.zzq.controller; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bindannotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.ModelAndView; import com.zzq.model.User; import com.zzq.service.UserService; @RestController @RequestMapping(value = "/api_cat") public class TestController { @Autowired private UserService userService; @RequestMapping(value = "/add") public ModelAndView save(@ModelAttribute User user,HttpServletRequest request, HttpServletResponse response) { userService.addUser(user); return new ModelAndView("test", "apiver", null); } }
UserMapper.java:
package com.zzq.mapper; import com.zzq.model.User; public interface UserMapper { int addUser(User bean); }
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.zzq.mapper.UserMapper"> <!-- 插入api类型 --> <insert id="addUser" parameterType="com.zzq.model.User" useGeneratedKeys="true" keyProperty="id"> INSERT INTO user (id,name) VALUES (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}) </insert> </mapper>
UserService.java:
package com.zzq.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.zzq.mapper.UserMapper; import com.zzq.model.User; @Service("userService") public class UserService { @Autowired private UserMapper userMapper; public int addUser(User bean){ return userMapper.addUser(bean); } }
User.java:
package com.zzq.model; import java.io.Serializable; public classUser implements Serializable{ private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
数据库User表结构如图:
建表sql:
CREATE TABLE`user`( `id`int11) NOT NULL, `name`varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
部署运行项目,数据库新添加了一条信息。
相关文章推荐
- [java]1、Long对象与long基本类型
- java日志——修改日志管理器配置+日志本地化
- java之内置的进制转换函数
- JAVA的静态方法,静态变量,静态类。
- java中的静态方法
- 潜水 java类加载器ClassLoader
- 如何查看Java库的源码
- java 静态方法和实例方法的区别
- springmvc + excel代
- java JTable中动态添加、增加一行数据
- 如何用eclipse打jar包
- 如何在eclipse中部署solr的web工程?
- Solr源码导入eclipse报错
- Java 位运算(移位、位与、或、异或、非)
- Java获取系统时间少8个小时
- 【转载】Eclipse智能提示及快捷键
- java基础第六天——继承以及抽象类相关的知识
- SpringMVC中视图解析器的优先级
- SpringMVC Controller 介绍
- 正则表达式-常用构造子列表