Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >java ORM框架(二)

java ORM框架(二)

原创
作者头像
堕落飞鸟
发布于 2023-04-04 02:12:41
发布于 2023-04-04 02:12:41
31800
代码可运行
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏
运行总次数:0
代码可运行

MyBatis

MyBatis 是一个半自动 ORM 框架,它允许开发人员使用 XML 或注解配置 SQL 映射,从而实现将 Java 对象映射到关系型数据库中。

示例

以下是一个简单的 MyBatis 示例,它演示了如何使用 XML 配置文件将一个简单的 Java 对象映射到数据库表中。

首先,我们创建一个名为 Student 的 Java 类:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Student {
 
    private Long id;
    private String name;
    private int age;
 
    // Getters and setters
}

然后,我们创建一个名为 student.xml 的 XML 文件来配置我们的 SQL 映射:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?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="com.example.StudentMapper">
 
    <resultMap id="studentResultMap" type="Student">
        <id property="id" column="id" />
        <result property="name" column="name" />
        <result property="age" column="age" />
    </resultMap>
 
    <select id="getStudentById" resultMap="studentResultMap">
        SELECT id, name, age
        FROM students
        WHERE id = #{id}
    </select>
 
    <insert id="insertStudent" parameterType="Student">
        INSERT INTO students (name, age)
        VALUES (#{name}, #{age})
    </insert>
 
    <update id="updateStudent" parameterType="Student">
        UPDATE students
        SET name = #{name}, age = #{age}
        WHERE id = #{id}
    </update>
 
    <delete id="deleteStudent" parameterType="Long">
        DELETE FROM students
        WHERE id = #{id}
    </delete>
 
</mapper>

在上面的 XML 文件中,我们定义了一个名为 StudentMapper 的命名空间,并定义了 getStudentById、insertStudent、updateStudent 和 deleteStudent 四个 SQL 映射。

最后,我们可以使用以下代码来执行 SQL 映射:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
SqlSession sqlSession = sqlSessionFactory.openSession();
 
StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
 
Student student = new Student();
student.setName("John");
student.setAge(25);
 
studentMapper.insertStudent(student);
 
sqlSession.commit();
sqlSession.close();

在上面的代码中,我们首先创建了一个 SqlSessionFactory 对象,然后打开一个 SqlSession 对象。接着,我们通过 getMapper 方法获取 StudentMapper 对象,并使用该对象调用 insertStudent 方法将学生对象保存到数据库中。最后,我们提交事务并关闭 SqlSession。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
MyBatis学习总结(一)——ORM概要与MyBatis快速起步
程序员应该将核心关注点放在业务上,而不应该将时间过多的浪费在CRUD中,多数的ORM框架都把增加、修改与删除做得非常不错了,然后数据库中查询无疑是使用频次最高、复杂度大、与性能密切相关的操作,我们希望得到一种使用方便,查询灵活的ORM框架,MyBatis可以满足这些要求,MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架,它也是SSM框架集成中的重要组成部分。
张果
2018/10/09
8690
MyBatis学习总结(一)——ORM概要与MyBatis快速起步
SSM学习笔记之MyBatis
ORM(Object Relation Mapping)对象关系映射,将Java中的一个对象与数据表中的一行记录一一对应。
Jetpropelledsnake21
2022/05/11
5320
SSM学习笔记之MyBatis
mybatis笔记整理mybatis的基本用法及配置:
mybatis的基本用法及配置: 本文涉及知识点: 1、mybatis入门 2、配置版CRUD 3、关联查询(1:1&1:n) 4、注解版CRUD 5、注解版关联查询 6、sql语句构建器版
贪挽懒月
2018/05/18
1.6K0
MyBatis框架介绍及实战操作
数据持久化是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称。例如,文件的存储、数据的读取等都是数据持久化操作。数据模型可以是任何数据结构或对象模型、XML、二进制流等。
用户4447430
2019/04/20
7270
MyBatis学习总结(二)——MyBatis核心配置文件与输入输出映射
在上一章中我们学习了《MyBatis学习总结(一)——ORM概要与MyBatis快速起步》,这一章主要是介绍MyBatis核心配置文件、使用接口+XML实现完整数据访问、输入参数映射与输出结果映射等内容。
张果
2018/10/09
1.4K0
MyBatis学习总结(二)——MyBatis核心配置文件与输入输出映射
Spring+Mybatis+Maven+Mysql编程实战
image.png 封面是Niagara Falls,世界第一大瀑布。 概述 这篇文章主要讲解使用eclipse对Spring+Maven+Mybatis+Mysql项目搭建过程以及简单实战展示,对于eclipse的Maven配置以及Mysql的安装这里就不做介绍了,大家可以在百度上找找。 1.1 数据库表创建 CREATE TABLE student( ID INT NOT NULL, NAME VARCHAR(20) NOT NULL, AGE INT NOT NULL, PRIMARY KEY (ID
大数据和云计算技术
2018/03/08
1K0
Spring+Mybatis+Maven+Mysql编程实战
MyBatis框架(二)
导包, 配置mybatis的总配置文件: mybatis-config.xml, 1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE con
二十三年蝉
2018/02/28
7680
MyBatis框架(二)
Mybatis入门例子
Mybatis是轻量级的持久化框架,的确上手非常快. Mybatis大体上的思路就是由一个总的config文件配置全局的信息,比如mysql连接信息等。然后再mapper中指定查询的sql,以及参数和返回值。 在Service中直接调用这个mapper即可。 依赖的jar包 <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.2</version> <
用户1154259
2018/01/17
8620
MyBatis(2)——MyBatis 深入学习
编写日志输出环境配置文件 在开发过程中,最重要的就是在控制台查看程序输出的日志信息,在这里我们选择使用 log4j 工具来输出: 准备工作: 将【MyBatis】文件夹下【lib】中的 log4j 开头的 jar 包都导入工程并添加依赖。 在【src】下新建一个文件 log4j.properties 资源: # Global logging configuration # 在开发环境下日志级别要设置成 DEBUG ,生产环境设为 INFO 或 ERROR log4j.rootLogger=DEBUG
我没有三颗心脏
2018/04/26
9040
MyBatis(2)——MyBatis 深入学习
java学习笔记(中级篇)—细说mybatis的使用方式
我这里就直接创建一个简单的java项目了,这要求先要下载好mybatis-3.x.0.jar,然后把包导进项目,因为要连接数据库,所以还需要数据库驱动包,我用的是Oracle14.jar。习惯使用maven来构建项目的也是可以的,就不用自己去下离线jar包了,直接去maven respository官网搜索mybatis复制到pom.xml文件就好了。
chlinlearn
2019/08/15
6830
java学习笔记(中级篇)—细说mybatis的使用方式
SpringBoot学习笔记(五)——Spring Boot中使用MyBatis进阶
mybatis框架运行时可以调整一些运行参数。比如,开启二级缓存,开启延迟加载等等。全局参数会影响mybatis的运行行为。
张果
2022/05/09
1.7K0
SpringBoot学习笔记(五)——Spring Boot中使用MyBatis进阶
Mybatis在接口上使用注解配置SQL语句以及接口与xml一起使用
MyBatis对于大部分的基于XML的映射器元素(包括&lt;select&gt;,&lt;update&gt;)提供了对应的基于注解的配置项。然而在某些情况下,基于注解配置 还不能支持基于XML的一些元素。MyBatis提供了多种注解来支持不同类型的语句(statement)如SELECT,INSERT,UPDATE,DELETE。下面我们通过一个小demo来简单演示一下这些基本注解的使用方式:
端碗吹水
2020/09/23
2.8K0
Mybatis在接口上使用注解配置SQL语句以及接口与xml一起使用
Mybatis 框架学习(四)——如果世界真的那么简单就好了
就是说我们在java代码中要写一个pojo类,与数据库表的字段相对应,必须名字相同。
RAIN7
2022/06/15
2910
Mybatis 框架学习(四)——如果世界真的那么简单就好了
Mybatis 3学习笔记(一)主要内容:
MyBatis是一个开源持久化框架,用于简化持久层的实现。Mybatis可以减少很多JDBC相关的模板样式代码,还提供了方便使用的数据库API。
阿杜
2018/08/06
3340
mybatis看这一篇就够了,简单全面一发入魂
上面其实是比较原始的开发方式,我们需要编写dao类,针对mapper.xml中的每个SQL标签,做一次封装,SQL标签的id要以字符串的形式传递给SqlSession的相关方法,容易出错,非常不方便;为了简化开发,mybatis提供了mapper接口代理的开发方式,不需要再编写dao类,只需要编写一个mapper接口,一个mapper的接口和一个mapper.xml相对应,只需要调用SqlSession对象上的getMapper(),传入mapper接口的class信息,即可获得一个mapper代理对象,直接调用mapper接口中的方法,即相当于调用mapper.xml中的各个SQL标签,此时就不需要指定SQL标签的id字符串了,mapper接口中的一个方法,就对应了mapper.xml中的一个SQL标签
全栈程序员站长
2022/09/14
3900
mybatis看这一篇就够了,简单全面一发入魂
力扣MyBatis框架 三万多字干货,来了解一下?
本文原创首发CSDN,本文链接https://blog.csdn.net/qq_41464123/article/details/108172276作者博客https://blog.csdn.net/qq_41464123,转载请带上本链接,谢谢配合。
Designer 小郑
2023/08/01
4810
mybatis学习之入门实例
根据提供的文章内容,这是一篇关于技术社区和Java技术相关的文章。文章介绍了Java技术的发展历程和应用场景,并详细讲解了Java技术在现代软件系统开发中的应用。同时,文章还提供了相关的代码示例和截图,以帮助读者更好地理解Java技术的实现细节。
用户1141560
2017/12/26
7970
mybatis学习之入门实例
springboot第16集:一对多,多对一,SQL缓存
按照查询进行嵌套处理,就像 SQL 中的子查询。MyBatis 提供了 <select> 标签中的 <collection> 和 <association> 标签来实现嵌套查询。其中,<collection> 标签用于处理集合类型的属性,而 <association> 标签用于处理单个对象类型的属性。例如:
达达前端
2023/10/08
2940
MyBatis 详解(一对一,一对多,多对多)
1、什么是MyBatis?   MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,
IT可乐
2018/01/04
5.4K0
MyBatis 详解(一对一,一对多,多对多)
MyBatis:多对一和一对多
目录 多对一 配置数据库 搭建环境测试 按查询嵌套处理 按结果嵌套处理 总结 一对多 实体类编写 按结果嵌套处理 按查询嵌套处理 总结 多对一 多对一关系:多个学生对应一个老师 配置数据库 数据库的设计: 创建数据库: CREATE TABLE `teacher` ( `id` INT(10) NOT NULL, `name` VARCHAR(30) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8
愷龍
2023/01/08
1.1K0
MyBatis:多对一和一对多
相关推荐
MyBatis学习总结(一)——ORM概要与MyBatis快速起步
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验