mybatis 的第一个 HelloWorld 程序学习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis 的第一个 HelloWorld 程序学习相关的知识,希望对你有一定的参考价值。

1、准备工作:

    

    a、在 mysql 中新建一个 mybatis 数据库,并且创建一个 table,在这个表格中录入一条记录。

技术分享

技术分享


    注:我使用的是 SQLyog,你们也可以使用命令行直接创建库和表。


2、在 eclipse 中创建一个 java 工程:

    - 创建一个名为 Employee 的 bean 类,并且在这个工程的路径下创建一个 lib 文件夹,用于存放需要的 jar 包。 (需要的 jar 包为 mybatis-3.4.1.jar 、mysql-connector-java-5.1.37-bin.jar 和 log4j.jar)


技术分享


技术分享


注:jar 包可以去 mybatis 官网下载,我这里提供一个网盘下载(http://pan.baidu.com/s/1c2H3udq)。mysql-connector-java-5.1.37-bin.jar  是为连接 mysql 数据库,而 log4j.jar 则是为了打印日志信息。(需要一个 log4j.xml 配置文件,我把它添加在类路径下,即如图所示的 conf 资源文件夹下)(log4j.xml 配置文件的内容我在 网盘链接中也有提供。)


3、mybatis 的第一个 HelloWorld 程序的相关配置问题:


    a、阅读 mybatis-3.4.1.pdf 文档可知,(在 mybatis-3.4.1.zip\mybatis-3.4.1 目录下,上面的网盘中有提供。)需要从 xml 配置文件中创建一个 SqlSessionFactory。我把它名为 mybatis-config.xml,这个配置文件的内容如下图所示。(mybatis-config.xml 文件为全局配置文件,也在类路径下) 


技术分享

    注:每一个 MyBatis 应用都是围绕一个 SqlSessionFactory 实例进行的,一个 SqlSessionFactory 实例可以由 SqlSessionFactoryBuilder 对象提供,SqlSessionFactoryBuilder 对象可以从配置文件中创建一个 SqlSessionFactory 实例。


技术分享

    注:可以看到,配置文件中 dataSource 标签是提供配置数据库连接的相关信息的,而 mapper 标签则是提供将我们写好的sql映射文件(EmployeeMapper.xml)注册到全局配置文件(mybatis-config.xml)中。(这个配置的内容为数据源等一些运行环境的信息)


    b、在类路径下创建一个名为 Employee-Mapper.xml 的 sql 映射文件(文件中配置每一个sql,以及sql的封装规则等)


技术分享

    注: namespace:名称空间;指定为接口的全类名

    id:唯一标识
    resultType:返回值类型
    #{id}:从传递过来的参数中取出id值

    (这里简单地了解一下,之后的博文中会详细地说明)


    c、创建一个名为 MyBatisTest 的测试类,并添加如图所示的代码:

技术分享


    注:使用 InputStream 输入流将类路径下的 mybatis-config.xml 文件加载进内存中,通过 SqlSessionFactoryBuilder 实例创建一个 SqlSessionFactory 对象,通过 SqlSessionFactory 对象的方法获得一个 SqlSession 对象(获取sqlSession实例,能直接执行已经映射的sql语句)再通过 selectOne 方法获得一个 Employee 实例。

    selectOne 方法中有两个参数,分别为 sql 的唯一标识和执行 sql 要用的参数(即 EmployeeMapper.xml 中的 id 标识,最好加上命名空间,避免错误)。


    d、测试类中的输出结果:

    技术分享


   注:在输出结果中可以看到,测试代码已经将一条数据库中的表的记录封装成一个对象 。


4、也可以使用接口和 sql 映射文件进行动态绑定:


    a、定义一个 名为 EmloyeeMappper 的接口,并且在接口中规范一个方法。再将该接口和 Sql 映射文件进行动态绑定。


技术分享

技术分享


    b、可以看到测试类中,SqlSession 类中的openSession 实例使用 getMapper 方法获得 EmployeeMapper 对象(动态创建了一个代理对象),后直接可以调用接口的方法。(如下图中的输出接口。)


技术分享

技术分享

    附:说明一下一些以上可能不太理解的问题:


    a、mybatis 的接口式编程

    使用原生的JDBC、Hibernate:Dao ==> DaoImpl

    使用 mybatis:Mapper ==> xxMapper.xml

    

    b、SqlSession 代表和数据库的一次回话;用完必须关闭

    c、SqlSession 和 connection 一样她都是非线程安全的,每次使用都应该去获取新的对象

    d、mapper 接口没有实现类,但是 mybatis 会为这个接口生成一个代理对象(将接口和 xml 进行绑定)

    EmployeeMapper empMapper =    sqlSession.getMapper(EmployeeMapper.class);


    e、两个重要的配置文件:

    mybatis 全局配置文件:包含数据库连接池信息,事务管理器信息等系统运行环境信息

    sql 映射文件:保存了每一个 sql 语句的映射信息,将 sql 抽取出来

    


以上是简单的 Mybatis 的 HelloWorld,先试试水,之后的博文中会详细说明。

本文出自 “12392717” 博客,请务必保留此出处http://12402717.blog.51cto.com/12392717/1930794

以上是关于mybatis 的第一个 HelloWorld 程序学习的主要内容,如果未能解决你的问题,请参考以下文章

你的第一个程序--基本输入输出介绍,头文件介绍

使用Android studio创建你的第一个项目

如何自定义MyBatis框架

MyBatis HelloWorld

用C语言写一个Helloworld_实现第一步编译运行

新建一个mybatis HelloWorld