达梦数据库应用开发_MyBatis-Plus框架介绍_yxy

1 MyBatis-Plus框架是什么?

MyBatis-Plus(简称 MP )是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

MyBatis-Plus封装了大量的基础 SQL 操作,无需编写大量的 XML 映射文件和 SQL 语句,简化了数据层操作;

2 MyBatis-Plus框架基本使用

2.1 依赖包导入

下载链接
JAVA_Mybatis_Plus_lib.zip
在这里插入图片描述

2.2 开发示例_基础绑定参数示例

2.2.1 初始化数据库表

CREATE TABLE "JAVA_MYBATISPLUS_TABLE"
(
"ID" INT,
"NAME" VARCHAR(50) NOT NULL);

2.2.2 构建相关包结构

在这里插入图片描述

2.2.3 主配置文件

书写 MyBatis-plus 的主配置文件:mybatis-config.xml,存放 src 目录下

<?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>
    <!-- <!– 引入 db.properties 文件 –> -->
    <properties resource="jdbc.properties"></properties>
    
     <!--配置接口-->
    <typeAliases>
        <package name="dm_04.dao"/>
    </typeAliases>
    
    <!-- 配置 mybatis 运行环境-->
    <environments default="development">
        <environment id="development">
            <!-- 配置事务管理,采用 JDBC 的事务管理 -->
            <transactionManager type="JDBC" />
            <!-- POOLED:mybatis 自带的数据源,JNDI:基于 Tomcat 的数据源 -->
            <!--使用 DB.properties-->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    <!-- 将 mapper 文件加入到配置文件中 mapper 文件是写 SQL 语句的文件 -->
    <mappers>
        <!--普通数据的增删改查/-->
        
        <mapper resource="dm_04/dao/Java_MyBatisPlus_Mapper.xml" />
        
    </mappers>
</configuration>


src 目录下添加 jdbc.properties 配置文件

jdbc.driver=dm.jdbc.driver.DmDriver
jdbc.url=jdbc:dm://localhost:5236
jdbc.username=SYSDBA
jdbc.password=*****

2.2.5 实体类POJO

创建跟数据库表对应的实体类

package dm_04.pojo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;

@TableName("JAVA_MYBATISPLUS_TABLE")
public class Java_MyBatisPlus {
	@TableField("ID")
	private Integer ID;
	
	@TableField("NAME")
	private String NAME;
	
	public int getID() {
		return ID;
	}
	public void setID(Integer ID) {
		this.ID = ID;
	}
	public String getNAME() {
		return NAME;
	}
	public void setNAME(String NAME) {
		this.NAME = NAME;
	}
	public Java_MyBatisPlus(Integer ID, String NAME) {
		super();
		this.ID = ID;
		this.NAME = NAME;
	}
	public Java_MyBatisPlus() {
		super();
	}
	@Override
	public String toString() {
		return "Java_MyBatisPlus [ID=" + ID + ", NAME=" + NAME + "]";
	}
}


@TableName(“JAVA_MYBATISPLUS_TABLE”),表示实体类对应的是数据库JAVA_MYBATISPLUS_TABLE表
@TableField(“ID”),表示对应的是数据库列名

2.2.6 数据访问层

接口

dm_04/Java_MyBatisPlus_Mapper.java

package dm_04.dao;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import dm_04.pojo.Java_MyBatisPlus;

@Mapper
public interface Java_MyBatisPlus_Mapper extends BaseMapper<Java_MyBatisPlus>{
}

接口中不用写任何方法

对应配置文件
<?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="dm_04.dao.Java_MyBatisPlus_Mapper">
</mapper>                                 

配置文件也不用写任何sql语句

2.2.7 创建测试类,开始测试

package dm_04.test;

import java.io.InputStream;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;
import com.baomidou.mybatisplus.core.MybatisSqlSessionFactoryBuilder;
import dm_04.dao.Java_MyBatisPlus_Mapper;
import dm_04.pojo.Java_MyBatisPlus;

public class Test_MyBatisPlus {
	
	    SqlSession sqlSession = null;
	    Java_MyBatisPlus_Mapper java_MyBatisPlus_Mapper = null;
	    public void init() {
	        try {
	            //1. 生成 sqlsession factory biulder 对象
	            MybatisSqlSessionFactoryBuilder builder = new MybatisSqlSessionFactoryBuilder();
	            //2. 加载配置文件作为一个输入流
	            InputStream resourceAsStream =
	                    Resources.getResourceAsStream("mybatis-config.xml");
	            SqlSessionFactory factory = builder.build(resourceAsStream);
	            //这里 Resources 使用的包是 ibatis 包
	            //3. 通过会话工厂构造器对象和配置文件流构建一个会话构造工厂
	            //4. 通过 SQL 会话工厂 //true 设置 mybatis 事务自动提交
	            sqlSession = factory.openSession(true);
	            java_MyBatisPlus_Mapper = sqlSession.getMapper(Java_MyBatisPlus_Mapper.class);
	        }catch (Exception e){
	            e.printStackTrace();
	        }
	    }
	    //测试插入信息
	    @Test
	    public void testInstert(){
	    	java_MyBatisPlus_Mapper.insert((new Java_MyBatisPlus(1,"yxy01")));
	    }
	    
