MyBatis的学习

什么是MyBatis

MyBatis是持久层框架,用于简化JDBC开发

持久层

  • 负责将数据保存到数据库
  • JavaEE三层架构:表现层,业务层,持久层

框架

是一个半成品软件,是一套可重用的,通用的,软件基础代码模型

在框架的基础之上构建软件编写更高效,规范,通用

JDBC缺点

硬编码:注册驱动,获取连接,SQL语句

操作繁琐:手动设置参数,手动封装结果集

SqlSession

 org.apache.itatis.session.SqlSession:构建者对象接口,用于执行SQL,管理事务,接口代理

47137cf17b654fe49f27e1561e714a50.png

相关API

Resources

  • 加载资源的工具类

SqlSessionFactoryBuilder

  • 获取SqlSessionFactory工厂对象的功能类

SqlSessionFactory

  • 获取SqlSession构建者对象的功能类
  • 指定事务的提交方式

SqlSession

  • 构建者对象接口
  • 执行SQL
  • 管理事务
  • 接口代理

MyBatis映射配置文件

mapper:核心根标签

namespace属性:名称空间

select:查询功能的标签

id属性:唯一标识

resultType属性:指定结果映射对象类型

parameterType属性:指定参数映射对象类型

查询功能

<select>查询功能标签

属性:

  • id:唯一标识
  • resultType:指定参数映射的对象类型
  • resultType:指定结果映射的对象类型

SQL获取参数:

  • #{属性名}
    @Test
    public void selectById() throws IOException {
        //加载核心配置文件
        InputStream is = Resources.getResourceAsStream("UserConfig.xml");
        //获取SqlSession工厂对象
        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(is);
        //通过SqlSession工厂对象获取SqlSession对象
        SqlSession sqlSession=sqlSessionFactory.openSession();
        //执行映射配置文件中的sql语句,并接收结果
        Object user = sqlSession.selectOne("selectById", 1);
        //处理结果
        System.out.println(user);
        //释放资源
        sqlSession.close();
        is.close();
    }

新增功能

<insert>:新增功能标签

属性

  • id:唯一表示
  • resultType:指定结果映射的对象类型
  • parameterType:指定参数映射的对象类型

SQL获取参数

  • #{属性名}
    @Test
    public void insert() throws IOException {
        //加载核心配置文件
        InputStream is = Resources.getResourceAsStream("UserConfig.xml");
        //获取SqlSession工厂对象
        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(is);
        //通过SqlSession工厂对象获取SqlSession对象
        SqlSession sqlSession=sqlSessionFactory.openSession(true);
        //执行映射配置文件中的sql语句,并接收结果
        User user = new User(5,"1","1","1","1","1","1","1","1","1");
        int result=sqlSession.insert("insert",user);
        //提交事务
        //sqlSession.commit();
        //处理结果
        System.out.println(result);
        //释放资源
        sqlSession.close();
        is.close();
    }

修改功能

<update>:修改功能标签

属性:

  • id:唯一标识
  • resultType:指定结果映射的对象类型
  • parameterType:指定参数映射的对象类型

SQL获取参数

  • #{属性名}
    @Test
    public void update() throws IOException {
        //加载核心配置文件
        InputStream is = Resources.getResourceAsStream("UserConfig.xml");
        //获取SqlSession工厂对象
        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(is);
        //通过SqlSession工厂对象获取SqlSession对象
        SqlSession sqlSession=sqlSessionFactory.openSession();
        //执行映射配置文件中的sql语句,并接收结果
        User user = new User(5,"134252345","223461","1","1","1","1","1","1","1");
        int result=sqlSession.update("update",user);
        //提交事务
        sqlSession.commit();
        //处理结果
        System.out.println(result);
        //释放资源
        sqlSession.close();
        is.close();
    }

删除功能

<delect>:删除功能标签

属性

  • id:唯一标识
  • resultType;指定结果的对象类型
  • parameterType:指定参数映射的对象类型

SQL获取参数

  • #{属性名}
    @Test
    public void delete() throws IOException {
        //加载核心配置文件
        InputStream is = Resources.getResourceAsStream("UserConfig.xml");
        //获取SqlSession工厂对象
        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(is);
        //通过SqlSession工厂对象获取SqlSession对象
        SqlSession sqlSession=sqlSessionFactory.openSession();
        //执行映射配置文件中的sql语句,并接收结果
        int result=sqlSession.delete("delete",3);
        //提交事务
        sqlSession.commit();
        //处理结果
        System.out.println(result);
        //释放资源
        sqlSession.close();
        is.close();
    }

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

明里灰

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

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

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

打赏作者

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

抵扣说明:

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

余额充值