您的位置:首页 > 编程语言 > Java开发

SpringMvc4+Mybatis整合

2015-12-12 09:34 260 查看
1.修改applicationContext.xml添加Spring对Mybatis的支持。参考官方文档的介绍:mybatis-spring。实现后的的applicationContext.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: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;


部署运行项目,数据库新添加了一条信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: