mysql + SpringMVC + MyBatis中批量插入实例以及@Param注解的用法

时间:2023-01-29 17:58:48

1.使用到的jar包如下:

mybatis-3.2.2.jar、mybatis-spring-1.2.2.jar、mysql-connector-java-5.1.32.jar

2.Spring配置文件

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="myDataSource" />

<!-- <property name="configLocation" value=""/> -->
<!--
该属性用来指定MyBatis的XML配置文件路径,跟Spring整合时,编写MyBatis映射文件的目的无非是配置一下typeAlias、setting之类的
元素。不用在其中指定数据源,或者事务处理方式。就算配置了也会被忽略。因为这些都是使用Spring中的配置
。当然如果你不打算添加 typeAlias 之类的设置的话,你连MyBatis的配置文件都不用写,更不用配置这个属性了
-->
<!--<property name="mapperLocations" value="src/UserMapper.xml"/>-->
<!-- 该配置文件用来指定Mapper映射文件的位置 ,如果映射文件与相应的接口同名,且在同一路径下,那么可以不配置该选项-->
</bean>

<!--注册Mapper方式一

<bean id="userMapper"class="org.mybatis.spring.mapper.MapperFactoryBean">
<propertyname="mapperInterface"value="org.hyn.maper.UserMapper"/>
<propertyname="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>-->

<!-- 注册Mapper方式二:也可不指定特定mapper,而使用自动扫描包的方式来注册各种Mapper ,配置如下:-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.xxxx.xxx.mapper" />
</bean>
</pre><pre>
3.mapper.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="org.hyn.maper.UserMapper">
<!-- 批量插入user表中 -->
<insert id="insertUser">
insert into user(name,age,createTime,createBy,modifyTime,modifyBy)
values
<foreach collection="list" item="item" index="index" separator=",">
( #{item.name},#{item.age},#{item.createTime},#{item.createBy},#{item.modifyTime},#{item.modifyBy} )
</foreach>
</insert>

<!-- 当使用该Mybatis与Spring整合的时候,该文件必须和相应的Mapper接口文件同名 -->
</mapper>

4.Mapper接口 (方法名要与映射文件的id一致)

package com.xxxx.xxx.mapper;

@MapperScan
public interface XxxxMapper{
public void insertUser(@Param("list")List<User> userList);
}

5.java Service层调用

  1. @Service("userService")  
  2. public class userService implements UserService {  
  3.     @Autowired  
  4.     private XxxxMapper xxxxMapper;  
  5.     
  6.     public void addUsers(List<User> users) throws Excetion{
  7.        xxxxMapper.insertUser(users);
  8.     }     
  9. }