您的位置:首页 > 理论基础 > 计算机网络

mybatis学习笔记 (部分资源来自网络)

2015-09-18 11:06 232 查看
以SqlSessionFactory实例为中心 他是通过SqlSessionFactoryBuilder来获得
String resource = "org/mybatis/example/configuration.xml";
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactory sqlSessionFactory= new SqlSessionFactoryBuilder().build(reader);

而通过SqlSessionFactory可以创建一个SqlSeesion的实例
SqlSession session = sqlSessionFactory.openSession();
try {
BlogMapper mapper = session.getMapper(BlogMapper.class);
Blog blog = mapper.selectBlog(101);
} finally {
session.close();
}

SqlSeesion包含了所有执行数据库sql语句的方法,可以直接通过SqlSeesion实例执行映射sql语句
xml

<configuration>配置文件包含对mybatis系统的核心设置,包含获取数据库连接实例的数据源和
决定事务范围和控制的事务管理器
可供配置的属性:
1、<properties>
<property name="xxx" value="xxx"/>
</properties>
2、<settings>
<setting name="xxx" value="xxx"/>
</settings>
setting节点里配置的值会直接改写configuration对应的变量值,这些变量描述的是mybatis的全局
运行方式
如:a)cacheEnabled 全局的映射器是否启用
3、<typeAliases>
<typeAlias alias="xx自定义别名" type="xxx.xx类名"/>
</typeAliases>

4、<typeHandlers>
<typeHandler javaType="String" jdbcType="VARCHAR" handler="org.mybatis.example.ExampleTypeHandler"/>
</typeHandlers>
无论是mybatis在预处理语句中设置一个参数 还是从结果集中取出一个值时 类型处理器被用来
将获取的值以合适的方式转换成java类型
5、<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
environments里可以配置多个environment,每个environment对应一个数据库环境
environments里的default属性表示默认的数据环境,与某个environment的id相对应
1)environment通过id属性与其他数据库环境区别,它有两个子节点:
a)transactionManager 事务管理器
b)dataSource数据源
6、mapper映射器
<mappers>
<mapper resource="xxxx/xxxx/xx.xml"/>(路径)
</mappers

sql语句映射xml文件 注意:每写好一个sql映射xml文件 要在mybatis主配置文件mappers标签中引入
如上6所写形式
可配置的元素:
1、<mapper namespace="xxx.xx.某接口名称">
</mapper>
2、sql 用来定义可重用的sql代码段
如:<mapper namespace="xxx.xx.某接口名称">
<!--可重用的sql代码段-->
<sql id="xxx">jjjjj</sql>
<select id="xxx" parameterType="int" resultType="map">
select <include refid="xxx"/>
from 某表 where id = #{id}
</select>
</mapper>
3、select 如上2所写例子
4、insert update delete
5、resultMap
自定义配置resultMap属性:
type为实体类 id为标识
可以设置的映射:
id 将结果集标记为id 以方便全局调用 即主键映射
result 反射到javabean属性的普通结果 其他基本数据库表字段到实体类属性的映射

association 《关联映射》复杂类型的结合
多个结果合成的类型

id和result语句属性配置细节:(
property:映射到列结果的字段或属性
column:从数据库中得到的列名

例如:
<resultMap id="resultUserArticleList" type="Article">
<id property="id" column="id" />
<result property="title" column="title" />
<result property="content" column="content" />

<association property="user" javaType="User">
<id property="id" column="id" />
<result property="userName" column="userName" />
<result property="userAddress" column="userAddress" />
</association>
</resultMap>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: