Maven+mybatis

maven:使用java语言编写的基于项目对象模型的项目管理工具软件

maven的仓库:中央仓库,本地仓库,镜像仓库

maven的资源坐标:

GroupId:一般是逆向公司域名com.zrt

ArtifactId:一般是项目(jar)名mysql-connector-java.

Version:版本号8.0.28

框架:

重复基础代码封装,同时添加额外功能

Mybatis:

持久层框架(数据库连接框架),ORM框架(对象/关系 映射)

1.创建数据库表

2.创建maven项目

3.添加依赖

在pol.xml文件中配置

XML 复制代码
<dependencies>
    <!-- mysql驱动的依赖 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.28</version>
    </dependency>

    <!-- Mybatis依赖 -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.6</version>
    </dependency>
</dependencies>

4.创建mybatis全局配置文件

在resources文件中配置xml文件

XML 复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
//环境配置
    <environments default="mysql">//默认链接mysql
        <environment id="mysql">
            <transactionManager type="JBDC"></transactionManager>//事务处理jdbc/manager
            <dataSource type="POOLED">//数据源信息UNPOOLED/POOLED/JNDI(POOLED 数据库连接池,数据库连接请求频率高就要用到)
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/bookmanager?useSSL=false&amp;serverTimezone=UTC&amp;allowPublicKeyRetrieval=true"/>
                <property name="username" value="root"/>
                <property name="password" value="zrt20031002"/>
            </dataSource>
        </environment>
    </environments>
</configuration>

5.创建实体类

java 复制代码
//要和数据库中列明保持一致
public class Book {
    private int id;
    private String name;
    private String author;
    private double price;

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public String getAuthor() {
        return author;
    }

    public double getPrice() {
        return price;
    }

    public void setId(int id) {
        this.id = id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public Book(int id, String name, String author, double price) {
        this.id = id;
        this.name = name;
        this.author = author;
        this.price = price;
    }
}

6.创建映射文件

XML 复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper>
    <select id="selectAllBooks" resultType="com.zrt.pojo.Book">
        select * from t_book
    </select>
</mapper>

把映射文件放到mysatis配置文件中去,就能实现mysatis项目加载映射文件

XML 复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="mysql">
        <environment id="mysql">
            <transactionManager type="JBDC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/bookmanager?useSSL=false&amp;serverTimezone=UTC&amp;allowPublicKeyRetrieval=true"/>
                <property name="username" value="root"/>
                <property name="password" value="zrt20031002"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/BookMapper.xml"></mapper>
    </mappers>
</configuration>

7.编写测试类------自动项目

java 复制代码
package com.zrt.test;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class Test {
    public static void main(String[] args) throws IOException {
        //指定核心配置文件的路径:
        String resource = "mybatis.xml";
        //获取加载配置文件的一个输入流:
        InputStream inputStream = Resources.getResourceAsStream(resource);
        //加载配置文件,创建工厂类
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //通过工厂类获取一个会话:
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //执行查询语句
        List<com.zrt.pojo.Book> list = sqlSession.selectList("a.b.selectAllBooks");
        //遍历:
        for (com.zrt.pojo.Book book : list) {
            System.out.println(book.getId() + "---" + book.getName() + "---" + book.getAuthor() + "---" + book.getPrice());
        }
            //关闭会话
        sqlSession.close();
    }
}
相关推荐
暖和_白开水7 小时前
数据分析agent (七):contextvars 模块上下文request_id
java·前端·数据分析
weixin_727535628 小时前
MinIO大文件上传深度拆解:从原理到生产落地的完整指南
java·中间件
摇滚侠9 小时前
Java 全栈开发实战教程 课程笔记 34-36
java·笔记
芝士熊爱编程9 小时前
创建型模式-单例模式
java·单例模式·设计模式
大模型码小白9 小时前
Spring AI 框架实战:Java 后端集成大模型的架构设计与工程落地
java·人工智能·python·spring
weixin_BYSJ19879 小时前
「课设设计」springboot校园超市助购系统26449 (附源码)
java·javascript·spring boot·python·django·flask·php
栋***t9 小时前
从“纸质试卷”到“AI智能组卷”,麦塔在线考试系统如何重构出题逻辑?
java·大数据·人工智能·算法·重构
CHANG_THE_WORLD10 小时前
深入理解递归:从函数调用到调用栈的完整执行过程
java·开发语言·算法
xexpertS10 小时前
CI/CD 熔断机制:如何通过编排级熔断器提升开发者效率
java·linux·运维
zy happy10 小时前
VMware虚拟机添加新的硬盘
java·linux·jvm·docker