zoukankan      html  css  js  c++  java
  • 20190712共学问题归纳

    Mybatis相关

    1、动态SQL(灵活拼接)

    <if>:适用于动态条件(检索条件存在时则拼接到where)
    <choose>,<when>,<otherwise>: 相当于java的switch没有break
    <where>:适用于where本身是否包括(没有一个条件时where需要动态去掉)
    <set>:适用于动态设定值,灵活处理最后的逗号
    <foreach>:遍历,适合拼接元素到in条件,包含open,close,separator元素
    <bind>:OGNL表达式

    参考:http://www.mybatis.org/mybatis-3/zh/dynamic-sql.html

    2、注解

    <insert>、<update>、<delete>、<select>

    这四个注解分别代表将会被执行的 SQL 语句。它们用字符串数组(或单个字符串)作为参数。
    如果传递的是字符串数组,字符串之间先会被填充一个空格再连接成单个完整的字符串。
    这有效避免了以 Java 代码构建 SQL 语句时的“丢失空格”的问题。
    然而,你也可以提前手动连接好字符串。属性有:value,填入的值是用来组成单个 SQL 语句的字符串数组。

    参考:http://www.mybatis.org/mybatis-3/zh/java-api.html

    小程序相关

    1、this和that的使用

    this代表着当前对象,会随着程序的执行过程中的上下文改变,这也是为什么在回调时用this取不到数据的原因,解决办法:
    1)可以在回调函数外面复制一份到that中(也就是var that=this),然后回调函数通过操作that来控制,这也是最常用的方法
    2)函数声明方式:success: res=> {this.setData({xxx})}

    参考:https://blog.csdn.net/mdzzzhangxian/article/details/60966040

    2、wxs脚本:主要用于compute/filter,用于转换数字货币等的转换。用在wxml上来构建页面,而不是用在js里

    参考:https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxs/

    Spring相关(尚未实验)

    1、当一次事务提交需要更新两个数据源,如何控制事务的原子性?
        

    考虑用druid的多数据源管理

    2、当调用多个微服务的更新DB操作时,如何控制事务?

    解决方案
    1、XA协议方案:两阶段提交,中间用事务协调器调控 -- 性能问题应用不多
    2、TCC方案:对XA的改进,可重试 -- 开发复杂度较高
    3、阿里的中间件GTS:收费服务,但还好在2019年阿里开源了社区版seata,足够大部分场景使用
    原理:基于XA方案的两步提交,为了减少锁资源的时间,第一次提交时已经提交了事务,而回滚的原理是在提交事务时记录undo日志,回滚时根据undo记录来生成回滚用的SQL

    关于seata的更详细了解,请参照系列文章:Seata之研究

    参考:https://www.cnblogs.com/lfs2640666960/p/8725315.html

    应用示例:https://www.jianshu.com/p/37657d557183

    阿里官网:https://help.aliyun.com/product/48444.html

    GTS的开源社区版:https://github.com/seata/seata

  • 相关阅读:
    4.变量以及类型
    3.注释
    2.第一个python程序
    1.认识Python
    DB安装
    DB2<RedHed Linux> 创建数据库
    win 7设置主机域名
    FTP 错误1
    FTP 其他设置
    VM浏览器不能访问
  • 原文地址:https://www.cnblogs.com/roostinghawk/p/11180119.html
Copyright © 2011-2022 走看看