【博学谷学习记录】超强总结,用心分享|Mybatis知识week12

本文介绍了MyBatis的基本概念和使用方法,包括持久层的作用、MyBatis框架简介、如何在项目中引入MyBatis及MySQL依赖、配置日志、编写Mybatis核心配置文件、创建SQL映射文件、定义POJO类和测试用例。此外,还详细讲解了Mapper代理开发的步骤,包括编写Mapper接口、设置代理方式和执行查询操作。
摘要由CSDN通过智能技术生成

目录

Mybatis

1.Mybatis简介

1.1持久层

2.Mybatis入门使用

2.1在pom文件中导入mybatis坐标

为了我们跟方便的观察结果添加日志依赖

2.2编写Mybatis核心配置文件

2.2先编写sql映射文件

2.3编写好pojo类需要跟数据库的字段一一对应,设置好get和set方法。还有tostring

2.4在测试类方法中执行方法

3.Mapper代理开发

要求

3.1编写Mapper接口文件

3.2设置代理方式

3.3更改命名空间

3.4将之前的代码更改为接口代理的方式


Mybatis

1.Mybatis简介

是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

1.1持久层

java有3层架构:表现层、业务层还有持久层

表现层:也就是我们常说的web层,呈现给用户的界面,也就是用户在使用系统时所见所得的东西。

业务层:它负责业务逻辑处理,和我们开发项目的需求息息相关。web 层依赖业务层,但是业务层不依赖 web 层。

持久层:负责数据持久化,将数据保存到数据库的代码

2.Mybatis入门使用

2.1在pom文件中导入mybatis坐标

<dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.5</version>
</dependency>

还有mysql的坐标

 <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.46</version>
</dependency>

为了我们跟方便的观察结果添加日志依赖

<!-- 添加slf4j日志api -->
<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-api</artifactId>
   <version>1.7.20</version>
</dependency>
<!-- 添加logback-classic依赖 -->
<dependency>
   <groupId>ch.qos.logback</groupId>
   <artifactId>logback-classic</artifactId>
   <version>1.2.3</version>
 </dependency>
<!-- 添加logback-core依赖 -->
<dependency>
   <groupId>ch.qos.logback</groupId>
   <artifactId>logback-core</artifactId>
   <version>1.2.3</version>
 </dependency>

随后添加logback.xml文件到resource文件下

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!--
        CONSOLE :表示当前的日志信息是可以输出到控制台的。
    -->
    <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>[%level]  %cyan([%thread]) %boldGreen(%logger{15}) - %msg %n</pattern>
        </encoder>
    </appender>

    <logger name="com.itheima" level="DEBUG" additivity="false">
        <appender-ref ref="Console"/>
    </logger>


    <!--

      level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF
     , 默认debug
      <root>可以包含零个或多个<appender-ref>元素,标识这个输出位置将会被本日志级别控制。
      -->
    <root level="DEBUG">
        <appender-ref ref="Console"/>
    </root>
</configuration>

2.2编写Mybatis核心配置文件

mybatis-config.xml文件的编写

<?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>

    <typeAliases>
        <package name="com.itheima.pojo"/>
    </typeAliases>
    
    <!--
    environments:配置数据库连接环境信息。可以配置多个environment,通过default属性切换不同的environment
    -->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!--数据库连接信息-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql:///数据库名?useSSL=false"/>
                <property name="username" value="root"/>
                <property name="password" value="数据库连接密码"/>
            </dataSource>
        </environment>

    </environments>
    <mappers>
        <!--指定sql映射文件,加载sql映射文件-->
       <!-- <mapper resource="com/itheima/mapper/UserMapper.xml"/>-->

        <!--Mapper代理方式-->
        <package name="com.itheima.mapper"/>

    </mappers>
</configuration>

2.2先编写sql映射文件

<?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">

<!--
    namespace:名称空间
-->
<mapper namespace="test">
<!--id为唯一标识-->
    <select id="selectAll" resultType="user">
        select *
        from tb_user;
    </select>
    <select id="selectById" resultType="user">
        select *
        from tb_user where id = #{id};
    </select>
</mapper>

2.3编写好pojo类需要跟数据库的字段一一对应,设置好get和set方法。还有tostring

2.4在测试类方法中执行方法

//1.获取mybatis-config.xml配置文件,获取sqlSessionFacorty对象
//这些代码都是固定的
String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

//2.获取sqlSessionFacorty对象
SqlSession sqlSession = sqlSessionFactory.openSession();

//执行sql语句,可以获取到查询的内容
List<User> users = sqlSession.selectList("test.selectAll");

//将其进行打印
System.out.println(users);

//释放资源
sqlSession.close();

3.Mapper代理开发

要求

sql映射文件必须与Mapper接口同名而且报的文件名目录一致

sql映射文件的namespace属性为Mapper接口全名

在Mapper接口中定义方法,方法名就是sql映射文件中sql语句的id,需要保证参数类型还有返回值类型相同

该命名就可以直接映射到在命名空间中同名的映射器类,并将已映射的 select 语句匹配到对应名称、参数和返回类型的方法。在对应的映射器接口调用方法

3.1编写Mapper接口文件

public interface UserMapper{
    
    //查询所有数据
    List<User> selectAll();

}

3.2设置代理方式

3.3更改命名空间

 3.4将之前的代码更改为接口代理的方式

//1.获取mybatis-config.xml配置文件,获取sqlSessionFacorty对象
//这些代码都是固定的
String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

//2.获取sqlSessionFacorty对象
SqlSession sqlSession = sqlSessionFactory.openSession();

//获取UserMapper接口的代理对象
UserMapper userMapper = sqlSessopm.getMapper(UserMapper.class);

List<User> users = userMapper.selectAll();


//将其进行打印
System.out.println(users);

//释放资源
sqlSession.close();

执行方法后即可获得查询结果

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值