MyBatis 是一款开源的持久层框架,它支持自定义 SQL、存储过程以及高级映射。在这里介绍如何初识 MyBatis 并配置基本环境,还有执行一些基本的操作。
一、初识MyBatis
MyBatis 是一款持久层框架,因为它能将程序中的 Java 对象映射到数据库中的表,从而让你可以使用类似于面向对象的思想来管理数据。在这里我们将使用 MyBatis SQL 映射来完成这个工作。
二、基本配置
在使用 MyBatis 之前,我们需要配置好相应的环境,在这里我们先给出一个基本的配置模板来作为参考:
<?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的事务管理 -->
<transactionManager type="JDBC"/>
<!-- 配置数据源 -->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!-- 映射文件配置 -->
<mappers>
<mapper resource="com/example/mybatis/exampleMapper.xml"/>
</mappers>
</configuration>
在这个配置文件中,我们首先定义了数据源和环境(environments
)。在这里我们使用的是 JDBC 的事务管理器,并配置了数据源的信息,包括驱动、URL、用户名和密码等。然后,我们还定义了映射文件(mappers
)的位置。
关于数据源的配置,你可以根据自己的实际情况来选择使用不同的类型,例如:UNPOOLED
、JNDI
等。
三、执行基本操作
在 MyBatis 中,最基本的操作就是增删改查。下面,我们将分别介绍如何执行这些操作。
1. 增加操作
MyBatis 增加操作的实现需要使用 insert
标签,具体实现如下:
<insert id="insertData" parameterType="com.example.mybatis.example" useGeneratedKeys="true" keyProperty="id">
INSERT INTO example (
name,
age,
address
) VALUES (
#{name},
#{age},
#{address}
)
</insert>
首先,我们通过 insert
标签来定义一个插入操作,并指定了该操作的 id
为 insertData
。parameterType
指定了参数的类型,这里是 com.example.mybatis.example
。useGeneratedKeys
表示使用数据库默认生成的主键,keyProperty
则指定映射对象中主键对应的变量名。
然后,我们使用了 SQL 语句来执行插入操作,并使用了 #{}
占位符来引用参数属性。
接下来,你可以使用下面的 Java 代码来执行这个操作:
// 通过 SqlSession 获取 Mapper 对象
ExampleMapper mapper = session.getMapper(ExampleMapper.class);
// 创建Example对象,并设置属性
Example example = new Example();
example.setName("张三");
example.setAge(20);
example.setAddress("广州市");
// 执行插入操作
mapper.insertData(example);
// 提交事务
session.commit();
2. 删除操作
删除操作的实现需要使用 delete
标签,具体实现如下:
<delete id="deleteData" parameterType="int">
DELETE FROM example WHERE id = #{id}
</delete>
通过 delete
标签来定义一个删除操作,并指定了该操作的 id
为 deleteData
。在这个例子中,我们指定参数为一个 int 类型的 id。
然后,我们使用了 SQL 语句来执行删除操作,并使用了 #{}
占位符来引用参数属性。
接下来,你可以使用下面的 Java 代码来执行这个操作:
// 通过 SqlSession 获取 Mapper 对象
ExampleMapper mapper = session.getMapper(ExampleMapper.class);
// 执行删除操作
mapper.deleteData(1);
// 提交事务
session.commit();
3. 修改操作
修改操作的实现需要使用 update
标签,具体实现如下:
<update id="updateData" parameterType="com.example.mybatis.example">
UPDATE example
SET name = #{name},
age = #{age},
address = #{address}
WHERE id = #{id}
</update>
通过 update
标签来定义一个更新操作,并指定了该操作的 id
为 updateData
。parameterType
指定了参数的类型,这里是 com.example.mybatis.example
。
然后,我们使用了 SQL 语句来执行更新操作,并使用了 #{}
占位符来引用参数属性。
接下来,你可以使用下面的 Java 代码来执行这个操作:
// 通过 SqlSession 获取 Mapper 对象
ExampleMapper mapper = session.getMapper(ExampleMapper.class);
// 创建Example对象,并设置属性
Example example = new Example();
example.setId(1);
example.setName("李四");
example.setAge(22);
example.setAddress("上海市");
// 执行修改操作
mapper.updateData(example);
// 提交事务
session.commit();
4. 查询操作
查询操作的实现需要使用 select
标签,具体实现如下:
<select id="getData" resultType="com.example.mybatis.example">
SELECT * FROM example WHERE id = #{id}
</select>
通过 select
标签来定义一个查询操作,并指定了该操作的 id
为 getData
。resultType
指定了查询结果的类型,这里是 com.example.mybatis.example
。
然后,我们使用了 SQL 语句来执行查询操作,并使用了 #{}
占位符来引用参数属性。
接下来,你可以使用下面的 Java 代码来执行这个操作:
// 通过 SqlSession 获取 Mapper 对象
ExampleMapper mapper = session.getMapper(ExampleMapper.class);
// 执行查询操作
Example example = mapper.getData(1);
总结
到此为止,我们通过以上的讲解和示例完成了初识 MyBatis 配置环境和执行基本操作的过程。在实际应用中,我们需要根据不同的需求进行相应的配置,并使用 MyBatis 提供的 API 来完成更多的操作。同时,我们还需要注意在使用 MyBatis 过程中的一些细节问题,例如:对象和表结构的映射、参数传递、Mapper 接口的定义等。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:初识MyBatis及基本配置和执行 - Python技术站