第一个Mybatis程序

Mybatis概述

一个持久层框架。
注意:

所有的持久层框架,都是基于JDBC的基础上进行封装的。

比较

Hibernate

可以对JDBC进行高度封装,不用编写Sql,即:可 映射 操作数据库。
可以针对复杂的多表关系,可以方便关联操作。

优点擅长处理多边关系
缺点不擅长处理复杂的多边关系

例:OA、政府档案、数据管理系统。

JDBC
优点单个操作效率高
缺点参数传递、返回值的封装
Mybatis

针对JDBC进行完美封装,保留了JDBC的Sql编写方式,优化了参数绑定和返回值的封装。
例:电商、金融项目。

Mybatis主体架构

在这里插入图片描述

Mybatis编写过程

  1. 创建项目,导入Jar包。
  2. 编写SqlMapConfig.xml配置文件,编写数据库的连接配置。
  3. 测试数据库是否连接正常。
  4. 编写Mapper.xml。
  5. 测试sql执行是否正常。
第一个Mybatis程序

创建项目,在src下创建lib文件夹,导入jar包。
在这里插入图片描述
在src根目录下创建xml文件,命名为SqlMapConfig.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">
            <!-- 默认JDBC的事务管理取消了单条sql的自动提交-->
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="mapper/StudentMapper.xml"/>
    </mappers>
</configuration>

在src下创建test文件夹,创建测试类进行测试。

public class test1 {
    @Test
    public void test1() throws IOException {
//        1.先获取会话工厂构造器
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
//        指定连接配置文件
        InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
//        2.根据构造器,构造会话工厂
        SqlSessionFactory factory = builder.build(is);
//        3.开启连接会话
        SqlSession session = factory.openSession();
        System.out.println("连接:\n"+session);
    }
  }

与数据库连接成功,输出地址。
在这里插入图片描述
选择操作的数据表,创建实体类。
创建方式如下,bean中创建实体类Student;
在这里插入图片描述
这里的构造方法是根据操作进行调整。

package com.zegj.bean;


public class Student {

    //属性的封装
    private int id;
    private String name;
    private String sex;
    private int age;

    //get and set
    public int getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", age=" + age +
                '}';
    }

    public Student(String name, String sex, int age) {
        this.name = name;
        this.sex = sex;
        this.age = age;
    }

    public Student(String name, String sex, int age, int id) {
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.id = id;
    }

    public Student(int id, String name, String sex, int age) {
        this.id = id;
        this.name = name;
        this.sex = sex;
        this.age = age;
    }

    public Student() {
    }
}

在src下创建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="StudentMapper">
	<!--增加-->
    <insert id="addStu" parameterType="com.zegj.bean.Student">
        insert into tb_student(name,sex,age) values (#{name},#{sex},#{age})
    </insert>

    <!--删除-->
    <delete id="delStu" parameterType="java.lang.Integer">
        delete from tb_student where id=#{id}
    </delete>

	<!--修改-->
    <update id="updStu" parameterType="com.zegj.bean.Student">
        update tb_student set name=#{name},sex=#{sex},age=#{age} where id = #{id}
    </update>
    
    <!--查询-->
    <select id="findStuById" parameterType="Integer" resultType="com.zegj.bean.Student">
        select * from tb_student where id=#{id}
    </select>
</mapper>
数据治理是确保数据准确性、可靠性、安全性、可用性和完整性的体系和框架。它定义了组织内部如何使用、存储、保护和共享数据的规则和流程。数据治理的重要性随着数字化转型的加速而日益凸显,它能够提高决策效率、增强业务竞争力、降低风险,并促进业务创新。有效的数据治理体系可以确保数据在采集、存储、处理、共享和保护等环节的合规性和有效性。 数据质量管理是数据治理中的关键环节,它涉及数据质量评估、数据清洗、标准化和监控。高质量的数据能够提升业务决策的准确性,优化业务流程,并挖掘潜在的商业价值。随着大数据和人工智能技术的发展,数据质量管理在确保数据准确性和可靠性方面的作用愈发重要。企业需要建立完善的数据质量管理和校验机制,并通过数据清洗和标准化提高数据质量。 数据安全与隐私保护是数据治理中的另一个重要领域。随着数据量的快速增长和互联网技术的迅速发展,数据安全与隐私保护面临前所未有的挑战。企业需要加强数据安全与隐私保护的法律法规和技术手段,采用数据加密、脱敏和备份恢复等技术手段,以及加强培训和教育,提高安全意识和技能水平。 数据流程管理与监控是确保数据质量、提高数据利用率、保护数据安全的重要环节。有效的数据流程管理可以确保数据流程的合规性和高效性,而实时监控则有助于及时发现并解决潜在问题。企业需要设计合理的数据流程架构,制定详细的数据管理流程规范,并运用数据审计和可视化技术手段进行监控。 数据资产管理是将数据视为组织的重要资产,通过有效的管理和利用,为组织带来经济价值。数据资产管理涵盖数据的整个生命周期,包括数据的创建、存储、处理、共享、使用和保护。它面临的挑战包括数据量的快速增长、数据类型的多样化和数据更新的迅速性。组织需要建立完善的数据管理体系,提高数据处理和分析能力,以应对这些挑战。同时,数据资产的分类与评估、共享与使用规范也是数据资产管理的重要组成部分,需要制定合理的标准和规范,确保数据共享的安全性和隐私保护,以及建立合理的利益分配和权益保障机制。
MyBatis 中使用临时表的方式和在普通 SQL 语句中使用临时表的方式是一样的。 首先需要在 SQL 语句中创建临时表,然后再进行相关操作。下面以 MySQL 数据库为例,演示如何在 MyBatis 中使用临时表。 1. 创建临时表 在 MySQL 中,可以使用以下语句创建临时表: ```sql CREATE TEMPORARY TABLE temp_table ( id INT PRIMARY KEY, name VARCHAR(20) ); ``` 2. 在 MyBatis 中使用临时表 首先,在 MyBatis 的 Mapper 文件中定义 SQL 语句,并将创建临时表的 SQL 语句和相关操作的 SQL 语句写在一起,例如: ```xml <mapper namespace="com.example.mapper.TempTableMapper"> <select id="queryTempTable" resultType="java.util.Map"> <![CDATA[ CREATE TEMPORARY TABLE temp_table ( id INT PRIMARY KEY, name VARCHAR(20) ); INSERT INTO temp_table (id, name) VALUES (1, '张三'); INSERT INTO temp_table (id, name) VALUES (2, '李四'); SELECT * FROM temp_table; ]]> </select> </mapper> ``` 在上面的例子中,先创建了一个临时表 `temp_table`,然后插入了两条数据,最后查询了整个表。 3. 调用 Mapper 方法执行 SQL 语句 在 Java 代码中,调用 Mapper 方法执行 SQL 语句即可,例如: ```java public interface TempTableMapper { List<Map<String, Object>> queryTempTable(); } public class MyBatisTest { public static void main(String[] args) { SqlSession sqlSession = MyBatisUtil.getSqlSession(); TempTableMapper tempTableMapper = sqlSession.getMapper(TempTableMapper.class); List<Map<String, Object>> resultList = tempTableMapper.queryTempTable(); System.out.println(resultList); sqlSession.close(); } } ``` 最后,执行 Java 代码即可看到查询结果。需要注意的是,在 MyBatis 中创建的临时表只在当前的会话中存在,在会话关闭时会自动删除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值