mybatis简单入门和介绍 mybatis教程
来源:互联网 发布:js设置div内容颜色 编辑:程序博客网 时间:2024/05/23 20:03
Mybatis简介
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis避免了几乎所有的 JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的 XML或注解来配置和映射原生信息,将接口和 Java的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
Mybatis入门
1、引入mybatis相关包
Maven方式
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>x.x.x</version>
</dependency>
2、从xml中构建sqlSessionFactory
sqlSessionFactory是用来创建sqlSession对象的。
String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
3、配置mybatis核心配置文件
XML 配置文件(configuration XML)中包含了对 MyBatis 系统的核心设置,包含获取数据库连接实例的数据源(DataSource)和决定事务作用域和控制方式的事务管理器(TransactionManager)。XML 配置文件的详细内容后面再探讨,这里先给出一个简单的示例:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPEconfiguration
PUBLIC "-//mybatis.org//DTD Config3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<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>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
4、编写映射配置文件
Mybatis的映射文件就是sql语句所在的地方,这种把sql语句可见的方式更加的灵活,我们可以很好的对sql语句进行优化,不像hibernate完全的黑箱操作。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.mybatis.example.BlogMapper">
<select id="selectBlog" resultType="Blog">
select * from Blog where id = #{id}
</select>
</mapper>
5、创建sqlsession对象并执行语句
既然有了 SqlSessionFactory,顾名思义,我们就可以从中获得 SqlSession的实例了。SqlSession完全包含了面向数据库执行 SQL命令所需的所有方法。你可以通过 SqlSession实例来直接执行已映射的 SQL语句。例如:
SqlSession session = sqlSessionFactory.openSession();
try {
Blog blog = (Blog) session.selectOne("org.mybatis.example.BlogMapper.selectBlog", 101);
} finally {
session.close();
}
诚然这种方式能够正常工作,并且对于使用旧版本 MyBatis的用户来说也比较熟悉,不过现在有了一种更直白的方式。使用对于给定语句能够合理描述参数和返回值的接口(比如说BlogMapper.class),你现在不但可以执行更清晰和类型安全的代码,而且还不用担心易错的字符串字面值以及强制类型转换。
SqlSession session = sqlSessionFactory.openSession();
try {
BlogMapper mapper = session.getMapper(BlogMapper.class);
Blog blog = mapper.selectBlog(101);
} finally {
session.close();
}
这样就可以执行sql语句并直接返回封装好的对象了。
另外使用对于像 BlogMapper 这样的映射器类(Mapperclass)来说,还有另一招来处理。它们的映射的语句可以不需要用 XML 来做,取而代之的是可以使用 Java 注解。比如,上面的 XML 示例可被替换如下:
package org.mybatis.example;
public interface BlogMapper {
@Select("SELECT * FROM blog WHERE id = #{id}")
Blog selectBlog(int id);
}
对于简单语句来说,注解使代码显得更加简洁,然而 Java 注解对于稍微复杂的语句就会力不从心并且会显得更加混乱。因此,如果你需要做很复杂的事情,那么最好使用 XML 来映射语句。
以上就是mybatis的简单入门,学习起来也很简单。但要深入的学习mybatis持久层的框架,还有两个重要的部分,就是mybatis的核心配置文件和映射文件的编写,下面我们就来看这两个文件到底有那些作用呢。
mybatis的核心配置文件
mybatis的核心配置文件除了上面配置数据源数据驱动等等你还有很多配置项,常用的有开启二级缓存,开启驼峰映射等等。
其中包括:
可以点击链接了解,这里就不多做介绍。
· properties属性
· settings设置
· typeAliases类型别名
· typeHandlers类型处理器
· objectFactory对象工厂
· plugins插件
· environments环境
o environment环境变量
§ transactionManager事务管理器
§ dataSource数据源
· databaseIdProvider数据库厂商标识
· mappers映射器
映射文件
· cache –给定命名空间的缓存配置。
· cache-ref –其他命名空间缓存配置的引用。
· resultMap –是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象。
· parameterMap –已废弃!老式风格的参数映射。内联参数是首选,这个元素可能在将来被移除,这里不会记录。
· sql –可被其他语句引用的可重用语句块。
· insert –映射插入语句
· update –映射更新语句
· delete –映射删除语句
· select –映射查询语句
- mybatis简单入门和介绍 mybatis教程
- MyBatis 介绍、简单入门程序
- MyBatis介绍和入门一
- mybatis----简单介绍和使用
- mybatis入门(一)-mybatis介绍和获取SqlSession
- MyBatis入门学习教程
- MyBatis入门学习教程
- MyBatis入门学习教程
- MyBatis入门学习教程
- MyBatis入门学习教程
- Mybatis入门级教程
- MyBatis入门学习教程 MyBatis快速入门
- Mybatis入门介绍
- 简单介绍一下MyBatis和Hibernate.
- mybatis 简单介绍
- mybatis 简单介绍
- Java:MyBatis简单入门
- myBatis简单入门
- copy
- 11.笔记 MySQL学习——设置和使用自定义变量
- 51Nod-1174-区间中最大的数
- 检测提取图像中的直线(基于霍夫变换)
- 12.笔记 MySQL学习——聚集函数
- mybatis简单入门和介绍 mybatis教程
- LeetCode 之 Rotate Image
- Android的开发之&java23中设计模式------>装饰模式
- 硕士论文结构分析与如何写作
- 登陆窗口
- 棋牌类游戏回放
- HDU 2159 FATE(二维费用)
- 13.笔记 MySQL学习——多表查询
- 欢迎使用CSDN-markdown编辑器