MyBatis主要执行流程

本文详细介绍了Mybatis的核心配置文件配置,如何创建实体类以符合要求,以及映射文件的编写规则,包括接口和文件的一致性。还展示了如何通过SqlSession进行数据库操作和事务处理的步骤。

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

Mybatis主要包括核心配置文件(xml文件)、映射文件(xml文件)、实体类、mapper接口。

· 核心配置文件:一般写为命名为mybatis-config.xml,主要的配置信息也是在这里面写的,包括配置数据库,映射文件。书写配置需要按照顺序。

·实体类:至少需要实现无参构造方法、有参构造方法,Get、Set、toString方法。

public class User {
    private Integer id;
    private String username;
    private String password;
    private Integer age;
    private String gender;
    private String email;
    public User() {
    }
    public User(Integer id, String username, String password, Integer age, String gender, String email) {
  ...
    }
    public Integer getId() {
    ...
      }
    ...
    ...
    public Integer getAge() {
        ...
     }
    ...
    ...

    @Override
    public String toString() {
    ...
    }
}

· 映射文件: mapper接口和映射文件要保证两个一致:
        1、mapper接口的全类名和映射文件的namespace一致:

<mapper namespace="com.mybatis.mapper.UserMapper">

        2、mapper接口中的方法的方法名要和映射文件中的sql的id保持一致

 <insert id="insertUser">
        insert into t_user values(null,'admin','123456',23,'男','12345@qq.com')
    </insert>

·mapper接口:定义了需要使用的方法

public interface UserMapper {

    int insertUser();
}

总体使用流程:

首先获取SqlSession对象,这里因为多次使用同样的代码,可以写一个获取方法:

public class SqlSessionUtil {

    public static SqlSession getSqlSession(){
        SqlSession sqlSession = null;
        try {
            //获取核心配置文件的输入流
            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
            //获取SqlSessionFactoryBuilder
            SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
            //获取SqlSessionFactory
            SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
            //获取SqlSession对象
            sqlSession = sqlSessionFactory.openSession(true);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return sqlSession;
    }

}

接下来获取UserMapper的代理实现类对象,然后调用方法,最后需要关闭SqlSession。

public class MyBatisTest {
    //这里是完整的
   @Test
    public void testInsert() throws IOException {
        //获取核心配置文件的输入流
        InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
        //获取SqlSessionFactoryBuilder对象
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        //获取SqlSessionFactory对象
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
        //获取sql的会话对象SqlSession(不会自动提交事务),是MyBatis提供的操作数据库的对象
        //SqlSession sqlSession = sqlSessionFactory.openSession();
        //获取sql的会话对象SqlSession(会自动提交事务),是MyBatis提供的操作数据库的对象
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        //获取UserMapper的代理实现类对象
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        //调用mapper接口中的方法,实现添加用户信息的功能
        int result = mapper.insertUser();
        //提供sql以及的唯一标识找到sql并执行,唯一标识是namespace.sqlId
        /*int result = sqlSession.insert("com.atguigu.mybatis.mapper.UserMapper.insertUser");*/
        System.out.println("结果:"+result);
        //提交事务
        //sqlSession.commit();
        //关闭SqlSession
        sqlSession.close();
    }
    
    //这里是调用方法简单的
    @Test
    public void testInsert(){
        SqlSession sqlSession = SqlSessionUtil.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.updateUser();
        sqlSession.close();
    }

}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值