mybatis框架学习 笔记

一、mybatis框架介绍

一个框架,早期叫做ibatis,代码在github

mybatis是MyBatis SQL Mapper Framework for Java (sql映射框架)

sql mapper:sql映射,可以把数据库中的一行数据,映射成一个java对象,操作这个对象就可以操作数据库中的数据。

mybatis提供了哪些功能:

1.提供创建Connection,Statement,ResultSet的功能。

2.提供执行sql语句的能力。

3.提供循环sql,把sql的结果转为java对象,List集合的能力。

4.提供关闭资源的能力,不用你关闭Connection,Statement,ResultSet。

总结:mybatis是一个sql映射框架,提供数据库的操作能力,增强的jdbc。

二、搭建mybatis

第一步:创建mysql数据库和表,创建student学生表,id,name,email,age。

第二步:在IDEA中创建maven项目

 第三步:加入maven的pom.xml文件中加入mybatis坐标,mysql驱动坐标

在<dependencies>标签中加入依赖

<!--mybatis坐标依赖-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.1</version>
    </dependency>
    <!--sql驱动-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.9</version>
    </dependency>

在pom.xml文件<build>标签中加入以下代码

作用:mybatis默认只把java文件夹里.java文件拷贝到target里,加上以下代码,可以把其他文件一并考到target里

 <resources>
      <resource>
        <directory>src/main/java</directory><!--所在目录-->
        <includes><!--包括目录下的.properties,.xml文件都会扫描到-->
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>false</filtering>
      </resource>

第四步:创建实体类,Student,保存表中的一行数据

创建Student类,生成set和get方法从写toString方法

第五步:创建持久层的dao接口,定义操作数据库的方法

第六步:创建一个mybatis使用的配置文件,sql映射文件,写sql语句的,一般一个表一个sql映射文件

创建StudentDao.xml数据库映射文件

1.在接口所在的目录中创建

2.文件名称和接口名保持一致

  第七步:创建mybatis的主配置文件,一个项目就一个主配置文件,配置文件提供数据库的连接信息,和sql映射文件的位置

1.主配置文件在resources资源文件夹里

2.主配置文件主要定义了数据库的配置信息,sql映射文件的位置

<?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>
    <!--settings:控制mybatis全局行为-->
    <settings>
        <!--设置mybatis输出日志-->
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>


    <!--环境配置:数据库的连接信息-->
    <!--default:必须和某个environment id值一致
                告诉mybatis使用哪个数据库的连接信息,也就是访问哪个数据库
    -->
    <environments default="mydev">
        <!-- environments:一个数据库信息的配置,环境
             id:一个唯一值,自定义,表示环境的名称
        -->
        <environment id="mydev">
            <!-- transactionManager :mybatis的事务类型
            type:JDBC(表示使用jdbc中的Connection对象的commit,rollback做事务处理)
                MANAGED(把mybatis的事务处理委托给其他的容器,如(一个服务器软件,一个框架spring))
            -->
            <transactionManager type="JDBC"/>
            <!--dataSource:表示数据源,连接数据库,java体系中,规定实现了javax.sql.DataSource接口的都是数据源
                            数据源表示Connection对象。
            type:表示数据源的类型,
            POOLED:表示使用连接池,mybatis会创建PooledDataSource类
            UPOOLED:不适用连接池,每次执行sql语句时,先创建连接,执行sql,在关闭连接,
                    mybatis会创建一个UnPooledDataSource,管理Connection对象的使用。
            JNDI:java命名和目录服务器(windows注册表)
            -->
            <dataSource type="POOLED">
                <!--
                driver,url,username,password 是固定的,不能修改
                -->
                <!--driver数据库的驱动类名-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <!--连接数据库的url字符串-->
                <property name="url"
                          value="jdbc:mysql://localhost:3306/bjpowernode?useSSL=false&amp;serverTimezone=UTC&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="333"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--一个mapper标签指定一个文件的位置。
            从类路径开始的路径信息。  target/clasess
            -->
        <mapper resource="com\bjpowrenode\dao\StudentDao.xml"/>
    </mappers>
</configuration>
        <!--
url里:
1.useSSL=false:
MySQL在高版本需要指明是否进行SSL连接
   true 需要连接
   false 不需要连接
2.serverTimezone=UTC:
在设定时区的时候,如果设定serverTimezone=UTC,会比中国时间早8个小时,
如果在中国,可以选择Asia/Shanghai或者Asia/Hongkong,例如:
        url:jdbc:mysql://localhost:3306/mango?serverTimezone=Asia/Shanghai
3.useUnicode=true&amp;characterEncoding=utf-8:
 例如:mysql数据库用的是gbk编码,而项目数据库用的是utf-8编码。这时候如果添加了useUnicode=true&characterEncoding=UTF-8 ,那么作用有如下两个方面:
    存数据时:
     数据库在存放项目数据的时候会先用UTF-8格式将数据解码成字节码,然后再将解码后的字节码重新使用GBK编码存放到数据库中。
    取数据时:
      在从数据库中取数据的时候,数据库会先将数据库中的数据按GBK格式解码成字节码,然后再将解码后的字节码重新按UTF-8格式编码数据,最后再将数据返回给客户端。
4.?与&amp是什么意思?
'?'符号是在URL后通过get方法传递参数的起始标志,多个参数之间可用'&'符号连接,因为这些字符对于HTML有特殊意义,
所以在Java中要用到转义字符使用它,而&amp;在HTML中就会被转义为'&'符号,用于参数连接。

-->











 第八步:创建一个测试程序,查询表中所有的人员信息

 注意,2020版本IDEA兼容Maven3.6.3以下版本

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是MyBatis框架学习笔记MyBatis是一种基于Java的持久层框架,它通过XML描述符或注解将对象映射到数据库中。它提供了自定义SQL、存储过程和高级映射等功能,使得开发人员可以更加灵活地控制SQL语句的执行过程。 MyBatis的核心组件包括SqlSessionFactory、SqlSession和Mapper。其中,SqlSessionFactory是MyBatis的核心接口,它负责创建SqlSession对象。SqlSession是MyBatis的核心类,它提供了执行SQL语句、获取Mapper接口等功能。Mapper是MyBatis的映射器接口,它定义了SQL语句和Java方法之间的映射关系。 MyBatis的优点包括: 1. 灵活性高:MyBatis提供了自定义SQL、存储过程和高级映射等功能,使得开发人员可以更加灵活地控制SQL语句的执行过程。 2. 易于使用:MyBatis的API简单易用,开发人员可以快速上手。 3. 易于维护:MyBatis的SQL语句和Java方法之间的映射关系清晰明了,易于维护。 4. 性能高:MyBatis采用了预编译和缓存等技术,可以提高SQL语句的执行效率。 以下是一个使用MyBatis框架Java代码示例: ```java // 创建SqlSessionFactory对象 String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); // 创建SqlSession对象 SqlSession sqlSession = sqlSessionFactory.openSession(); try { // 获取Mapper接口 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); // 执行SQL语句 User user = userMapper.selectUserById(1); // 输出结果 System.out.println(user); } finally { // 关闭SqlSession对象 sqlSession.close(); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

没有腰的嘟嘟嘟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值