Statement
statement
在 MyBatis 中,Statement 是用于执行 SQL 语句的核心组件之一。它对应 JDBC 中的 java.sql.Statement、PreparedStatement 和 CallableStatement,用来执行 SQL 查询、更新、插入和删除操作。它封装了 JDBC 的三种 Statement 类型,使得开发者可以灵活地执行各种 SQL 操作。根据具体场景选择合适的 Statement 类型,可以提高应用的性能和安全性。
Statement 的类型
MyBatis 中的 Statement 有三种类型,分别对应不同的 SQL 操作方式:
- Statement:
- 这是最基础的类型,适用于简单的 SQL 语句。
- 它直接将 SQL 语句发送给数据库执行,不支持参数化查询(即无法使用 ? 占位符)。
- 适用于不需要参数的简单查询。
- PreparedStatement:
- 这是最常用的 Statement 类型。
- 支持预编译和参数化查询,可以在 SQL 语句中使用 ? 作为占位符,并在执行前为这些占位符提供参数。
- 因为 SQL 语句会被预编译,性能较高且更安全,可以防止 SQL 注入。
- CallableStatement:
- 用于执行存储过程。
- 允许调用数据库中预定义的存储过程,并处理输入和输出参数。
使用场景
- Statement:适合一些简单、不带参数的 SQL 语句。
- PreparedStatement:适用于绝大多数的 SQL 操作,特别是涉及到用户输入时,能够有效防止 SQL 注入。
- CallableStatement:主要用于调用数据库中的存储过程。
在 MyBatis 中的配置
在 MyBatis 的 Mapper 文件中,通过 、、 或 等标签的 statementType 属性来指定使用哪种 Statement 类型。如果不指定,默认使用 PreparedStatement。
例如:
<select id="selectUser" resultType="User" statementType="PreparedStatement">
SELECT * FROM users WHERE id = #{id}
</select>
在上面的例子中,MyBatis 将使用 PreparedStatement 来执行查询操作。
核心标签
在 MyBatis 中,Statement
相关的四大核心标签是 <select>
、<insert>
、<update>
和 <delete>
,它们分别对应数据库的基本 CRUD(Create, Read, Update, Delete)操作。这四个标签用于在 MyBatis 的 Mapper
文件中定义 SQL 语句,并通过这些标签与数据库进行交互。
1. <select>
标签
- 功能:用于执行查询操作。
- 特点:返回单个或多个结果。支持复杂的查询条件和结果映射。
- 示例:
<select id="selectUser" parameterType="int" resultType="User">
SELECT * FROM users WHERE id = #{id}
</select>
- 说明:
id
属性指定了该select
语句的唯一标识符,parameterType
指定了传入的参数类型,resultType
指定了返回的结果类型。
2. <insert>
标签
- 功能:用于执行插入操作。
- 特点:将数据插入到数据库中。支持自动生成主键并返回。
- 示例:
<insert id="insertUser" parameterType="User">
INSERT INTO users (name, age) VALUES (#{name}, #{age})
</insert>
- 说明:
parameterType
指定了传入参数的类型,这里假设User
是一个包含name
和age
属性的对象。
3. <update>
标签
- 功能:用于执行更新操作。
- 特点:更新数据库中已存在的数据。
- 示例:
<update id="updateUser" parameterType="User">
UPDATE users SET name = #{name}, age = #{age} WHERE id = #{id}
</update>
- 说明:
parameterType
指定了传入参数的类型,通过传入User
对象中的id
来定位需要更新的记录。
4. <delete>
标签
- 功能:用于执行删除操作。
- 特点:从数据库中删除数据。
- 示例:
<delete id="deleteUser" parameterType="int">
DELETE FROM users WHERE id = #{id}
</delete>
- 说明:
parameterType
指定了传入参数的类型,这里通过id
来删除用户。
总结
这四大标签是 MyBatis 中最基础、也是最常用的标签,它们各自对应数据库的 CRUD 操作,使用这些标签可以非常方便地进行数据库操作。开发者可以通过配置这些标签,实现对数据库的各种操作,而无需直接编写繁琐的 JDBC 代码。
标签:标签,数据库,MyBatis,Statement,SQL,Mybatis,id From: https://blog.csdn.net/weixin_63405049/article/details/141642469