	    //测试修改信息
	    @Test
	    public void testUpdate(){
	    	Java_MyBatisPlus java_MyBatisPlus = java_MyBatisPlus_Mapper.selectById(1);
	    	java_MyBatisPlus.setNAME("yxy02");
	    	java_MyBatisPlus_Mapper.updateById(java_MyBatisPlus);
	    }
	    //测试根据 ID 查询指定人信息
	    @Test
	    public void testSelectById(){
	    	Java_MyBatisPlus java_MyBatisPlus = java_MyBatisPlus_Mapper.selectById(1);
	        System.out.println(java_MyBatisPlus);
	    }
	    //测试全查
	    @Test
	    public void testSelectAll(){
	        List<Java_MyBatisPlus> selectList = java_MyBatisPlus_Mapper.selectList(null);
	        for(Java_MyBatisPlus p: selectList){
	            System.out.println(p);
	        }
	    }
	    //测试删除
	    @Test
	    public  void testDelete(){
	    	java_MyBatisPlus_Mapper.deleteById(1);
	    }
	    //测试增删改查
	    public static void main(String[] args) {
	    	Test_MyBatisPlus test = new Test_MyBatisPlus();
	        test.init();
	        test.testInstert();
	        test.testSelectById();
	        test.testUpdate();
	        test.testSelectAll();
	        test.testDelete();
	    }
}

2.2.8 打印出结果为

Java_MyBatisPlus [ID=1, NAME=yxy01]
Java_MyBatisPlus [ID=1, NAME=yxy02]

2.3 开发示例_大字段操作示例

2.3.1 创建大字段类型的表

CREATE TABLE JAVA_MYBATISPLUS_BIGDATA_TABLE
(
"ID" INT IDENTITY(1, 1) NOT NULL,
"PHOTO" IMAGE,
"DESCRIBE" BLOB,
"TXT" CLOB,
NOT CLUSTER PRIMARY KEY("ID")) ;

2.3.2 准备测试文件

本地准备两个大文件进行测试
在这里插入图片描述

2.3.3 主配置文件

修改 MyBatis 的主配置文件:mybatis-config.xml
加入大字段操作的配置文件
在这里插入图片描述

2.3.4 大字段对应实体类POJO

Java_MyBatisPlus_BigData.java

package dm_04.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

@TableName("JAVA_MYBATISPLUS_BIGDATA_TABLE")
public class Java_MyBatisPlus_BigData {
	@TableId(value = "id",type = IdType.AUTO)
	private Integer id;
	
	@TableField("PHOTO")
	private byte[] photo; //mybatis将 Image 和Blob 映射成byte[]
	
	@TableField("DESCRIBE")
	private byte[] describe;
	
	@TableField("TXT")
	private String txt; //mybatis 将 Clob 映射成 String
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public byte[] getPhoto() {
		return photo;
	}
	public void setPhoto(byte[] photo) {
		this.photo = photo;
	}
	public byte[] getDescribe() {
		return describe;
	}
	public void setDescribe(byte[] describe) {
		this.describe = describe;
	}
	public String getTxt() {
		return txt;
	}
	public void setTxt(String txt) {
		this.txt = txt;
	}
	@Override
	public String toString() {
		return "Java_MyBatisPlus_BigData [id=" + id + ", txt=" + txt + "]";
	}
	public Java_MyBatisPlus_BigData(Integer id, byte[] photo, byte[] describe, String txt) {
		super();
		this.id = id;
		this.photo = photo;
		this.describe = describe;
		this.txt = txt;
	}
	public Java_MyBatisPlus_BigData() {
		super();
	}
}

2.3.5 数据访问层

接口

Java_MyBatisPlus_BigData_Mapper.java

package dm_04.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;


import dm_04.pojo.Java_MyBatisPlus_BigData;

public interface Java_MyBatisPlus_BigData_Mapper extends BaseMapper<Java_MyBatisPlus_BigData>{
}
对应配置文件

Java_MyBatisPlus_BigData_Mapper.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="dm_04.dao.Java_MyBatisPlus_BigData_Mapper">
</mapper>

2.3.6 大字段数据测试类

Test_MyBatisPlus_BigData.java

package dm_04.test;
import java.io.*;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.*;
import com.baomidou.mybatisplus.core.MybatisSqlSessionFactoryBuilder;
import dm_04.dao.Java_MyBatisPlus_BigData_Mapper;
import dm_04.pojo.Java_MyBatisPlus_BigData;


