首页 > 其他分享 >02 mybatis

02 mybatis

时间:2024-03-22 23:33:33浏览次数:23  
标签:02 return String products mybatis import com public

文章目录

product.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>

        <!--测试环境-->

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </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>
    
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
    
    <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/dict"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/ProductsMapper.xml"></mapper>
    </mappers>
</configuration>

mapper.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="com.aistart.tech.pojo.Products">
        insert into products (product_name,color,price)
        values (#{productName},#{color},#{price})
    </insert>

    <select id="selectOneById" parameterType="int" resultType="com.aistart.tech.pojo.Products">

        select * from products where product_id = #{id}

    </select>
</mapper>

pojo.products.java

package com.aistart.tech.pojo;


public class Products {

  private Integer productId;
  private String productName;
  private String brand;
  private double price;
  private String color;
  private String storageCapacity;
  private String description;


  public Integer getProductId() {
    return productId;
  }

  public void setProductId(Integer productId) {
    this.productId = productId;
  }


  public String getProductName() {
    return productName;
  }

  public void setProductName(String productName) {
    this.productName = productName;
  }


  public String getBrand() {
    return brand;
  }

  public void setBrand(String brand) {
    this.brand = brand;
  }


  public double getPrice() {
    return price;
  }

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


  public String getColor() {
    return color;
  }

  public void setColor(String color) {
    this.color = color;
  }


  public String getStorageCapacity() {
    return storageCapacity;
  }

  public void setStorageCapacity(String storageCapacity) {
    this.storageCapacity = storageCapacity;
  }


  public String getDescription() {
    return description;
  }

  public void setDescription(String description) {
    this.description = description;
  }


}

utils.DButil.java

package com.aistart.tech.utils;

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;


public class DButil {

    private static SqlSessionFactory sqlSessionFactory = null;

    static {
        //1.builder  一旦创建了 SqlSessionFactory,就不再需要它了
//        SqlSessionFactoryBuilder sqlSessionFactoryBuilder =

        //2.获取工厂

        // 获取资源 org.apache.ibatis.io.Resources;
        try {

            InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
            //根据资源文件创建工厂
            sqlSessionFactory  = new SqlSessionFactoryBuilder().build(inputStream);



        } catch (IOException e) {
            throw new RuntimeException(e);
        }


    }

    public static SqlSession getSqlSession(){

        //获得Sqlsession
        return sqlSessionFactory.openSession();

    }

    public static void close(SqlSession session){

        session.close();

    }


}

mapper.impl.ProductsMapperImpl.java

package com.aistart.tech.mapper.impl;

import com.aistart.tech.mapper.ProductsMapper;
import com.aistart.tech.pojo.Products;
import com.aistart.tech.utils.DButil;
import org.apache.ibatis.session.SqlSession;


public class ProductsMapperImpl implements ProductsMapper {
    @Override
    public int insertOne(Products products) {

        SqlSession sqlSession = DButil.getSqlSession();

        System.out.println(products.getProductName());

        int rows = sqlSession.insert("insertOne",products );

        sqlSession.commit();

        //关闭掉
        sqlSession.close();

        return rows;
    }

    @Override
    public Products selectOneById(int id) {

        SqlSession sqlSession = DButil.getSqlSession();

        Products one =(Products) sqlSession.selectOne("selectOneById", id);

        sqlSession.close();

        return one;
    }
}

test

package com.aistart.tech.mapper.impl;

import com.aistart.tech.mapper.ProductsMapper;
import com.aistart.tech.pojo.Products;
import org.junit.Test;

public class ProductsMapperImplTest {

    ProductsMapper mapper = new ProductsMapperImpl();

    @Test
    public void test(){
        Products products = mapper.selectOneById(1);

        System.out.println(products);


       products.setProductName("小米");
       products.setColor("红色");
       products.setPrice(200);

        System.out.println(products.getProductName());
        int rows = mapper.insertOne(products);
        System.out.println(rows);


    }
}

标签:02,return,String,products,mybatis,import,com,public
From: https://blog.csdn.net/m0_46695127/article/details/136953611

相关文章

  • 02 Statement和PreparedStatement
    文章目录StatementPreparedStatementStatement(1)相同的SQL语句,重复执行第n次,编译n次—效率低(2)Statementsql中的参数赋值直接通过字符串拼接,可能会有非法sql注入,导致数据泄露importjava.sql.*;importjava.util.Scanner;publicclassLogin{pu......
  • 今日总结2024/3/22
    今日复习了BFS的抽象用法,可以根据实际问题不断枚举所有可能Acwing1355.母亲的牛奶农夫约翰有三个容量分别为 A,B,C升的挤奶桶。最开始桶 A 和桶 B都是空的,而桶 C里装满了牛奶。有时,约翰会将牛奶从一个桶倒到另一个桶中,直到被倒入牛奶的桶满了或者倒出牛奶的桶空了为......
  • BUPT 2024 Spring Training #3(ICPC2023 杭州站)Ag复盘
    D-OperatorPrecedence求一个长度为\(2n\)的序列\(a_{2n}\)满足条件\((a_1×a_2)+(a_3×a_4)+\ldots+(a_{2n-1}×a_{2n})=a_1×(a_2+a_3)×\ldots×(a_{2n-2}+a_{2n-1})×a_{2n}\)solution构造题显然找特殊规律。考虑到乘法构造难度大于加法,可以从乘法开始考虑。......
  • 中考英语首字母快速突破014-2021上海徐汇英语二模-The Glamorous Life of TV Journali
    中考英语首字母快速突破014-2021上海徐汇英语二模-TheGlamorousLifeofTVJournalists-电视记者的风光生活PDF格式公众号回复关键字:ZKSZM014原文​HundredsofthousandsofpeopleoftenseetheirfacesontheTVscreen.Theymaybespeaking“live”from......
  • 2024-03-22
    \({\color{orange}\star}\)2024-03-22\({\color{orange}\star}\)模积和#题目描述#求\[\sum_{i=1}^{n}\sum_{j=1}^{m}(n\bmodi)\times(m\bmodj),i\neqj\]\(\bmod19940417\)的值#Solution#不妨设\(n\lem\)容斥原理\[\sum_{i=1}^{n}\sum_......
  • 不容错过的BUCK DCDC同步降压电路TPS563202
    1.TPS563202,优秀的17V转5V转3.3V降压DCDC电路参数优异,体积小,价格甚至比国产的还低,参数超过这个DCDC,价格低于这个DCDC的,请告知,国内器件厂家太多了,个人只了解一部分。12V转5V转3.3V转2.5V转1.8V都可以的。特点:标注3A,可输出3A电流,同步降压,无需外部肖特基输入电压范围:4.3V......
  • 20212217刘恒谦-Exp2 后门原理与实践
    实践过程记录使用netcat获取主机操作Shell,cron启动​ ncat即Netcat,可以收发传输层数据,由攻击者使用。cron是Linux中用于按计划执行脚本的工具,在网络对抗中让受害者连接不稳定时,重连攻击者,由受害者启动。​ 既然如此,受害者需要是Linux,否则没有cron命令,我购买了一台阿里云Ubuntu......
  • 机试重点题-2021/2023
    20215:由二叉树前々序列和中々序列得到后々序列列 #include<iostream>#include<unordered_map>usingnamespacestd;constintN=50010;intn;inta[N],b[N];//前序,中序unordered_map<int,int>p;voidbuild(intal,intar,intbl,intbr){if(al......
  • CCF软件能力认证202312-1——仓库规划
    问题描述西西艾弗岛上共有个仓库,依次编号为。每个仓库均有一个维向量的位置编码,用来表示仓库间的物流运转关系。具体来说,每个仓库均可能有一个上级仓库,满足:仓库位置编码的每一维均大于仓库位置编码的对应元素。比如编码为的仓库可以成为的上级,但不能成为的上级。如......
  • [周报]线性代数和SAM 2024年3月第3周
    算法笔记线性代数线代题不多,但是都很有些难度.当然OI中的线性代数存在很大程度上的"只取所需"的情况.高斯消元,线性(异或)基加上矩阵优化DP,基本上就是最多的一个运用了.高斯消元道理就是初中数学,解多元一次方程组.其实这种用方程组来理解线代是个挺直观的方法.比如向量张成......