`
- 浏览:
259806 次
- 性别:
- 来自:
未定
-
ibatis的变量其实没什么特别,就是使用#{}定义,
比如 insert into person(name,age) values(#{name},#{age})
ibatis是这样执行这条语句的:
使用preparedStatement构造出如下sql语句并执行
insert into person(name,age) values(?,?)
之后才是将具体的数据发到数据库,这本身是preparedStatement的运行原理.
因为ibatis底层还是使用jdbc的.
一切都合理自然.
现在有一个需求是要能动态表名
第一反应是写出如下語句
insert into #{tbl}(name,age) values(#{name},#{age})
相应sql语句为:
insert into ?(name,age) values(?,?)
我们传入三个变量值#{tbl},#{name},#{age}
但是sql只能接收到两个变量,因为第一个?号不会对应一个变量,它已是表名.
这时就会出错了.
所以我们应该在ibatis生成sql语句之前就把#{tbl}计算出来变成定值.
这时就可以使用${tbl}了,这也叫直接变量吧.
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
《ibatis3开发指南》深度解析 一、ibatis3简介与重要性 ibatis3,作为Apache基金会下的开源项目,是一种对象关系映射(ORM)工具,它为Java开发者提供了一种优雅的方式,用于处理Java对象与关系型数据库管理系统...
接下来检查 `type` 和 `goods` 变量是否为空或者等于特定值。如果不满足这些条件,则将相应的过滤条件添加到 SQL 语句中。 #### 4. 输出 SQL 查询语句 ```java System.out.println(sb.toString()); ``` 最后,...
这包括安装JDK,配置Java环境变量,选择合适的IDE(如Eclipse或IntelliJ IDEA),设置Maven或Gradle构建工具,以及引入iBatis的核心库和相应的数据库驱动。此外,还需要创建数据库和相应的表结构,以便进行实战演练...
### ibatis SQL语句对条件中特殊字符% # 处理 在开发过程中,经常会遇到SQL查询时需要处理字符串中的特殊字符的情况。特别是在使用类似`LIKE`这样的操作符时,如果用户输入的数据中含有`%`、`_`或`#`等特殊字符,...
3. **Java DAO层**:模板可以生成DAO(Data Access Object)接口和实现类,这些类提供了与数据库交互的方法,如增删改查操作。 4. **Mapper接口与XML配置**:CodeSmith会根据数据表结构生成对应的Mapper接口,这些...
- 安装 Java 开发环境(JDK),确保系统环境变量配置正确。 - 熟悉 Maven 或 Gradle 构建工具,用于管理 Ibatis 和其他依赖库。 - 设置好 MySQL 或其他数据库,创建对应的数据表。 2. **Ibatis 概念**: - ...
### iBATIS-3开发指南:关键知识点概览 #### 什么是iBATIS? iBATIS是一种开源的持久层框架,旨在简化Java应用程序与数据库之间的交互。它通过将SQL语句封装为配置文件,并利用映射器(Mappers)来关联Java对象与...
通过java程序查看ibatis配置文件中的sql语句(注:无法查看变量值)
【Ibatis实例,手把手教你入门】 Ibatis,一个轻量级的Java持久层框架,以其灵活、...同时,随着Ibatis 3.x版本的发布,它引入了许多新功能和改进,比如支持注解配置,你可以尝试升级到新版本,进一步提升开发效率。
这里的`3.x.x`代表Ibatis的当前稳定版本。 五、IDE集成 为了提高开发效率,大多数开发者会选择集成开发环境(IDE)如IntelliJ IDEA或Eclipse。这些IDE都有丰富的插件支持Ibatis,如MyBatis Plugin for IntelliJ ...
值得注意的是,iBatis并不是以查询参数的Class的hashcode或toString方法作为Key的一部分,而是使用在sqlmap中使用的变量集合。 **缓存功能** - iBatis 支持`queryForObject`和`queryForList`方法的结果缓存,但其他...
3. **开发步骤**:项目文档中应该详细列出了从搭建环境到实现功能的整个流程。这通常包括安装 Oracle 数据库、设置数据库连接、集成 iBatis 到项目中、编写 DAO 层(数据访问对象)、Service 层和 Controller 层代码...
3. **Ibatis下载与引入**:从官方网站或者Maven仓库下载Ibatis的jar包,或者在Maven或Gradle的依赖管理中添加Ibatis的相关依赖。 4. **项目结构配置**:创建一个标准的Java Web项目结构,包括src/main/java(存放...
3. 动态运用:在实际项目中,Freemarker与iBatis常被结合使用,例如,iBatis负责从数据库获取数据,然后将这些数据传递给Freemarker,由Freemarker生成动态网页。这种方式可以实现MVC架构中的View层与Controller/...
### ibatis3.0中`in`的用法详解 #### 一、引言 在进行数据库查询时,经常会遇到需要根据多个值进行查询的情况,这时`IN`语句就显得尤为重要。`IN`语句可以用于判断某个字段的值是否在一个指定的列表之中,非常适用...
#### 3. SQL Maps 映射文件详解 - **Mapped Statements**:表示数据库操作,如插入、更新、删除和查询。 - **Statement类型**:可以是INSERT、UPDATE、DELETE或SELECT。 - **SQL语句**:具体执行的SQL语句。 - **...
在上面的例子中,`#{}`表示占位符,其中的变量名称需要与传入参数对象中的属性名一致。 ##### 3.3 更新(UPDATE) 更新操作用于修改数据库表中的现有记录。 ```xml UPDATE tb_user SET user_name = #{user_name...
它们允许我们在不编写大量重复代码的情况下,根据变量的值来决定SQL语句的组成部分。 1. `<if>`标签:用于判断条件,如果条件为真,则包含它的内容会被插入到SQL语句中。例如,当需要根据用户输入是否为空来决定...
首先,` AnthorMapper`包含一个静态的`_mapper`变量,用于存储当前的`ISqlMapper`实例。这个实例是通过调用`Configure`和`InitMapper`方法来创建和初始化的。 `Configure`方法清除了现有的`_mapper`实例,这可能是...