public class Test_MyBatisPlus_BigData {
	    SqlSession sqlSession = null;
	    Java_MyBatisPlus_BigData_Mapper bigDataMapper = null;
	    public void init() {
	        try {
	        //1. 生成 sqlsession factory biulder 对象
	        MybatisSqlSessionFactoryBuilder sfb = new MybatisSqlSessionFactoryBuilder();
	        //2. 加载配置文件作为一个输入流
	        //这里 Resources 使用的包是 ibatis 包
	        InputStream resourceAsStream;
	            resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");
	        //3. 通过会话工厂构造器对象和配置文件流构建一个会话构造工厂
	        SqlSessionFactory factory = sfb.build(resourceAsStream);
	        //4. 通过 SQL 会话工厂 //true 设置 mybatis 事务自动提交
	        sqlSession = factory.openSession(true);
	        bigDataMapper = sqlSession.getMapper(Java_MyBatisPlus_BigData_Mapper.class);
	        resourceAsStream.close();
	        } catch (IOException e) {
	            e.printStackTrace();
	        }
	    }
	
	    //测试插入大字段表
	    private void testInsert() {
	        try {
	        String filePath = "D:\\DM\\test\\java20250225\\photo_test.jpg";
	        File file = new File(filePath);
	        String filePath2 = "D:\\DM\\test\\java20250225\\clob_test.txt";
	        File file2 = new File(filePath2);
	        InputStream in;
	        in = new BufferedInputStream(new FileInputStream(file));
	        byte[] bytes1 = new byte[102400];
	        byte[] bytes2 = new byte[102400];
	        in.read(bytes1);
	        InputStream in2 = new BufferedInputStream(new FileInputStream(file));
	        in2.read(bytes2);
	        BufferedReader reader = new BufferedReader(new InputStreamReader
	                (new FileInputStream(file2),"UTF-8"));
	        StringBuffer stringBuffer = new StringBuffer("");
	        String str = null;
	        while((str = reader.readLine())!=null) {
	            stringBuffer.append(str);
	            stringBuffer.append("\n");
	        }
	        Java_MyBatisPlus_BigData java_MyBatisPlus_BigData = new Java_MyBatisPlus_BigData(null,bytes1,bytes2,stringBuffer.toString());
	        bigDataMapper.insert(java_MyBatisPlus_BigData);
	        in.close();
	        in2.close();
	        reader.close();
	        } catch (FileNotFoundException e) {
	            e.printStackTrace();
	        } catch (UnsupportedEncodingException e) {
	            e.printStackTrace();
	        } catch (IOException e) {
	            e.printStackTrace();
	        }
	    }
	    //测试查询大字段表
	    private void testSelect() {
	        List<Java_MyBatisPlus_BigData> list = bigDataMapper.selectList(null);
	        try {
	            for(Java_MyBatisPlus_BigData big:list) {
	                //打印出id
	                System.out.println("id = "+big.getId());
	                //将 photo 列信息输出到指定路径
	                FileOutputStream fos = new FileOutputStream("D:\\DM\\test\\java20250225\\"+big.getId()+"_photo_test.jpg");
	                fos.write(big.getPhoto());
	                //将 describe 列信息输出到指定路径
	                FileOutputStream fos2 = new FileOutputStream("D:\\DM\\test\\java20250225\\"+big.getId()+"_Blob_photo_test.jpg");
	                fos2.write(big.getDescribe());
	                //将 photo 列信息输出到控制台
	                System.out.println("txt="+big.getTxt());
	                fos.close();
	                fos2.close();
	            }
	        } catch (FileNotFoundException e) {
	            e.printStackTrace();
	        } catch (IOException e) {
	            e.printStackTrace();
	        }
	    }
	    public static void main(String[] args) {
	    	Test_MyBatisPlus_BigData test = new Test_MyBatisPlus_BigData();
	        test.init();
	        test.testInsert();
	        test.testSelect();
	    }

}

2.3.7 打印结果

id = 1
txt=clob_test.txt文本

//1.插入大字段信息:  
    package java_jdbc;
    import java.io.BufferedInputStream;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.UnsupportedEncodingException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    public class jdbc_operate_bigData{
        // 定义 DM JDBC 驱动串
        static String jdbcString = "dm.jdbc.driver.DmDriver";
        // 定义 DM URL 连接串
        ............

输出文件为
在这里插入图片描述

下一篇
达梦数据库应用开发_Spring框架_yxy


更多其他数据库相关专栏:

1.数据库优化
数据库优化基本思路、索引详解、执行计划、统计信息、CBO原理、单表优化、多表优化、分布式优化、子查询、优化案例等
数据库优化(sql优化)专栏连接

2.达梦分布式数据库:
部署详细步骤(DEM)、备份还原实战、核心特性理解、使用心得、表分区方式详细介绍、表分区最佳实践、DPC架构详解等
达梦分布式DPC专栏连接

3.应用开发类
jdbc、hibernate、ibatis、mybatis、MyBatis-Plus、Spring、中间件mycat、Sharding-JDBC等
达梦数据库应用开发专栏连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值