【MyBatis学习02】走进MyBatis的世界

我的个人博客站点:http://www.itcodai.com

  今天是端午节,祝大家端午节快乐~玩了一天刚回来,该写篇博客了~
  mybatis是个持久层的框架,用来执行数据库操作的,无外乎增删改查,上一节对mybatis有了宏观上的了解后,这一篇博客主要通过一个小示例来入门mybatis,先看一下要写的示例需求:

根据用户id查询用户信息
根据用户名称模糊查询用户信息
添加用户、删除用户、更新用户

  其实也就是增删改查,掌握这些,基本上就掌握了mybatis的基本操作了,下面一个个模块来完成。

1. mybatis环境准备

  毫无疑问,砍柴得有把刀才行,环境的搭建是开发中必需的一个流程,mybatis的环境我分成以下几个部分来总结:

1.1 mybatis运行环境

  mybatis运行环境主要是指mybatis的jar包,mybatis已经将它的各个版本托管到github上了,大家可以去github上下载,(如果觉得不方便)也可以去CSDN下载频道下载,我已经上传上去了,我用的是mybatis-3.3.0版本,下载地址==>传送门。
  从mybatis的jar包中就可以看出,mybatis和hibernate有着强烈的对比,mybatis的jar包很简洁,不像hibernate有很多jar包,mybatis的jar包包括一个核心包和几个依赖包,我们全部导入到工程中即可。然后就是mysql的驱动包,也要导入到工程中。下面看一下总共需要导入的jar包:

【MyBatis学习02】走进MyBatis的世界_第1张图片

1.2 log4j配置文件

  从上面的jar包中可以看出,mybatis的依赖包中有很多日志包,既然mybatis依赖log4j,那我们首先要建立一个log4j.properties文件,这个可以在官方的文件中拷贝下,如下:

# Global logging configuration
# developer-->DEBUG  productor-->INFO or ERROR
log4j.rootLogger=DEBUG, stdout
# MyBatis logging configuration...
log4j.logger.org.mybatis.example.BlogMapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

  在开发环境下日志级别要设置成DEBUG,产品模式下可以设置成INFO或者ERROR

1.3 全局配置文件

  mybatis需要配置一个全局配置文件SqlMapConfig.xml,这个文件是用来配置mybatis的运行环境,即数据源、事务等。我们也可以从官方的例子中拷贝一份,然后做一下修改:



<configuration>
    
    <environments default="development">
        <environment id="development">
            
            <transactionManager type="JDBC" />
            
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
                <property name="username" value="root" />
                <property name="password" value="root" />
            dataSource>
        environment>
    environments>
    <mappers>
        <mapper resource="sqlmap/User.xml" />
    mappers>
configuration>

  以上这些环境配置(标签中的内容在以后和Spring整合后,都会交给Spring来管理,现在暂时交给 mybatis来管理)中,修改成自己数据库相对应的情况即可,标签用来配置映射文件的,这些映射文件是针对不同的pojo的,这个示例中只操作一个User对象,所以只有一个配置文件,在sqlmap目录下的User.xml,在下文中可以看到。最后来看一下整个环境的结构:

【MyBatis学习02】走进MyBatis的世界_第2张图片

  接下来就开始开发示例程序了。

2. 程序的编写

  首先我们得有一个pojo,在mybatis.po包中新建一个User.java类:

【MyBatis学习02】走进MyBatis的世界_第3张图片

 对应数据库的建表语句:

use mybatis
drop table if exists user;
create table user
(
    id int primary key not null auto_increment,
    username varchar(40),
    birthday date,
    sex char(1),
    address varchar(255)
);

insert into user(username,birthday,sex,address) values("张三1","1990-09-19","男","同济大学");
insert into user(username,birthday,sex,address) values("张三2","1990-09-19","男","同济大学");
/*自己多加几个*/

  下面开始写代码,完成示例程序。

2.1 根据用户id查询用户信息

  首先得创建配置文件User.xml,并在配置文件中创建sql语句,如下:


 

<mapper namespace="test">
    
    <select id="findUserById" parameterType="int" resultType="mybatis.po.User">
        select * from user where id = #{id}
    select>
mapper>

  来简单解释下该配置文件中一些参数的作用: