使用IDEA 配置MyBatis

本文详细介绍如何使用MyBatis框架进行数据库操作,包括项目目录配置、数据库表创建、POJO对象定义、Mapper映射文件设置及配置文件编写,并提供具体测试案例。

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

1.项目目录
注意将resource设置成resources root
在这里插入图片描述
2.建立数据库
在MySQL数据库中创建一个新的数据库mybatis和tb_user表。SQL脚本如下:

create database mybatis;
use mybatis;
drop table if exists tb_user;
create table tb_user(
       id int(11) primary key auto_increment,
       name varchar(18) default null,
       sex char(2) default null,
       age int(11) default null
);


3.创建对应的pojo对象
在所有的ORM框架中都有一个非常重要的媒介:PO(持久化对象)。通过该对象对数据库执行增删查改的操作,以面对对象的方式操作数据库

package com.yf.blogs.pojo;

import java.io.Serializable;

public class User implements Serializable{

    private Integer id;
    private String name;
    private String sex;
    private Integer age;

    public User() {
    }

    public User(String name, String sex, Integer age) {
        this.name = name;
        this.sex = sex;
        this.age = age;
    }

    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public String getSex() {
        return sex;
    }

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

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

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

4.设置mapper映射文件
MyBatis是通过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指定了命名空间-->
<mapper namespace="com.yf.blogs.mapper.UserMapper">
    <insert id="save" parameterType="com.yf.blogs.pojo.User" useGeneratedKeys="true">
        INSERT INTO TB_USER(name,sex,age) VALUES (#{name},#{sex},#{age})
    </insert>
</mapper>

mapper:为根元素,namespace指定了命名空间习惯用包名+SQL映射文件文件名,这里就是com.yf.blogs.mapper+UserMapper(UserMapper.xml)去掉xml。这样能够保证namespace的唯一性

insert:在insert标签中编写SQL插入语句,id属性必须是唯一的,不能重复,parameterType属性指明插入时使用的参数类型,useGeneratedKeys="true"表示使用数据库的自动增长。#{name}表示取参数中的对象的name属性的值

5.mybatis-config.xml文件配置
对于mybatis来说,现在还不知道需要连接那个数据库,以及连接数据库时所用的连接池,用户名,密码等详细信息,这些信息对于所有的持久化类都是通用的,mybatis把这些通用信息称为配置信息,配置信息需要使用配置文件指定。

<?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="mysql"表示默认连接mysql数据库-->
    <environments default="mysql">
        <environment id="mysql">
            <!--配置事务管理,这里直接简单使用JDBC的提交和回滚设置-->
            <transactionManager type="JDBC"/>
            <!--配置数据源-->
            <dataSource type="POOLED">
                <!--下面配置mybatis连接数据库的必要信息-->
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=UTF-8" />
                <property name="username" value="root" />
                <property name="password" value="admin" />
            </dataSource>
        </environment>
    </environments>
    <!--每个mapper用于指定一个持久化配置文件-->
    <mappers>
        <mapper resource="com/yf/blogs/mapper/UserMapper.xml" />
    </mappers>
</configuration>

5.编写测试文件

package com.yf.blogs.test;

import com.yf.blogs.pojo.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 java.io.InputStream;

public class MyBatisTest {

    public static void main(String[] args) {
        SqlSession sqlSession = null;
        try(InputStream is = Resources.getResourceAsStream("mybatis-config.xml")){
            //初始化mybatis,创建SqlSessionFactory类的实例
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
            sqlSession = sqlSessionFactory.openSession();
            //创建User对象
            User user = new User("admin","女",20);
            //插入数据
            sqlSession.insert("com.yf.blogs.mapper.UserMapper.save",user);
            //提交事务
            sqlSession.commit() ;
        }catch (Exception e){
            //回滚事务
            sqlSession.rollback();
            e.printStackTrace();
        }finally {
            try{
                //关闭sqlSession
                if(sqlSession != null){
                    sqlSession.close();
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }

}


运行测试文件就可以发现数据库中多了一条数据。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值