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>
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>
相关文章推荐
- tcp/ip模型
- Http请求过程
- HttpSession 存储验证码失败
- UI一揽子计划 16 (网络编程、HTTP协议、iOS 实现网络编程、服务器接口)
- TCP通信的建立断开和状态转移
- http://segmentfault.com/a/1190000000683599神器——Chrome开发者工具(一)
- AJAX跨域访问
- HTTP请求返回状态码中301与302的状态码区别
- HttpServletResponse,HttpServletRequest详解
- iOS实用技巧 - AFNetworking2安全的使用自签证书访问HTTPS
- TCP/IP阻塞控制机制
- 关于Xcode7的一些改变
- Linux下用tcpdump抓包,wireshark可视化
- iOS9 HTTP 不能正常使用的解决办法
- C# HttpWebRequest HttpWebReponse 挂起无反应,阻塞解决方案
- centos 命令 设置网络IP方法
- 从零认识tomcat,构建一机多实例tomcat集群 - My---Dream.* - 51CTO技术博客 http://grass51.blog.51cto.com/4356355/1123400
- TCP/IP的工作原理
- Android性能优化(四),网络优化 && 耗电量优化
- HTTP/1.1协议中共定义了八种方法