当前位置: 首页 > news >正文

做淘宝设计能做网站吗正规引流推广公司

做淘宝设计能做网站吗,正规引流推广公司,个性手绘个人网站模板下载,wordpress 视频主题文章目录 Mybatis如何执行批量操作使用foreach标签 使用ExecutorType.BATCH如何获取生成的主键 Mybatis如何执行批量操作 使用foreach标签 foreach的主要用在构建in条件中#xff0c;它可以在SQL语句中进行迭代一个集合。foreach标签的属性主要有item#xff0c;index… 文章目录 Mybatis如何执行批量操作使用foreach标签 使用ExecutorType.BATCH如何获取生成的主键 Mybatis如何执行批量操作 使用foreach标签 foreach的主要用在构建in条件中它可以在SQL语句中进行迭代一个集合。foreach标签的属性主要有itemindexcollectionopenseparatorclose。 item  表示集合中每一个元素进行迭代时的别名随便起的变量名 index  指定一个名字用于表示在迭代过程中每次迭代到的位置不常用 open  表示该语句以什么开始常用“(” separator表示在每次进行迭代之间以什么符号作为分隔符常用“,” close 表示以什么结束常用“)”。 在使用foreach的时候最关键的也是最容易出错的就是collection属性该属性是必须指定的但是在不同情况下该属性的值是不一样的主要有一下3种情况 如果传入的是单参数且参数类型是一个List的时候collection属性值为list如果传入的是单参数且参数类型是一个array数组的时候collection的属性值为array如果传入的参数是多个的时候我们就需要把它们封装成一个Map了当然单参数也可以封装成map实际上如果你在传入参数的时候在MyBatis里面也是会把它封装成一个Map的map的key就是参数名所以这个时候collection属性值就是传入的List或array对象在自己封装的map里面的key 具体用法如下 !-- 批量保存(foreach插入多条数据两种方法)int addEmpsBatch(Param(emps) ListEmployee emps); -- !-- MySQL下批量保存可以foreach遍历 mysql支持values(),(),()语法 -- //推荐使用 insert idaddEmpsBatchINSERT INTO emp(ename,gender,email,did)VALUESforeach collectionemps itememp separator,(#{emp.eName},#{emp.gender},#{emp.email},#{emp.dept.id})/foreach /insert !-- 这种方式需要数据库连接属性allowMutiQueriestrue的支持如jdbc.urljdbc:mysql://localhost:3306/mybatis?allowMultiQueriestrue -- insert idaddEmpsBatchforeach collectionemps itememp separator; INSERT INTO emp(ename,gender,email,did)VALUES(#{emp.eName},#{emp.gender},#{emp.email},#{emp.dept.id})/foreach /insert 使用ExecutorType.BATCH Mybatis内置的ExecutorType有3种默认为simple,该模式下它为每个语句的执行创建一个新的预处理语句单条提交sql而batch模式重复使用已经预处理的语句并且批量执行所有更新语句显然batch性能将更优 但batch模式也有自己的问题比如在Insert操作时在事务没有提交之前是没有办法获取到自增的id这在某型情形下是不符合业务要求的 具体用法如下 //批量保存方法测试 Test public void testBatch() throws IOException{SqlSessionFactory sqlSessionFactory getSqlSessionFactory();//可以执行批量操作的sqlSessionSqlSession openSession sqlSessionFactory.openSession(ExecutorType.BATCH);//批量保存执行前时间long start System.currentTimeMillis();try {EmployeeMapper mapper openSession.getMapper(EmployeeMapper.class);for (int i 0; i 1000; i) {mapper.addEmp(new Employee(UUID.randomUUID().toString().substring(0, 5), b, 1));}openSession.commit();long end System.currentTimeMillis();//批量保存执行后的时间System.out.println(执行时长 (end - start));//批量 预编译sql一次》设置参数》10000次》执行1次 677//非批量 预编译设置参数执行 》10000次 1121} finally {openSession.close();} } mapper和mapper.xml如下 public interface EmployeeMapper { //批量保存员工Long addEmp(Employee employee); }mapper namespacecom.jourwon.mapper.EmployeeMapper!--批量保存员工 --insert idaddEmpinsert into employee(lastName,email,gender)values(#{lastName},#{email},#{gender})/insert /mapper如何获取生成的主键 对于支持主键自增的数据库MySQL insert idinsertUser useGeneratedKeystrue keyPropertyuserId insert into user( user_name, user_password, create_time) values(#{userName}, #{userPassword} , #{createTime, jdbcType TIMESTAMP}) /insertparameterType 可以不写Mybatis可以推断出传入的数据类型。如果想要访问主键那么应当parameterType 应当是java实体或者Map。这样数据在插入之后 可以通过ava实体或者Map 来获取主键值。通过 getUserId获取主键 不支持主键自增的数据库Oracle 对于像Oracle这样的数据没有提供主键自增的功能而是使用序列的方式获取自增主键。 可以使用selectKey标签来获取主键的值这种方式不仅适用于不提供主键自增功能的数据库也适用于提供主键自增功能的数据库 selectKey一般的用法 selectKey keyColumnid resultTypelong keyPropertyid orderBEFORE /selectKey insert idinsertUser selectKey keyColumnid resultTypelong keyPropertyuserId orderBEFORESELECT USER_ID.nextval as id from dual /selectKey insert into user( user_id,user_name, user_password, create_time) values(#{userId},#{userName}, #{userPassword} , #{createTime, jdbcType TIMESTAMP}) /insert此时会将Oracle生成的主键值赋予userId变量。这个userId 就是USER对象的属性这样就可以将生成的主键值返回了。如果仅仅是在insert语句中使用但是不返回此时keyProperty“任意自定义变量名”resultType 可以不写。 Oracle 数据库中的值要设置为 BEFORE 这是因为 Oracle中需要先从序列获取值然后将值作为主键插入到数据库中。 扩展 如果Mysql 使用selectKey的方式获取主键需要注意下面两点 order AFTER 获取递增主键值 SELECT LAST_INSERT_ID() 当实体类中的属性名和表中的字段名不一样 怎么办 第1种 通过在查询的SQL语句中定义字段名的别名让字段名的别名和实体类的属性名一致。 select idgetOrder parameterTypeint resultTypecom.jourwon.pojo.Orderselect order_id id, order_no orderno ,order_price price form orders where order_id#{id}; /select第2种 通过resultMap来映射字段名和实体类属性名的一一对应的关系。 select idgetOrder parameterTypeint resultMaporderResultMapselect * from orders where order_id#{id} /selectresultMap typecom.jourwon.pojo.Order idorderResultMap!–用id属性来映射主键字段–id propertyid columnorder_id!–用result属性来映射非主键字段property为实体类属性名column为数据库表中的属性–result property orderno column order_no/result propertyprice columnorder_price / /reslutMap
http://www.pierceye.com/news/120912/

相关文章:

  • 做国外的众筹网站有哪些wordpress小红书主题
  • 扩展名 网站百度资源共享链接分享组
  • 东莞市seo网络推广怎么样杭州seo关键词优化哪家好
  • 做网站用什么ui美观微信公众号调用WordPress
  • 用万网做网站企业做网站怎么做
  • 比较好的网站开发教学网站专业做视频的网站有哪些
  • 户外旅游网站模板网站开发需要看相关书籍
  • 建设高端网站的公司企业营销网站建设公司
  • 重庆建设工程信息网站重庆企业网站建设报价
  • 大兴模版网站开发公司哪家好unn建站
  • 工信部网站域名备案查询北京科技网站建设公司
  • 昆明做网站那家好自己动手做网站
  • 女生做seo网站推广北京海岸设计公司网站
  • 单位建设网站硬件拍摄制作宣传片企业
  • 网站做推广应该如何来做呢哪里推广柳州360优化
  • 淘宝网站的建设目的济宁网站建设 中企动力临沂
  • 小米商城网站建设浏览器广告投放
  • 网站制作论文致谢wordpress首页导航栏
  • 网站右下角调用优酷视频广告代码酒泉地网站推广
  • 武清做网站的wordpress选择php
  • 最潮流的网站开发脚本语言icp网站备案
  • 盘锦网站建设平台wordpress英文模板
  • f2c网站建设公司单位名称大全
  • 泉州最专业手机网站建设哪家好重庆网站备案注销
  • 网站素材类型传统网站有没有建设必要性
  • 我的网站模板下载大连金普新区规划建设局网站
  • 营销案例网站织梦系统网站
  • 网站推广优化业务网站开发项目的里程碑
  • 小程序建站哪家好深圳建设银行官方网站
  • 免费红色ppt模板网站装修网站合作