MyBatis入门-基本操作

基本框架操作

这里我是用的是 IntelliJ IDEA 编辑器做的项目,IntelliJ IDEA如何创建Source Folder和导入jar包点这和链接可以学习使用IDEA导入jar包和创建Source Folder目录,这个编辑器和eclipse还是有很大的区别的,看个人习惯。

1. 首先我们创建一个数据库(这里我先输入了几条数据便于后面做操作)

在这里插入图片描述在这里插入图片描述

2. 创建一个项目并创建一个User对象,并定义属性和get和set方法,还有一个toString方法

在这里插入图片描述

3.导入jar包和创建一个resources目录(是source folder目录)用于存放全局的配置文件,并创建一个全局的配置文件。

在这里插入图片描述

4.在User对象目录下定义一个UserMapper.xml文件(供全局配置文件查找)

在这里插入图片描述
配置UserMapper.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="_mybatis.hello.UserMapper">
<!--
    SELECT元素:专门用来做写查询的SQL
        - id属性:唯一标识,用来表示某一条SQL语句
            id属性和mapper和namespace唯一的表示了应用中的某一条SQL语句
        - parameterType属性:表示执行该SQL语句需要的参数类型,建议不写,MyBatis可以自行推断出来
        - resultType属性:把结果集对象封装成什么类型的对象(有返回时必填)
-->
<!--
    #{}:
        OGNL表达式:从属性中取出某个值
-->

<!-- 查询一条信息 -->
<select id="get" resultType="_mybatis.hello.User">
    SELECT id,name,salary FROM t_user WHERE id = #{id}
</select>

<!-- 查询所有信息 -->
<select id="listAll" resultType="_mybatis.hello.User">
    SELECT * FROM t_user
</select>

<!-- 修改操作 -->
<update id="update">
    UPDATE t_user SET name=#{name},salary=#{salary} WHERE id=#{id}
</update>

<!-- 删除操作 -->
<delete id="delete">
    DELETE FROM t_user WHERE id = #{id}
</delete>

<!-- 保存操作
    insert元素:
        userGeneratedKeys属性:是否需要返回自动生成的主键
        keyProperty属性:把自动生成的主键值设置到对象的哪一个属性上(OID)
-->
<insert id="save" useGeneratedKeys="true" keyProperty="id" >
    INSERT INTO t_user(name,salary) VALUES (#{name},#{salary})
</insert>

</mapper>
5.创建一个App测试类

在这里插入图片描述

我这里里使用的是单元测试
package _mybatis.hello;

import _mybatis.util.MybatisUtil;
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.InputStream;
import java.math.BigDecimal;
import java.util.List;

public class App {

    // 查询ID为1的用户信息
    @Test
    public void get() throws Exception{
        // 1,从classpath路径去加载MyBatis全局配置文件:mybatis-config.xml
        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
        // 2,创建SqlSessionFactory对象,好比是DataSource
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
        // 3,创建SqlSession对象,好比是Connection
        SqlSession session = factory.openSession();
        // 4,具体的操作(增删改查)
        User u = session.selectOne("_mybatis.hello.UserMapper.get",3l);
        // 5,关闭SqlSession
        session.close();

        System.out.println(u);
    }
	
	// 查询所有信息
    @Test
    public void testListAll() throws Exception{
        // 1,从classpath路径去加载MyBatis全局配置文件:mybatis-config.xml
        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
        // 2,创建SqlSessionFactory对象,好比是DataSource
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
        // 3,创建SqlSession对象,好比是Connection
        SqlSession session = factory.openSession();
        // 4,具体的操作(增删改查)
        List<User> user = session.selectList("_mybatis.hello.UserMapper.listAll");
        // 5,关闭SqlSession
        session.close();

        for (User u: user
             ) {
            System.out.println(u);
        }
    }


	// 使用MybatisUtil工具类查询信息
    @Test
    public void testListAll2() throws Exception{
        SqlSession session = null;
        try{
            session = MybatisUtil.getSession();
            List<User> user = session.selectList("_mybatis.hello.UserMapper.listAll");
            for (User u:user
                 ) {
                System.out.println(u);
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            session.close();
        }
    }

    // 修改id为4的用户信息
    @Test
    public void testUpdate() throws Exception{
        User user = new User();
        user.setId(4L);
        user.setName("叶孤城");
        user.setSalary(new BigDecimal("900"));

        // 1,从classpath路径去加载MyBatis全局配置文件:mybatis-config.xml
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        // 2,创建SqlSessionFactory对象,好比是DataSource
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
        // 3,创建SqlSession对象,好比是Connection
        SqlSession session = factory.openSession();
        // 4,具体的操作(增删改查)
        session.update("_mybatis.hello.UserMapper.update",user);
        // 提交事务
        session.commit();
        // 5,关闭流对象
        session.close();
    }

    // 删除id为4的用户信息
    @Test
    public void testDelete() throws Exception{
        // 1,从classpath路径去加载MyBatis全局的配置文件:mybatis-config.xml
        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
        // 2,创建SqlSessionFactory对象,好比是DataBases
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
        // 3,创建SqlSession对象,好比是Connection
        SqlSession session = factory.openSession();
        // 4,具体的操作(增删改查)
        session.delete("_mybatis.hello.UserMapper.delete",4L);
        // 提交事务
        session.commit();
        // 5,关闭流对象
        session.close();
    }

    // 插入一条用户信息
    @Test
    public void testSave() throws Exception{
        User user = new User();
        user.setName("楚留香");
        user.setSalary(new BigDecimal("800"));

        // 1,从classpath路径去加载Mybatis全局的配置文件:mybatis-config.xml
        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
        // 2,创建SqlSessionFactory对象,好比是Databases
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
        // 3,创建SqlSession对象,好比Connection对象
        SqlSession session = factory.openSession();
        // 4,具体的操作(增删改查)
        session.insert("_mybatis.hello.UserMapper.save",user);
        // 提交事务
        session.commit();
        // 5,关闭资源
        session.close();
    }
}
6.定义MybatisUtil工具类

在这里插入图片描述

7.定义日志信息(可以在控制台输出更加详细的信息)

在这里插入图片描述
在全局配置文件中配置即可
在这里插入图片描述

这样就完成了Mybatis的基本环境搭建和对数据库的增删改查了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值