mybatis-简单批量插入

1.工程结构 

1.1 c.java

1.2Tb1Mapper.java

1.3 Tb1Mapper.xml

1.4 mybatis.cfg.xml

2具体代码

2.1 c.java

//package tb1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.util.*;
//import Tb1Mapper;

//import tb1.Tb1Mapper;

public class c{
    private static SqlSessionFactory sqlSessionFactory;
    public static void main(String[] args) {
        System.out.println("Hello World");
	String resource = "mybatis.cfg.xml";
        //得到配置文件流
        InputStream inputStream = null;
        try{
            inputStream = Resources.getResourceAsStream(resource);
        }catch(IOException ie){
            ie.printStackTrace();
        }
        // 创建会话工厂,传入 MyBatis 的配置文件信息
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //insert();
	inserts();
	selectCount();
    }
    private static void selectCount() {

        SqlSession session = sqlSessionFactory.openSession();

        Tb1Mapper mapper = session.getMapper(Tb1Mapper.class);
        try {
            int count = mapper.selectCount();
            session.commit();
            System.out.println("count:"+count);
        } catch (Exception e) {
            e.printStackTrace();
            session.rollback();
        }

        session.close();
    }
    private static void insert(){
	HashMap<String, String> map = new HashMap<String,String>();
        map.put("id", "3");
        map.put("v1", "13");
        SqlSession session = sqlSessionFactory.openSession();
	Tb1Mapper mapper = session.getMapper(Tb1Mapper.class);
        try {
            mapper.insert(map);
            session.commit();
        } catch (Exception e) {
            e.printStackTrace();
            session.rollback();
        }

        // 释放资源
        session.close();
	
    }
    private static void inserts(){
        List<Tb1> tb1List = new ArrayList<Tb1>();
	Tb1 tb1 = new Tb1();
        tb1.setId(5);
	tb1.setV1(15);
        tb1List.add(tb1);
	Tb1 tb2 = new Tb1();
	tb2.setId(6);
	tb2.setV1(16);
	tb1List.add(tb2);

        SqlSession session = sqlSessionFactory.openSession();
	Tb1Mapper mapper = session.getMapper(Tb1Mapper.class);
        try {
            mapper.inserts(tb1List);
            session.commit();
        } catch (Exception e) {
            e.printStackTrace();
            session.rollback();
        }

        // 释放资源
        session.close();
	
    }

    
}
class Tb1 {
    private Integer id;
    private Integer v1;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getV1() {
        return v1;
    }
    public void setV1(Integer v1) {
        this.id = v1;
    }
}

2. 2 TbMapper.java

import java.util.*;
public interface Tb1Mapper {
    public int selectCount() throws Exception;
    public void insert(HashMap map) throws Exception;
    public void inserts(List<Tb1> list) throws Exception;
}

2.3. TbMapper.xml

<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="Tb1Mapper">
    <select id="selectCount"  resultType="int">
        select count(id) from tb1
    </select>
    <select id="insert"  parameterType="hashmap">
        insert into tb1(id,v1) values(#{id},#{v1})
    </select>
    <select id="inserts"  parameterType="list">
        insert into tb1(id,v1) values
	<foreach item="item" collection="list" separator=","  index="">
	    (#{item.id},#{item.v1})
    	</foreach>
    </select>
</mapper>

2.4.mybatis.cfg.xml 

<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
    <!-- 指定一个包名起别名,将包内的 Java 类的类名作为类的类别名 -->
    <package name="com.zoey.mybatis.model" />
</typeAliases>
    <!-- 配置mybatis运行环境 -->
    <environments default="development">
        <environment id="development">
           <!-- type="JDBC" 代表直接使用 JDBC 的提交和回滚设置 -->
            <transactionManager type="JDBC" />

            <!-- POOLED 表示支持JDBC数据源连接池 -->
            <!-- 数据库连接池,由 Mybatis 管理,数据库名是 mybatis,MySQL 用户名 root,密码为空 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/db1?serverTimezone=UTC" />
                <property name="username" value="root" />
                <property name="password" value="123" />
            </dataSource>
        </environment>        
    </environments>    
    <mappers>
        <mapper resource="Tb1Mapper.xml"/>
    </mappers>
</configuration>

3 运行效果

4 附录

4.1 关于mybatis的foreach用法

对于批量插入一般使用 inset into tb1(id,v1) values(1,11),(2,12),(3,13),我这里想用一个最简单方法,用list<map>作为入参类型,结果没有成功,具体原因参考如下的链接说明,我这里做此记录是为了说明,用foreach传入list<map>的方法是行不通的,只能用list<具体类型>。

https://www.cnblogs.com/fnlingnzb-learner/p/10566452.html

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值