前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java ORM框架(二)

java ORM框架(二)

原创
作者头像
堕落飞鸟
发布2023-04-04 10:12:41
2850
发布2023-04-04 10:12:41
举报
文章被收录于专栏:飞鸟的专栏

MyBatis

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

示例

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

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

代码语言:javascript
复制
public class Student {
 
    private Long id;
    private String name;
    private int age;
 
    // Getters and setters
}

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

代码语言:javascript
复制
<?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
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MyBatis
    • 示例
    相关产品与服务
    关系型数据库
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档