Mybatis XML配置开发

1.环境配置

  • 准备IDEA、Maven、Mysql
  • 新建Maven工程
groupIdartifactIdversion
org.mybatismybatis3.4.5
mysqlmysql-connector-java8.0.11
org.projectlomboklombok1.18.6
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>edu.whu</groupId>
    <artifactId>review_mybatis</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.11</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.6</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

</project>
  • 创建表
create table user
(
    id int auto_increment primary key,
    username varchar(32)  not null comment '用户名称',
    birthday datetime     null comment '生日',
    sex      char         null comment '性别',
    address  varchar(256) null comment '地址'
);

这是数据库user表:
在这里插入图片描述

  • 新建数据表对应的实体类User
package cn.whu.entity;
import lombok.Data;
import java.util.Date;

@Data
public class User {
    private long id;
    private String username;
    private Date birthday;
    private char sex;
    private String address;
}
  • 新建dao接口
package cn.whu.dao;
import cn.whu.entity.User;
import java.util.List;
public interface IUserDao {
    List<User> findAll();
}
  • 在resources目录下新建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">
<!--mybatis的主配置文件-->
<configuration>
    <!--配置环境-->
    <environments default="mysql">
        <!--配置mysql的环境-->
        <environment id="mysql">
            <!--配置事务类型-->
            <transactionManager type="JDBC"/>
            <!--配置数据源(连接池)-->
            <dataSource type="POOLED">
                <!--配置连接数据库的4个基本信息-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/ssm_mybatis"/>
                <property name="username" value="root"/>
                <property name="password" value="****(改成自己的密码)"/>
            </dataSource>
        </environment>
    </environments>
    <!--指定映射配置文件的位置,映射配置文件指的是每一个dao独立的配置文件-->
    <mappers>
        <mapper resource="cn/whu/mapper/IUserDao.xml"/>
<!--    如果是注解开发则写成    -->
<!--        <mapper class="cn.whu.dao.IUserDao"/>-->
    </mappers>
</configuration>
  • 在resources目录下新建一个与dao接口结构相同的目录并新建mapper.xml文件
<?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.whu.dao.IUserDao">
    <!-- 1.查询所有员工信息 id值为对应接口中方法的名字 -->
    <select id="findAll" resultType="cn.whu.entity.User">
        select * from user
    </select>

</mapper>
  • 到目前为止我们就写完了整个数据持久层代码了,接着我们测试一下效果
  • 在test/java目录中新建MybatisTest.java文件,当然记住要安装junit依赖
import cn.whu.dao.IUserDao;
import cn.whu.entity.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class MybatisTest {
    private InputStream in;
    private SqlSessionFactoryBuilder builder;
    private SqlSessionFactory factory;
    private SqlSession sqlSession ;
    private IUserDao userDao ;

    public void init() throws IOException {
        in = Resources.getResourceAsStream("SqlMapConfig.xml");
        builder = new SqlSessionFactoryBuilder();
        factory = builder.build(in);
        sqlSession = factory.openSession();
        userDao = sqlSession.getMapper(IUserDao.class);
    }

    public void destory() throws IOException {
        sqlSession.commit();
        sqlSession.close();
        in.close();
    }
    @Test
    public void TestSelectAll() throws IOException {
        init();
        List<User> users = userDao.findAll();
        for(User user : users){
            System.out.println(user);
        }
        destory();
    }
}
  • 结果展示:
    在这里插入图片描述

mybatis xml配置开发总结

  1. 创建Maven工程并导入坐标
  2. 创建实体类与Dao接口
  3. 创建mybatis主配置文件SqlMapConfig.xml
  4. 创建映射配置文件IUserDao.xml
  • 注意事项
    • 在idea中创建目录和创建包是不一样的,在创建cn.whu.dao包时是三层的,而创建目录时却是一层,package是包、directory是目录
    • 1.映射配置文件mapper标签namespace属性取值必须是dao接口的全限定类名
    • 2.映射配置文件的操作配置中id属性取值必须为dao接口的方法名
    • 3.mybatis的映射配置文件位置和dao接口的包结构相同,即接口为cn.edu.whu.dao下,映射配置文件也要在cn.edu.whu.dao下
    • 当我们遵从1 2 3 的规范时,在开发中就无需再写dao的实现类了,剩下的就只有mybatis实现了!!!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

DataMiner11222

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

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

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

打赏作者

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

抵扣说明:

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

余额充值