MyBatis:动态SQL与参数绑定(#{} 和 ${})
MyBatis 的强大特性之一便是它的动态 SQL,Mybatis 在对 SQL 语句进行预编译之前,会对 SQL 进行动态解析,解析为一个 BoundSql 对象,同时对动态 SQL 进行处理。
动态 SQL 主要通过OGNL
表达式实现 SQL 可以动态判断和选择参数。
MyBatis 的强大特性之一便是它的动态 SQL,Mybatis 在对 SQL 语句进行预编译之前,会对 SQL 进行动态解析,解析为一个 BoundSql 对象,同时对动态 SQL 进行处理。
动态 SQL 主要通过OGNL
表达式实现 SQL 可以动态判断和选择参数。
实现项目开发中,存在一对一
,一对多
,多对多
的映射关系,Mybatis对这些映射关系提供了完全的支持。
Mybatis本置文件mybatis-config.xml
SSM整合之配置文件:
1 | <mapper namespace="org.mybatis.mapper.UserMapper"> |
namespace
,一般设置成mapper
类的全路径名。SQL
中的insert
插入语句。mapper java
文件的方法名相同。keyProperty
指定的属性名。 CRUD注解:@Select,@Insert,@Update,@Delete
。
配置项注解:@Options
。
参数绑定注解:@Param
, 将传入方法的参数绑定到 SQL 语句的参数上。
**结果映射注解: **@Results
—— 结果映射列表;@Result
—— 在列和属性或字段之间的单独结果映射。
<mapper resource = "mapper/User.xml" />
,映射xml
文件名没有要求,文件内的名称空间名没有要求。名称空间.sql语句id名称
备注:此方式几乎不会使用
Mybatis 中执行 where...in (xx, xx, xx)
查询时 使用 foreach
遍历参数注意事项。
Spring 核心包 spring-core-xx.jar
提供了一些工具包、动态代理、cglig、反射等工具类。
Spirng 应用启动时,会初始化 ApplicationContext 应用上下文(容器),就可以获取容器中的 Bean,还可以对容器执行一些其它的操作,例如设置环境变量等。