标签:poj pat void 返回 tor tcl auth space log
1.首先应该明白,mybatis增删改返回值是int型的影响行数的值
mapper接口
package cn.xm.mapper; import java.util.List; import cn.xm.pojo.Questions; /** * 自定义的批量删除与批量增加试题 * @author liqiang * */ public interface QuestionsCustomMapper { /** * 批量导入试题 * @param list 需要倒入的试题集合 * @return * @throws Exception */ public int saveQuestionBatch()throws Exception; }
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"> <!-- namespace命名空间,作用就是对sql进行分类化管理,理解sql隔离 注意:使用mapper代理方法开发,namespace有特殊重要的作用 --> <mapper namespace="cn.xm.mapper.QuestionsCustomMapper"> <insert id="saveQuestionBatch"> INSERT INTO `exam`.`questions` VALUES (‘7‘, ‘1‘, ‘测试题目7‘, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "安全知识") </insert> </mapper>
测试代码:
package cn.xm.test.mybatis; import java.io.InputStream; import java.net.URL; import java.util.Date; 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 org.apache.tomcat.jdbc.pool.interceptor.SlowQueryReportJmxMBean; import org.junit.Before; import org.junit.Test; import cn.xm.mapper.EmployeeInMapper; import cn.xm.mapper.QuestionsCustomMapper; import cn.xm.pojo.EmployeeIn; import cn.xm.pojo.EmployeeInExample; public class MybatisTest2 { private SqlSessionFactory sqlSessionFactory; @Before public void setUp() throws Exception { // 将全局配置文件作为一个流 String resource = "sqlMapConfig.xml"; String realPath = this.getClass().getClassLoader().getResource("sqlMapConfig.xml").getPath(); InputStream inputStream = Resources.getResourceAsStream(resource); // 建立一个SqlSession工厂 sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } // 测试增加 @Test public void testAdd() throws Exception { SqlSession sqlSession = sqlSessionFactory.openSession(); QuestionsCustomMapper qsm = sqlSession.getMapper(QuestionsCustomMapper.class); int total = qsm.saveQuestionBatch(); System.out.println(total); sqlSession.commit(); sqlSession.close(); } }
结果:
2.批量增加
sql语句: insert into xxx values ("xx1",‘xxx1‘),("xx2","xxx2"),("xx3","xxx3")
mapper接口
/** * 批量导入试题 * @param list 需要倒入的试题集合 * @return 影响的行数 * @throws Exception */ public int saveQuestionBatch(List<Questions> list)throws Exception;
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"> <!-- namespace命名空间,作用就是对sql进行分类化管理,理解sql隔离 注意:使用mapper代理方法开发,namespace有特殊重要的作用 --> <mapper namespace="cn.xm.mapper.QuestionsCustomMapper"> <!-- INSERT INTO `exam`.`questions` VALUES (‘7‘, ‘1‘, ‘测试题目7‘, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "安全知识") --> <insert id="saveQuestionBatch" parameterType="java.util.List"> INSERT INTO `exam`.`questions` VALUES <foreach collection="list" item="question" separator=","> (#{question.questionid},#{question.questionbankid},#{question.question},#{question.questionwithtag},#{question.answer},#{question.analysis},#{question.type},#{question.level},#{question.employeeid},#{question.uploadtime},#{question.status},#{question.knowledgetype}) </foreach> </insert> </mapper>
测试代码:
package cn.xm.test.mybatis; import java.io.InputStream; import java.util.ArrayList; 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 org.junit.Before; import org.junit.Test; import cn.xm.bean.basebean.Questions; import cn.xm.mapper.QuestionsCustomMapper; public class MybatisTest2 { private SqlSessionFactory sqlSessionFactory; @Before public void setUp() throws Exception { // 将全局配置文件作为一个流 String resource = "sqlMapConfig.xml"; String realPath = this.getClass().getClassLoader().getResource("sqlMapConfig.xml").getPath(); InputStream inputStream = Resources.getResourceAsStream(resource); // 建立一个SqlSession工厂 sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } // 测试批量增加 @Test public void testBatchAdd() throws Exception { SqlSession sqlSession = sqlSessionFactory.openSession(); QuestionsCustomMapper qsm = sqlSession.getMapper(QuestionsCustomMapper.class); List<Questions> list = new ArrayList<>(); list.add(new Questions("8", "1", "测试题目8", "", "", "", "", "", "",null, "", "")); list.add(new Questions("9", "1", "测试题目8", "", "", "", "", "", "",null, "", "")); list.add(new Questions("10", "1", "测试题目8", "", "", "", "", "", "",null, "", "")); list.add(new Questions("11", "1", "测试题目8", "", "", "", "", "", "",null, "", "")); int total = qsm.saveQuestionBatch(list); System.out.println(total); sqlSession.commit(); sqlSession.close(); } }
3.批量删除
sql语句: DELETE FROM `exam`.`questions` WHERE `questionId` IN (‘10‘,‘11‘,‘8‘,‘9‘)
java接口:
/** * 批量删除 * @param ids id集合 * @return 删除条数 * @throws Exception */ public int deleteQuestionBatch(List<String> ids)throws Exception;
mapper.xml
<!-- 批量删除 --> <!-- DELETE FROM `exam`.`questions` WHERE `questionId` in (‘10‘,‘11‘,‘8‘,‘9‘) --> <delete id="deleteQuestionBatch" parameterType="java.util.List"> DELETE FROM `exam`.`questions` WHERE `questionId` in <foreach collection="list" item="id" separator="," open="(" close=")"> #{id} </foreach> </delete>
测试代码:
package cn.xm.test.mybatis; import java.io.InputStream; import java.util.ArrayList; 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 org.junit.Before; import org.junit.Test; import cn.xm.bean.basebean.Questions; import cn.xm.mapper.QuestionsCustomMapper; public class MybatisTest2 { private SqlSessionFactory sqlSessionFactory; @Before public void setUp() throws Exception { // 将全局配置文件作为一个流 String resource = "sqlMapConfig.xml"; String realPath = this.getClass().getClassLoader().getResource("sqlMapConfig.xml").getPath(); InputStream inputStream = Resources.getResourceAsStream(resource); // 建立一个SqlSession工厂 sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } // 测试批量删除 @Test public void testBatchDelete() throws Exception { SqlSession sqlSession = sqlSessionFactory.openSession(); QuestionsCustomMapper qsm = sqlSession.getMapper(QuestionsCustomMapper.class); List<String> ids = new ArrayList<>(); ids.add("8"); ids.add("9"); ids.add("10"); ids.add("11"); int total = qsm.deleteQuestionBatch(ids); System.out.println(total); sqlSession.commit(); sqlSession.close(); } }
标签:poj pat void 返回 tor tcl auth space log
原文地址:http://www.cnblogs.com/qlqwjy/p/7294478.html