mybatis的8月29日

Posted choleen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis的8月29日相关的知识,希望对你有一定的参考价值。

一、select查询语句

  1.mybatis的映射,jdbc预处理

<select id="selectPerson" parameterType="int" resultType="hashmap">
  SELECT * FROM PERSON WHERE ID = #id
</select>

  这是一个简单的select查询,符号#id,告诉mybatis创建一个预处理语句参数,通过JDBC,这个参数在SQL拼接中会有一个?来标识,并被传到一个新的预处理语句中,就比如下面的例子。

//JDBC代码,不是mubatis
String selectContent = "SELECT * FROM PERSON WHERE ID=?";
PreparedStatement ps = conn.prepareStatement(selectContent);
ps.setInt(1,id);

  这样很多的JDBC预处理在底层实现,帮我们节约了时间。

  2.select标签会有很多参数,比如下面:  

<select
  id="selectPerson"
  parameterType="int"
  parameterMap="deprecated"
  resultType="hashmap"
  resultMap="personResultMap"
  flushCache="false"
  useCache="true"
  timeout="10000"
  fetchSize="256"
  statementType="PREPARED"
  resultSetType="FORWARD_ONLY">

    id:唯一标识符,用来引用这条语句。

    parameterType:将传入这条语句的参数的完全限定名或者别名,这个属性是可选的,typeHandler可以推断出具体的语句参数,默认值为unset。

    resultType:返回期望类型的类完全限定名或者别名,如果是集合的时候,是集合中的类型,而不是集合本身。resultMap和resultType不可同时使用

    resultMap:外部resultMap使用,定义了一个resultMap标签,在其他地方可以使用这个标签

    flushCache:为true,只要一调用,二级缓存和本地的缓存(一级缓存)都会被清空,默认为false

    useCache:设置为true,将会导致这条语句的结果被二级缓存

    timeout:抛出异常之前,等待数据库返回结果的秒数

    fetchSize:这是尝试影响驱动程序每次批量返回的结果行数和这个设置值相等

    

以上是关于mybatis的8月29日的主要内容,如果未能解决你的问题,请参考以下文章

青鸟云题库2018年8月26日15:20:28

2017年9月3日 Spring及Mybatis中连接数据库的不同方式

mybatis检测mysql表是否存在

通用Mapper新特性:ExampleBuilder 2017年12月18日

[MyBatis] MyBatis入门

Mybatis mark 勿看