01 mybatis


https://github.com/mybatis/mybatis-3/tree/master

https://mybatis.net.cn/

products.sql

create table products
(
    product_id       int auto_increment comment '产品ID'
        primary key,
    product_name     varchar(100)   null comment '产品名称',
    brand            varchar(50)    null comment '品牌',
    price            decimal(10, 2) null comment '价格',
    color            varchar(20)    null comment '颜色',
    storage_capacity varchar(10)    null comment '存储容量',
    description      text           null comment '描述'
)
    comment '手机产品表';

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.aistat</groupId>
    <artifactId>mybatis_tech</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!--打包类型-->
    <packaging>jar</packaging>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <!--所有依赖-->
    <dependencies>

<!--        MySQL驱动-->
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>8.0.31</version>
        </dependency>

<!--        mybatis依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.15</version>
        </dependency>

    </dependencies>

</project>

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>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatisdb"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>

    <!--当写完mapper之后,应该注册到mappers当中,用于给factray执行-->
    <mappers>
        <mapper resource="mapper/ProductsMapper.xml"/>
    </mappers>
</configuration>

productsMapper.xml

<?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 namespace="mapper.ProductsMapper">

    <!--id作为这个sql的唯一id,调用也是通过它-->
    <insert id="insertOne" parameterType="java.lang.String">
        insert into products (product_name) values (#{name})
    </insert>
</mapper>

MybatisDemo

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.InputStream;


public class MybatisDemo {

    public static void main(String[] args) throws Exception{
        //1. 获取一个 SqlSessionFactoryBuilder

        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();

        //2. 从 XML 中构建 SqlSessionFactory

//   JDBC:     info.load(inputstram)

        //3.读取配置文件,并加载到sqlSessionFactoryBuilder
        InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");

        SqlSessionFactory factory = sqlSessionFactoryBuilder.build(resourceAsStream);

        //4.从 SqlSessionFactory 中获取 SqlSession

        //类似于一个开启了事务的手动关闭的connection

        SqlSession sqlSession = factory.openSession();

        //4.1创建sql语句和参数
        /*
        *
        * 变为了在xml中提前写好
        *
        *
        * 通过 namespeace+id的形式获取了一个带sql的statement
        * <mapper namespace="mapper.ProductsMapper">
            <!--id作为这个sql的唯一id,调用也是通过它-->
            <insert id="insertOne" parameterType="java.lang.String">
                insert into products (product_name) values (#{name})
            </insert>
        </mapper>
        * */
        //执行语句
        /*
        * 对应的增删查改的功能
        * */
        int rows = sqlSession.insert("mapper.ProductsMapper.insertOne","苹果");

        //4.3获取结果并解析

        System.out.println(rows);
        //5.应当手动提交sqlSession
        sqlSession.commit();

//        sqlSession.close();



        //
    }
}

相关推荐

  1. 01 mybatis

    2024-03-23 14:10:01       37 阅读
  2. MyBatis面试系列-01

    2024-03-23 14:10:01       40 阅读
  3. Mybatis-02

    2024-03-23 14:10:01       36 阅读
  4. MyBatis面试系列-02

    2024-03-23 14:10:01       40 阅读
  5. 09 mybatis 注解

    2024-03-23 14:10:01       36 阅读
  6. 06 mybatis </sql>

    2024-03-23 14:10:01       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-23 14:10:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-23 14:10:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-23 14:10:01       87 阅读
  4. Python语言-面向对象

    2024-03-23 14:10:01       96 阅读

热门阅读

  1. leetcode 402.移掉k位数字

    2024-03-23 14:10:01       39 阅读
  2. k8s通过编排文件,实现服务的滚动更新

    2024-03-23 14:10:01       40 阅读
  3. Kali linux基本命令大全

    2024-03-23 14:10:01       37 阅读
  4. WSL的ubuntu中如何安装node.js

    2024-03-23 14:10:01       40 阅读
  5. centos7 配置ip

    2024-03-23 14:10:01       47 阅读
  6. Android开发之CardView概述与分析

    2024-03-23 14:10:01       42 阅读
  7. Linux初学(五)正则表达式

    2024-03-23 14:10:01       43 阅读
  8. Ubuntu下采用VSCode调试C/C++ (1)

    2024-03-23 14:10:01       38 阅读
  9. 并行流实现两个double [][] 数组相加,加快速度

    2024-03-23 14:10:01       35 阅读
  10. 什么情况下要做艾森克人格测试?

    2024-03-23 14:10:01       37 阅读