spring框架下如何配置ExecutorType?

spring框架下如何配置ExecutorType?

本次作业用到批量新增,那在spring下如何配置ExecutorType的批处理属性呢?

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学,你好!尝试对配置文件做了一些修改,还是区分大小写的,如下所示id中的P大写了,下面用的时候p小写,就识别不出来了。其他内容也改了一下,比如expression改为Expression就变为红色了。

http://img1.sycdn.imooc.com//climg/5e5c7234094e37c413120228.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 慕沐8221787 提问者 #1
    好的,谢谢啦!
    2020-03-02 10:53:56
好帮手慕阿莹 2020-02-29 19:04:11

同学你好

http://img1.sycdn.imooc.com//climg/5e5a3fb10940648208980384.jpg

<bean id="sessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
   <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg>
   <constructor-arg name="executorType" value="BATCH"></constructor-arg>
</bean>

在你的配置文件中添加这个配置就可以了,id 是可以自定义的,ref="sqlSessionFactory"要和你的

sqlSessionFactory的名称对应。

2、

使用的时候还是正常使用即可,例如

<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.imooc.dao.UsersMapper">
    <insert id="addUsers" parameterType="Users">
        INSERT INTO Users(username, password) values (#{userName},#{passWord})
    </insert>
</mapper>

使用的时候

使用for循环调用对于的方法就是批量添加哦。

不过这个在spring中用的并不多。

3、本作业其实不用这个配置,同学可以写一个book的数组 

因为这个地方有五个字段,所以我们循环5次就new一个新的book,然后把它添加到数组中。最后往数据库中添加的时候,可以遍历一下这个数组,循环都添加一下就可以了:例如:

 List<Book> books = new ArrayList<Book>();
        Book book = new Book();
        int count = 0;
        for (FileItem item : items) {
            if (item.isFormField()) {
                if (item.getFieldName().equals("name")) {
                    book.setName(item.getString("UTF-8"));
                }
                if (item.getFieldName().equals("categoryId")) {
                    book.setCategoryId(Integer.parseInt(item.getString("UTF-8")));
                }
                if (item.getFieldName().equals("level")) {
                    book.setLevel(Integer.parseInt(item.getString("UTF-8")));
                }
                if (item.getFieldName().equals("price")) {
                    book.setPrice(Integer.parseInt(item.getString("UTF-8")));
                }
            } else {
                if (item.getFieldName().equals("smallImg")) {
                    if (item.getSize() < 100) {
                        continue;
                    }
                    String rootPath = request.getServletContext().getRealPath("/");
                    String path = item.getName();
                    String type = ".jpg";
                    if (path.indexOf(".") != -1) {
                        type = path.substring(path.lastIndexOf("."));
                    }
                    String uuid = UUID.randomUUID().toString();
                    path = "/download/images/" + uuid + type;
                    try {
                        item.write(new File(rootPath + path));
                        book.setImgPath(path);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }

                      if (count % 5 == 0) {
                          books.add(book);
                        book = new Book();
                         }

                    count++;

        }
       

如果我的回答解决了你的问题,请采纳,祝学习愉快.


  • 提问者 慕沐8221787 #1
    我现在代码就是用的book数组,5个参数循环一次的,但是前面的教程不是讲使用ExecutorType运行效率更高吗,所以考虑使用ExecutorType。那基于spring的批量业务,现在效率最高的是哪种形式呢?
    2020-02-29 21:43:57
  • 好帮手慕珊 回复 提问者 慕沐8221787 #2
    同学,你好!将ExecutorType设置为BATCH这种方式确实效率高,不过这种方式要到插入数据的量级达到十万或者百万级这样的数据量时,时间上的优势才能体现出来,在实际开发中如果有这种需求可以使用BATCH。如果数据量没有那么大,使用其他方式完成也是可以的。祝学习愉快!
    2020-03-01 10:25:22
  • 提问者 慕沐8221787 #3
    那基于Spring框架需要在Spring配置文件中配置ExecutorType的batch属性,这个batch一定要大写吗?另外,一旦配置了,是不是整个项目都要用这种方式来处理批量业务,前面课程讲基于Mybatis框架可以按session不同可以选择各自的批处理方式?
    2020-03-01 10:55:37
好帮手慕阿莹 2020-02-29 16:52:21

同学你好,

同学可以参考一下这个问答中同学的使用方式哦:

https://class.imooc.com/course/qadetail/97198  

如果还是没有解决,可以再次提问。

如果我的回答解决了你的问题,请采纳,祝学习愉快.

  • 提问者 慕沐8221787 #1
    没看懂,请详细解释一下。另外,及时在spring配置文件中配置好了,在编写程序代码又如何使用这个配置呢?
    2020-02-29 17:58:32
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
SSM主流框架入门与综合项目实战2018版
  • 参与学习           人
  • 提交作业       205    份
  • 解答问题       4317    个

Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师