专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

ORM框架Mybatis基础环境搭建

什么是Mybatis

  • Apahce的⼀个开源项⽬
  • ⼀款优秀的持久层框架,它⽀持⾃定义 SQL、存储过程以及⾼级映射
  • 免除了⼏乎所有的 JDBC 代码以及设置参数和获取结果集的⼯作
  • 通过简单的 XML 或注解来配置和映射 Java对象 到 数据库中的记录
  • 官⽅地址:mybatis.org/mybatis-3/

Mybatis的核心流程

  • 每个基于 MyBatis 的应⽤都是以⼀个 SqlSessionFactory 的实例为核⼼
  • SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得
  • SqlSessionFactoryBuilder 可以从 XML 配置⽂件或⼀个预先配置的 Configuration 实例来构建出 SqlSessionFactory 实例
  • ⼯⼚设计模式⾥⾯ 需要获取SqlSession ,⾥⾯提供了在数据库执⾏ SQL 命令所需的所有⽅法

81_1.png

环境搭建

导入依赖

    <dependencies>
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.4</version>
    </dependency>
    <!-- 使⽤JDBC链接mysql的驱动-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.19</version>
    </dependency>
    </dependencies>

接下来就是重点,需要在resources里面新建一个xml文件,配置mybatis的设置以及mapper映射 配置config

<?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>
    <!--固定写法-->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/xdclass?serverTimezone=GMT&useUnicode=true&characterEncoding=utf-8&useSSL=false"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/VideoMapper.xml"></mapper>
    </mappers>

</configuration>

测试查询

配置mapper

<?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:名称空间,一般需要保持全局唯一,最好是和dao层的java接口一致
可以映射sql语句到对应的方法名称和参数,返回类型
mybatis使用接口动态代理
-->
<mapper namespace="cn.junko.dao.VideoMapper">
    <!--
    resultType:sql查询结果集的封装
    -->
    <select id="selectById" resultType="cn.junko.domain.Video">
        select * from video where id=#{id}
    </select>
</mapper>

编写实体类与mapper接口

//实体类
public class Video {
    private Integer id;
    private String title;
    private String summary;
    private String coverImg;
    private Integer price;
    private Date createTime;
    private Integer cid;
    private Double point;
//setter getter toString

//接口
public interface VideoMapper {

    //为了规范,一般会用@Param起别名,否则容易报错找不到参数
    Video selectById(@Param("id") int id);
}

编写实现类

public class sqlTest {
    @Test
    public void begin() throws IOException {
        InputStream resourceAsStream = Resources.getResourceAsStream("config/mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        VideoMapper videoMapper = sqlSession.getMapper(VideoMapper.class);
        Video video = videoMapper.selectById(31);
        System.out.println(video);
    }

81_2.png

这里createTime=null, cid=null是由于实体类的驼峰命名与数据库的下划线命名不对应,因此没有将数据成功封装上去 例如实体类的是createImg,而数据库的为create_img

在运行的过程中,我这里报了一个错误

因为安装mysql的时候时区设置的不正确 mysql默认的是美国的时区,而我们中国大陆要比他们迟8小时,采用+8:00格式 You must configure either the server or JDBC driver (via the 'serverTimezone' configuration property) to use a more specifc time zone value if you want to utilize time zone support. 这是由于数据库和系统时区差异所造成的,在jdbc连接的url后面加上serverTimezone=GMT即可解决问题,如果需要使用gmt+8时区,需要写成GMT%2B8,否则会被解析为空。再一个解决办法就是使用低版本的MySQL jdbc驱动,5.1.28不会存在时区的问题。

使用注解测试

81_3.png实现类方法不变,直接调用一样可以获得数据,这样的写法简化了xml的配置操作,在进行简单的查询操作使用注解十分便捷

文章永久链接:https://tech.souyunku.com/27222

未经允许不得转载:搜云库技术团队 » ORM框架Mybatis基础环境搭建

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们