编写一个mybatis程序

本文详细介绍了如何从搭建环境开始,通过创建Maven项目、配置mybatis核心配置文件、编写User实体类与DAO接口,到测试和常见问题排查。跟随步骤,一步步掌握Mybatis开发流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建一个mybatis程序


思路:搭建环境->导入mybatis->编写代码->测试

mysql:5.7

搭建环境

创建数据库,表和插入数据

CREATE DATABASE mybatis;
USE mybatis;

CREATE TABLE `user`(
   `id` INT(10) NOT NULL PRIMARY KEY,
   `name` VARCHAR(20) DEFAULT NULL,
   `pwd` VARCHAR(20)

)ENGINE = INNODB DEFAULT CHARSET=utf8;

INSERT INTO `user` (`id`,`name`,`pwd`) VALUES
(1,'张三','123456'),
(2,'李四','123136'),
(3,'王五','124676')

新建项目

  1. 新建一个maven项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l9MtJIYQ-1649291620352)(C:/Users/86156/AppData/Roaming/Typora/typora-user-images/image-20220406220903807.png)]

  1. 删除src目录当成父工程使用
  2. 导入依赖
<!--mybatis -->
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.9</version>
        </dependency>

<!--  mysql驱动 -->
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
        </dependency>

<!--   junit     -->
        <!-- https://mvnrepository.com/artifact/junit/junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>
  1. 资源过滤设置
<build>
   <resources>
       <resource>
           <directory>src/main/java</directory>
           <includes>
               <include>**/*.properties</include>
               <include>**/*.xml</include>
           </includes>
           <filtering>false</filtering>
       </resource>
       <resource>
           <directory>src/main/resources</directory>
           <includes>
               <include>**/*.properties</include>
               <include>**/*.xml</include>
           </includes>
           <filtering>false</filtering>
       </resource>
   </resources>
</build>

新建子模块

在mybatis-study下面创建子模块mybatis-01

image-20220406222316538

创建mybaits核心配置文件mybatis-config.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>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSLL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=GMT"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>

</configuration>

编写mybatis工具类

public class MybatisUtils {
    //获取mybatis的sqlsessionFactory对象
    static{
        try {
            String resource = "com/hao/mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            } catch (IOException e) {
                e.printStackTrace();
            }
    }
}

编写一个user实体类

public class User {
    private int id;
    private String name;
    private String pwd;

    public User() {
    }

    public User(int id, String name, String pwd) {
        this.id = id;
        this.name = name;
        this.pwd = pwd;
    }

    public int getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", pwd='" + pwd + '\'' +
                '}';
    }
}

编写dao接口(mapper映射接口)

public interface Usermapper {
    List<User> getUserList();
}

实现dao接口(mapper配置文件)

<?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">
<!--namespase绑定一个对应的mapper接口-->
<mapper namespace="com.hao.dao.Usermapper">
<!--    id接口实现方法,resultType返回类型-->
    <select id="getUserList" resultType="com.hao.pojo.User">
        select * from user
    </select>

</mapper>

在mybatis-config中注册mapper

 <mappers>
        <mapper resource="com/hao/dao/Usermapper.xml"/>
 </mappers>

测试程序

编写JUNIT测试类

public class mybatisTest {
    @Test
    public void Test(){
        //获取session
        SqlSession session = MybatisUtils.getsqlsession();
        
        //getmapper
        Usermapper mapper = session.getMapper(Usermapper.class);
        List<User> userList = mapper.getUserList();
        for (User user : userList) {
            System.out.println(user);
        }
        
        //关闭session
        session.close();


    }
}

测试结果如下

image-20220406234357598

项目目录

总结

常见错误:

  • 配置文件没有注册(mapper的xml文件,没有在mybatis-config里面注册)
  • 绑定接口错误(mapper.xml文件里面id,namespace,resultType等等错误)
  • maven导出资源问题(前面配置资源过滤设置,没有的配置会导致mapper.xml找不到)

这个项目参考了官方入门文档编写,如有问题,希望评论区交流。

官方入门文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值