Java框架_mybatis入门

本文介绍了Mybatis作为持久层ORM框架的基本概念,包括其半自动化特性。详细讲述了Mybatis的环境搭建步骤,如导入jar包并配置核心文件。此外,还提到了Mapper文件的配置,强调了数据库表与Java对象的映射关系,并指出测试环节的重要性。
摘要由CSDN通过智能技术生成

Mybatis框架简介

Mybatis 是持久层ORM(object relational mapping )半自动化框架

持久层指的是将内存中存储的数据转为数据库存储(持久化)的过程。

ORM 指的是将java中的object对象和表之间建立映射关系。

半自动化指的是,mybatis将制定sql部分和设计表部分交给使用者,内部处理了连接数据库,处理,包装对象等操作。

MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口 和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

Mybatis的环境搭建
导入jar包
  • 项目下新建一个bin文件夹 并导入需要的jar包

     需要核心jar包2个就行。其他可以不导入
    
  • 选中所有jar包,右键build path–>add to build path

在这里插入图片描述

配置核心文件

是一个xml文件,命名无要求,位置无要求,一般成为mybatis.xml,放在src路径下

  • 引入dtd,对xml进行约束

     <!DOCTYPE configuration  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
     "http://mybatis.org/dtd/mybatis-3-config.dtd">
    
  • 配置内容

<?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">
<!--mybatis的根标签,里面配置环境-->
<configuration>
    <!--环境 里面配置多个环境,default用来指定maybatis使用哪个环境 填环境的id来指定环境-->
    <environments default="dev">
        <!--环境
         id 属性 代表该环境的id,唯一标识
         里面配置了数据库的基本信息和数据库连接池的使用-->
        <environment id="dev">
            <!--事务管理器。 type属性,用来设置mybatis采用管理事务的方式 一般用JDBC 表示采用jdbc的管理方式-->
            <transactionManager type="JDBC" />
            <!--数据库连接池和连接参数的配置
                type属性 :用户是否设置连接池技术,(设置了用户也感觉不到。内部处理)
                            POOLED 代表mybatis采用连接池技术
            -->
            <dataSource type="POOLED">
                <property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
                <property name="url" value="jdbc:oracle:thin:@localhost:1521:xe"/>
                <property name="username" value="scott"/>
                <property name="password" value="TIGER"/>
            </dataSource>
        </environment>

    </environments>
    <!--配置sql的映射xml文件,mybatis通过该配置去寻找sql的执行文件-->
    <!--mybatis第一次加载就会把映射文件都加载进去。通过该文件存储一个namespace属性-->
    <mappers>
        <!--resource属性中定义文件的路径 包路径 报名+文件名-->
        <mapper resource="com/alion/mappers/SheetMapper.xml"></mapper>
    </mappers>
</configuration>
Mapper文件配置(sql执行映射文件)
  • 该路径和mybatis.xml中mapper 的resource属性要对应

配置文件中配置内容

<?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中有个namesapce属性,这个属性用来定义唯一的mapper文件,全局唯一,一般用包名+文件名-->
<mapper namespace="com.alion.mappers.SheetMappers">
    <!--标签代表执行的操作。id属性代表当前sql语句的唯一标识。后面通过该id来执行
    还有一个resultType 属性 表示结果类型。包名+类名,和反射相同
    -->
    <select id="select" resultType="com.alion.bean.MySheet">

    select * from my_sheet
    </select>
</mapper>

数据库的表要和对象对应

public class MySheet {
    private Integer id;
    private String name;
    private Integer age;
    private Date birthday;

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

最后进行测试

 public static void main(String[] args) throws IOException {
        //1、加载mybatis的全局配置文件 通过Resources方法 获取文件流
       InputStream is= Resources.getResourceAsStream("mybatis.xml");
        //2、构建SqlSessionFactory工厂。
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
        //根据工厂拿到sqlSession
         SqlSession sqlSession=factory.openSession();
        //通过Session中的方法去查询
        //参数 传入要执行的sql的对应唯一标识。namespace+id
        //返回参数通过 mapper中resultType指定了。
      List<MySheet> student= sqlSession.selectList("com.alion.mappers.SheetMappers.select");
      student.forEach(System.out::println);
        //关闭会话
        sqlSession.close();
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值