MyBatis映射示例

resultMap 返回结果的映射



resultMapid是这个映射的名字,可在查询语句中引用表示此查询返回该结果:


t

ype是模型对象的类名,也可以写成别名(简化作用)



简化成别名时,需要先注册别名:


resultMap内部

<id>标签表示该查询中涉及的主键的映射关系

<result>标签表示普通数据属性或字段的映射关系

property表示数据模型类中的属性名


column表示数据表中的字段名


<select> 表示使用select语句查询数据的方法

id属性与Dao中的方法相同!

resultMap表示返回结果(因为返回的数据对象可能很复杂,因些需要单独设置映射)

parameterType表示传入参数类型(利用HashMap可以传入一组参数)


SQL语句中的标签

JSTL非常相似

<trim>一行的意思是此处会生成一个Where子句(prefix规定的)

如果该子句在组合过程中产生了多作的AND|OR,则trim会把多作的去掉

以保证SQL语句的正确性

<if>会测试相应的条件是否成立,成立则if中的表达式进入SQL语句,否则忽略

通过<if>可以动态拼接SQL表达式!


${ } 与 #{ } 两者有很大的区别!

${ }是替换性质的,如sortProperty的值将会出现在 ${ sortProperty } 的位置

因此有SQL注入的风险

#{ }会变成SQL语句中的 ? 参数,? 参数没有注入风险。

 

如果传入到<select>中的数据是SQL语句的字段名或运算符、关键字,则只能使用${ }

因为使用 #{ } 会变成 ? ,将会造成SQL语法错误

order by ? ? 是错误的,因为order by后面应该跟


列名 之后是 排序方向的关键字 ,不能是 ?


<insert> 表示插入数据的方法

如果数据库中有自增Id,而且还希望在插入数据之后获得新插入的Id值,则需要添加

useGeneratedKeys=”true” keyProperty=”主键名”

执行成功后,可以通过


student.getStudentId() 获取主键值,也就是主键值会填充到传入的对象中   更新数据


删除数据

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis 是一款流行的持久层框架,它通过 XML 配置文件或注解的方式来定义 SQL 语句和映射关系。以下是一个简单的 MyBatis 映射关系示例: 1. 定义实体类 ```java public class User { private int id; private String username; private String password; // getter and setter } ``` 2. 定义映射文件 在映射文件中,我们定义了 SQL 语句以及实体类属性和数据库表中字段的映射关系。 ```xml <!-- UserMapper.xml --> <mapper namespace="com.example.mapper.UserMapper"> <select id="getUserById" resultType="com.example.entity.User"> select * from user where id = #{id} </select> </mapper> ``` 在这个映射文件中,我们使用了`select`标签来定义查询语句,其中`resultType`属性指定了查询结果对应的实体类。`#{id}`表示使用占位符来动态传入参数。 3. 定义 Mapper 接口 ```java public interface UserMapper { User getUserById(int id); } ``` 在 Mapper 接口中,我们定义了与映射文件中 SQL 语句相对应的方法,方法名和参数必须与映射文件中的定义一致。然后,我们可以使用 MyBatis 提供的 SqlSessionFactory 来获取 SqlSession 对象,从而执行 SQL 查询。 ```java SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sessionFactory.openSession(); UserMapper mapper = session.getMapper(UserMapper.class); User user = mapper.getUserById(1); ``` 以上就是一个简单的 MyBatis 映射关系示例。在实际应用中,我们可以通过映射文件和 Mapper 接口来定义复杂的 SQL 语句和实体类属性与数据库表字段之间的映射关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值