今天使用Mybatis,配置了XML文件后,启动时候报错,错误信息如下:
Caused by: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 9; columnNumber: 22; 值为 "before" 的属性 "order" 必须具有列表 "BEFORE AFTER " 中的值。 at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:253) at org.apache.ibatis.parsing.XPathParser.<init>(XPathParser.java:122) at org.apache.ibatis.builder.xml.XMLMapperBuilder.<init>(XMLMapperBuilder.java:75) at org.apache.ibatis.builder.xml.XMLConfigBuilder.mapperElement(XMLConfigBuilder.java:318) at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:104) ... 26 more
xml中的insert配置如下:
<selectKey keyProperty="rptqueryId" order="before" resultType="long"> select rpt_seq$seq.nextval from dual </selectKey>
错误原因:
order值必须为BEFORE AFTER中的一个,大小写敏感。
改正:把before改为BEFORE。
全文完。
相关推荐
如:order by #{user_id},如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id". 2. $将传入的数据直接显示生成在sql中。如:order by ${user_id}, 如果传入...
这里`order="BEFORE"`表示在执行`INSERT`语句之前获取序列值,`keyColumn="id"`指定了结果应设置的目标属性,`resultType="_int"`指定了结果类型为整数。Oracle的`nextval`函数用于获取序列的下一个值。 3. `...
3. **order**:`order` 属性有两个可能的值,`BEFORE` 和 `AFTER`。`BEFORE` 表示先执行 `<selectKey>` 语句,然后进行插入操作;`AFTER` 则相反,先执行插入,再获取主键。通常为了确保主键的正确生成,我们会设置...
12. MyBatis 的插入操作:MyBatis 的插入操作在映射文件中是通过配置 <insert> 元素来实现的,其中 <insert> 元素的 <selectKey> 子元素的 order 属性可以被设置为 BEFORE 或 AFTER。 13. MyBatis 的映射文件:...
- `order`: 可以是`BEFORE`或`AFTER`,分别表示在插入语句之前或之后执行。通常为了确保能获取到新生成的主键,我们将其设置为`BEFORE`。 - `statementType`: 指定SQL语句的类型,可以是`STATEMENT`、`PREPARED`或`...
`order="AFTER"` 表示在执行完插入操作后获取主键值,如果数据库不支持自增主键,可以改为`order="BEFORE"`,让MyBatis生成一个唯一的ID。 ```xml <selectKey resultType="long" keyProperty="id" order="AFTER"> ...
MyBatis中Oracle实现分页效果实例代码 MyBatis是一款流行的持久层框架,能够帮助开发者快速实现数据库交互操作。其中,分页查询是常见的数据库操作之一。下面,我们将详细介绍MyBatis中Oracle实现分页效果实例代码...
`keyProperty`属性指定要设置的属性名,`resultType`指定返回的类型,`order`属性可以设置为"AFTER"或"BEFORE",表示在插入语句之前或之后执行。 4. **POJO对象**: 在映射文件中,POJO对象可以作为参数或结果集。...
- `order`:定义执行顺序,`BEFORE` 表示先执行生成主键,再执行插入;`AFTER` 则相反。 - `statementType`:指定 SQL 语句的类型,可以是 `STATEMENT`、`PREPARED` 或 `CALLABLE`,分别对应 Statement、...
Spring AOP可以通过注解或XML配置实现,比如`@Aspect`、`@Before`、`@After`等。 3. **Spring与MyBatis的整合**:`14spring4_mybatis03`和`17ssm_annotation`文件可能涉及到Spring与MyBatis的集成,这通常包括配置...
`<selectKey>`标签的`keyProperty`属性指定了结果应该设置的属性名,`resultType`定义了返回值的类型,`order`决定了执行顺序(`BEFORE`或`AFTER`),`statementType`则指定了SQL语句的形式(`STATEMENT`, `PREPARED...
在一些支持自动增长类型的数据库中,如Mysql,order需要设置为after,否则将无法获取正确的值。在一些取序列的情况下,如Oracle,需要设置为before,否则将报错。 下面是一个xml和注解的例子,演示了SelectKey的...
3. ORDER:<seletKey> 中的order属性,可选值为BEFORE和AFTER 4. catalog:数据库的catalog,如果设置该值,查询的时候表名会带catalog设置的前缀 5. schema:同catalog,catalog优先级高于schema 6. seqFormat:...
在SpringBoot中使用AOP,可以通过`@Aspect`注解定义切面,利用`@Before`、`@After`等注解来指定方法的执行时机。 #### 索引创建 在数据库中创建索引是为了提高数据检索的速度。创建索引的基本语法如下: ```sql ...