mybatis mapper接口的使用
mybatis-config.xml:
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper class="xxx"/>
</mappers>
</configuration>
<mappers>
<mapper class="xxx"/>
</mappers>
循环处理 < mappers/> 内的所有< mapper/>,在解析 mapper 的时候,mybatis 会通过 Java 反射,获取到接口的所有方法。然后循环处理每一个方法。接口中的方法包含的信息主要有:参数、返回类型、方法注解、方法名称。
- 返回类型的作用主要是根据返回类型创建对象,然后把结果集中的数据通过调用 Java 反射把相关的数据设置到对象中。
- 参数的主要作用是为 sql 语句传递参数。
- 方法注解里包含了 sql 语句信息,方法注解里还可以包含很多其他的信息。
- 方法名称的作用主要是为了标志唯一性,接口名称和方法名称拼接在一起就可以唯一地区分一个方法(Java 里允许方法重载,但 mybatis 不支持方法名称相同但参数不同的情况)
在处理每一个方法时会把上面说的这几种信息都封装并保存起来。
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
这行配置的意思是映射下划线到驼峰类型,有了这个配置之后,在取出列名的时候会把列名中的 _ 都去掉,然后就像其他属性一样反射调用来设置属性值。