前言

  Mybaits技术现在很多公司都在使用,它提供了简单的API可以快速进行数据库操作,所以不管是自己做系统还是找工作都有必要了解一下。

学习一门技术如果是入门的话要么买书要么就是阅读官方的文档,而且官方的文档全且及时更新,所以建议阅读官方文档,本系列入门教程其实就是官方文档的简易汉化版(哈哈)

1.通过XML建立SqlSessionFactory

  Mybaits应用是一个SqlSessionFactory的实例,而SqlSessionFactory时通过SqlSessionFactoryBuilder获得的。SqlSessionFactoryBuilder可以使用xml配置文件或者一些预先准备配置类实例化一个SqlSessionFactory

  通过xml配置获得一个SqlSessionFactory实例十分简单,推荐你使用类路径,但是你也可以使用任何的InputStream实例(简单的讲,你把读取的文件放到InputStream流里面就行,文件随你放哪里),这里注意一下Mybaits

有一个工具类叫Resources,他提供了很多简单的方法获取资源。

  xml配置文件包含mybaits系统的核心,包括数据库链接、事物控制等 这里我们先贴一个简单的代码

 String resource ="cn/dota/uc/test/cfg.xml";
InputStream is = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.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=""/>
<property name="url" value=""/>
<property name="username" value=""/>
<property name="password" value=""/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/xxx/xxx/BlogMapper.xml" />
</mappers>
</configuration>

注意图中标红的需要制定为类路径

还有一种方式时通过Configuration类设置属性,这种方式侵入了代码大家可以自己看这段的文档,本系列就不介绍了

2.通过SqlSessionFactory获得SqlSession

  通过SqlSession你就可以开始操作数据库了如下代码

  现在版本的Mybatis有了新的方式可以使用接口进行开发如下

  一种实在BlogMapper.xml中指定sql语句

<?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="cn.dota.uc.test.BlogMapper">
<select id="selectBlog" resultType="cn.dota.uc.test.Blog">
select * from Blog where id = #{id}
</select>
</mapper>
SqlSession session = sqlSessionFactory.openSession();
try{
Blog blog = session.selectOne("cn.dota.uc.test.BlogMapper.selectBlog", 100);
} finally{
session.close();
}

还有一种就是使用接口,首先我们要定义一个接口BlogMapper,代码如下

<?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="cn.dota.uc.test.BlogMapper">
</mapper>
SqlSession session = sqlSessionFactory.openSession();
try{
  BlogMapper mapper = session.getMapper(BlogMapper.class);
  Blog blog = mapper.selectBlog(101);
} finally{
  session.close();
}

这种方式需要注意的就是配置文件的namespace 中 value必须和 接口相对应

public interface BlogMapper {
@Select("SELECT * FROM blog where id = #{id}")
Blog selectBlog(int id);
}

3总结

所以简单来说 Mybatis开发的步骤就是

  1. 编写配置文件和接口映射文件
  2. 使用SqlSessionFactoryBuilder读取配置文件并且获得SqlSessionFactory;
  3. 使用SqlSessionFactory获得SqlSession 然后可以通过两种方式进行数据库操作

生命周期和作用域

SqlSessionFactoryBuilder 仅仅用于创造sqlSessionFactory 所以可以使用完丢弃

SqlSessionFactory 单例和静态类是最好的方式

SqlSession 局部作用域就可以了

Mybaits入门之起航的更多相关文章

  1. mybaits入门

    1.回顾jdbc开发 orm概述 orm是一种解决持久层对象关系映射的规则,而不是一种具体技术.jdbc/dbutils/springdao,hibernate/springorm,mybaits同属 ...

  2. Mybaits入门使用

    1.pom.xml配置信息 <dependencies> <dependency> <groupId>junit</groupId> <artif ...

  3. mybaits入门(含实例教程和源码) http://blog.csdn.net/u013142781/article/details/50388204

    前言:mybatis是一个非常优秀的存储过程和高级映射的优秀持久层框架.大大简化了,数据库操作中的常用操作.下面将介绍mybatis的一些概念和在eclipse上的实际项目搭建使用. 一.mybati ...

  4. mybaits入门学习

    学习了简单的mybatis的配置 Bean层: 这个都会很简单 一个完整的Bean 需要getter和setter方法还需要一个空的构造方法和一个满的构造方法. Dao层: 创建一个接口就ok了 pa ...

  5. mybatis入门百分百

    今天重新返回来看自己的mybatis,总结了一些更好入门的办法,下面用最简单的方法带领大家入门. 此处先引入类包的关系图片 1.构建一个==普通==maven项目 构建好之后向pom.xml添加一下依 ...

  6. Mybatis教程(一)

    1      Mybatis教程(一) 学习过的持久层框架:DBUtils , Hibernate Mybatis就是类似于hibernate的orm持久层框架. 为什么学Mybatis? 目前最主流 ...

  7. 深入浅出MyBatis技术原理与实战

    第1 章 MyBatis 简介..................................................................................... ...

  8. MyBaits框架入门总结

    MBaits简介 联系方式:18873247271(微信同步) 廖先生 qq:1727292697 MyBatis的前身叫iBatis,本是apache的一个开源项目, 2010年这个项目由apach ...

  9. My Baits入门(一)mybaits环境搭建

    1)在工程下引入mybatis-3.4.1.jar包,再引入数据库(mysql,mssql..)包. 2)在src下新建一个配置文件conf.xml <?xml version="1. ...

随机推荐

  1. In-System Debugger for 8051 Devices(ISD 8051单片机在线调试器)

    此文档包含了最新版本的说明及最近的更新特别是对 ISD51 的说明(用户手册没有此说明) Keil Software,Inc and Keil Elektronik GmbH保留所有此文件中涉及的信息 ...

  2. FineUI_动态绑定Grid

    private void InitGrid() { string _sql = GetSql().ToLower().Replace("select", "") ...

  3. HDU 5811 Colosseo(拓扑排序+单调DP)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5811 [题目大意] 给出 一张单向图,现在将其划分成了两个部分,问划分之后的点是否分别满足按照一定 ...

  4. 驾驶机动车在高速公路上倒车、逆行、穿越中央分隔带掉头的一次记6分。 答案:错误 2013《123号令-附件2》一、机动车驾驶人有下列违法行为之一,一次记12分[重新考《科目一》]:(七)驾驶机动车在高速公路上倒车、逆行、穿越中央分隔带掉头的; 可以参考:http://zhinan.jxedt.com/info/6375.htm

    这一组交通警察手势是什么信号?_2600602 交警的面部对着哪个方向就是在指挥哪个方向的车,减速慢行是右手   左转弯待转是左手!~ 哎 本题解释由台州交通驾校提供 4755支持   hmq 只能看 ...

  5. 【Deep Learning】genCNN: A Convolutional Architecture for Word Sequence Prediction

    作者:Mingxuan Wang.李航,刘群 单位:华为.中科院 时间:2015 发表于:acl 2015 文章下载:http://pan.baidu.com/s/1bnBBVuJ 主要内容: 用de ...

  6. Android 开发佳站3

    eclipse 某些java文件乱码 摘要: [一篮饭特稀原创,转载请注明出自http://www.cnblogs.com/wanghafan/archive/2013/04/24/3040219.h ...

  7. 金山卫士开源软件之旅(十) KSafeMainproject的分析 1

    上一次看金山开源到如今已有一两个月了.期间看到QQ群里大家对它非常是热情. 近期有时间想看看金山的主界面projectKSafeMain,自己水平有限,总结的东西浅显.但还是愿意拿来与大家分享.希望对 ...

  8. 1.一步一步学c#(一):.NET体系结构(知识点)

    一.C#和.NET关系     1. 首先C#语言有两个很重要的方面:第一它是为了Microsoft的.NET Framework的结合而设计的,其次它是一种为问题而设计解决问题的方法的语言,它有很多 ...

  9. JavaScript之<noscript>标签简介

    早期浏览器都面临一个特殊的问题,即当浏览器不支持JavaScript时如何让页面平稳的退化.对这个问题的终极方案就是创造一个<noscript>元素,用以在不支持或支持但禁用了JavaSc ...

  10. JavaScrtip之JS最佳实践

    一.JavaScript之平稳退化 这边使用一个当用户点击某个页面内某个链接弹出一个新窗口的案例: JavaScript使用window对象的open()方法来创建新的浏览器窗口; window.op ...