mybatis——mybatis环境搭建

目录

前言:

 1、搭建mybatis环境

1.1 创建maven工程,添加对应坐标

  1.2 编写实体类

 1.3 编写持久层接口

1.4 编写持久层接口对应的映射文件 UserDao.xml  

1.5 编写mybatis的核心配置文件 sqlMapConfig.xml

 1.6 测试代码


前言:

   上篇文章大致介绍了mybatis框架,从本文开始正式进入mybatis框架的学习,在学习之前,需要准备一些数据。

资料准备:在我们mybatis课程的学习中,我们会用到一些数据表,相关对应的sql语句。 

DROP TABLE IF EXISTS `user`;

    CREATE TABLE `user` (
    `id` int(11) NOT NULL auto_increment,
    `username` varchar(32) NOT NULL COMMENT '用户名称',
    `birthday` datetime default NULL COMMENT '生日',
    `sex` char(1) default NULL COMMENT '性别',
    `address` varchar(256) default NULL COMMENT '地址',
    PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;


    insert  into `user`(`id`,`username`,`birthday`,`sex`,`address`) values (41,'老王','2018-02-27 17:47:08','男','上海'),(42,'小二王','2018-03-02 15:09:37','女','四川成都'),(43,'小二王','2018-03-04 11:34:34','女','中国上海'),(45,'老刘','2018-03-04 12:04:06','男','北京昌平'),(46,'王','2018-03-07 17:37:26','男','北京'),(48,'小艾','2018-03-08 11:44:00','女','上海');

    DROP TABLE IF EXISTS `account`;

    CREATE TABLE `account` (
    `ID` int(11) NOT NULL COMMENT '编号',
    `UID` int(11) default NULL COMMENT '用户编号',
    `MONEY` double default NULL COMMENT '金额',
    PRIMARY KEY  (`ID`),
    KEY `FK_Reference_8` (`UID`),
    CONSTRAINT `FK_Reference_8` FOREIGN KEY (`UID`) REFERENCES `user` (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    insert  into `account`(`ID`,`UID`,`MONEY`) values (1,41,1000),(2,45,1000),(3,41,2000);

    DROP TABLE IF EXISTS `role`;

    CREATE TABLE `role` (
    `ID` int(11) NOT NULL COMMENT '编号',
    `ROLE_NAME` varchar(30) default NULL COMMENT '角色名称',
    `ROLE_DESC` varchar(60) default NULL COMMENT '角色描述',
    PRIMARY KEY  (`ID`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    insert  into `role`(`ID`,`ROLE_NAME`,`ROLE_DESC`) values (1,'院长','学院领导'),(2,'总裁','公司老板'),(3,'校长','学校负责人');

    DROP TABLE IF EXISTS `user_role`;

    CREATE TABLE `user_role` (
    `UID` int(11) NOT NULL COMMENT '用户编号',
    `RID` int(11) NOT NULL COMMENT '角色编号',
    PRIMARY KEY  (`UID`,`RID`),
    KEY `FK_Reference_10` (`RID`),
    CONSTRAINT `FK_Reference_10` FOREIGN KEY (`RID`) REFERENCES `role` (`ID`),
    CONSTRAINT `FK_Reference_9` FOREIGN KEY (`UID`) REFERENCES `user` (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    insert  into `user_role`(`UID`,`RID`) values (41,1),(45,1),(41,2);

上面代码,需要放到mysql环境中执行脚本,作为后续学习mybatis框架所需数据。

 1、搭建mybatis环境

1.1 创建maven工程,添加对应坐标

创建Maven工程可以参考这篇文章: http://t.csdnimg.cn/jj5cpicon-default.png?t=N7T8http://t.csdnimg.cn/jj5cp

 在pom文件里面添加如下内容

<dependencies>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.5</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.10</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.12</version>
    </dependency>
</dependencies>

这里简单介绍一下上面的导入的依赖:

  •  mybatis依赖是mybatis环境所需的依赖,有了这个依赖才能编写相关的mybatis代码。
  • Junit依赖是单元测试依赖,方便后续测试代码。
  • mysql - connector -Java依赖是数据库驱动,因为要操作数据库,所以这个依赖也不可少
  • log4j依赖是日志依赖,它可以方便我们在控制台查看代码执行过程,对代码的执行有一个更直观的表现 

  1.2 编写实体类

public class User{
    private Integer id;
    private String username;
    private Date birthday;
    private String sex;
    private String address;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", birthday=" + birthday +
                ", sex='" + sex + '\'' +
                ", address='" + address + '\'' +
                '}';
    }
}

 1.3 编写持久层接口

public interface UserDao {
    //查询全部用户信息
    public List<User> findAll();
}

   值得注意的是,之前我们实现接口都是创建一个实现类去实现我们的接口,现在学习mybatis我们不再需要这么做了,现在换成创建xml文件,在xml文件里面去实现我们的接口

1.4 编写持久层接口对应的映射文件 UserDao.xml  

 这个xml文件需要放在resource目录下面(main目录下的resource目录),

<?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="com.xq.dao.UserDao">
    <!--
      配置查询所有操作
      id:方法名称,和接口名称需要对应
      resultType:返回值类型
     -->
    <select id="findAll" resultType="com.xq.pojo.User">
        select * from user
  </select>
</mapper>

 这里简单介绍一下上面代码的含义,后续会有更详细的介绍

namespace属性接口文件的全限定名称
select标签查询操作的标签
id属性接口方法名称
resultType属性返回值类型

 注意:这里说明一下resultType属性,因为接口方法的返回值类型是user,这里必须写user的全限定名称,因为mybatis要把查询的结果映射给实体类,所以这里不能单纯写user,这样方便找到这个对应的实体类。

1.5 编写mybatis的核心配置文件 sqlMapConfig.xml

<?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>
    <!-- 配置 mybatis 的环境 -->
    <environments default="mysql">
        <!-- 配置 mysql 的环境 -->
        <environment id="mysql">
            <!-- 配置事务的类型 -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 配置连接数据库的信息:用的是数据源(连接池) -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://192.168.10.137:3306/mybatis"/>
                <property name="username" value="root"/>
                <property name="password" value="Admin123!"/>
            </dataSource>
        </environment>
    </environments>
    <!-- 告知 mybatis 映射配置的位置 -->
    <mappers>
        <mapper resource="com/xq/dao/UserDao.xml"></mapper>
    </mappers>
</configuration>

 1.6 测试代码

为了测试查看更好的效果,我们在resources目录(main目录下的resource目录)下面添加log4j.properties文件。

  • log4j.properties文件

复制即可。

# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE            debug   info   warn error fatal
log4j.rootCategory=debug, CONSOLE, LOGFILE

# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:\axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

  •  测试代码,测试代码在test目录下面编写
public class MybatisTest {
    public static void main(String[] args) throws Exception {
        //1.读取配置文件
        InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
        //2.创建 SqlSessionFactory 的构建者对象
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        //3.使用构建者创建工厂对象 SqlSessionFactory
        SqlSessionFactory factory = builder.build(in);
        //4.使用 SqlSessionFactory 生产 SqlSession 对象
        SqlSession session = factory.openSession();
        //5.使用 SqlSession 创建 dao 接口的代理对象
        UserDao userDao = session.getMapper(UserDao.class);
        //6.使用代理对象执行查询所有方法
        List<User> users = userDao.findAll();
        for(User user : users) {
            System.out.println(user);
        }
        //7.释放资源
        session.close();
        in.close();
    }
}

整个项目结构如下:

最后测试结果如下:

 到这里我们整个mybatis入门案例搭建成功。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Austine Reaves

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值