最近抽空学习了Mybatis这个框架,在学习的过程中也找了很多的文章,个人感觉官网上的东西太多太杂,不适合许多希望一步步快速上手的朋友们,当然觉得查阅问题的时候可以直接通过官网找还比较快或者是StackOverflow,鉴于此原因把自己想把自己学习过程中的经验留作笔记以供分享参考之用,尽量少绕弯路。因为想直接了解Mybatis的使用方式,而网上有许多学习文章是Mybatis与Spring的结合范例,或者说直接在Web Project项目下创立的范例,感觉对于只是纯粹想了解那个东西怎么使用的朋友应该不需要那么多附加的条件,所以本系列中直接用最简单的Java Project作范例演示。

  什么是Mybatis,前身iBatis(个人没用过,所以没什么发言权),引述官网的原意来说,Mybatis是支持普通SQL查询,可以更简单直接的操作SQL,存储过程和高级映射的一种优秀的持久层框架,使用它基本可以消除所有的JDBC大麦和参数的手工设置以及结果集的检索,其实个人使用下来感觉,其实主要工作都是在配置XML或者注解上,然后将接口和Java的POJO(普通Java对象映射成数据库的记录),个人没用过Java的Hb,所以对于两者之间的差异性也没权限发表意见,我相信各个事物的产生总有它自己的目的。

  这段时间学习下来,其实对Mybatis来说主要的过程无法是以下几步

  1. 从XML配置文件中获取SessionFactory,然后由SessionFactory产生相应的Session。

  2. 是用Session对象对业务数据完成相应的CRUD操作(增删改查)和相应的事务控制。

  3. 使用完毕后关闭相应的Session,以免过度占用资源

  4. 使用配置相应的Mapper xml文件进行业务实体的JavaBean与数据库表之间做相应的Map操作

  

战前准备:

  1. 开发环境Eclipse JavaEE IDE,JDK 1.6,数据库mysql 5.5

  2. 下载相应Jar包,以备后用

    mybatis-3.2.3.zip 解压后拿出 mybatis-3.2.3.jar,=> 下载地址: http://code.google.com/p/mybatis/ (Mybatis核心包)

    mybatis-generator-core-1.3.1.jar => 下载地址: http://code.google.com/p/mybatis/wiki/Generator (Mybatis自动生成配置文件包)

    mysql-connector-java-5.1.26-bin.jar => 下载地址:http://dev.mysql.com/downloads/connector/j/ (Mysql 的jdbc驱动包)

  

  接下来大家可以再Eclipse下面建一个名为MybatisDemo的Java Project项目,按照如下图中所示新建相应的包结构和文件夹结构,其中config与mapper分别为文件夹,

  包david.mybatis.demo与包david.mybatis.model下分别存放相应的demo运行程序与Javabean对象,lib文件夹下存放刚刚下载的那几个第三方jar包。

            一步步学Mybatis-搭建最简单的开发环境-开篇(1)

  

  

  建完下面的目录,我们可以添加相应的Jar包,如下图

  

  一步步学Mybatis-搭建最简单的开发环境-开篇(1)一步步学Mybatis-搭建最简单的开发环境-开篇(1)

   完成后,执行下面SQL,建立DEMO所需的表结构,分别有3张表,Visitor(访问者表),Website(网站表),Channel(频道表)

  

/*创建Visitor*/
CREATE TABLE Visitor
(
    Id INT(11) NOT NULL AUTO_INCREMENT,
    Name VARCHAR(1000) NOT NULL,
    Email VARCHAR(1000) NOT NULL,
    Status INT NOT NULL DEFAULT 1,
    CreateTime DateTime,
    PRIMARY KEY(Id)
)
/*创建网站表*/
CREATE TABLE Website
(
    Id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    Name VARCHAR(1000) NOT NULL,
    VisitorId INT REFERENCES Visitor(Id),
    Status INT NOT NULL DEFAULT 1,
    CreateTime DateTime
)

/*创建频道表*/
CREATE TABLE Channel
(
    Id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    Name VARCHAR(1000) NOT NULL,
    WebsiteId INT REFERENCES Website(Id),
    Status INT NOT NULL DEFAULT 1,
    CreateTime DateTime
)
建表SQL

相关文章: