You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by cb...@apache.org on 2009/07/01 17:10:25 UTC
svn commit: r790209 - in /ibatis/trunk/java/ibatis-3: ./
ibatis-3-core/src/main/java/org/apache/ibatis/binding/
ibatis-3-core/src/main/java/org/apache/ibatis/builder/annotation/
ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/
Author: cbegin
Date: Wed Jul 1 15:10:25 2009
New Revision: 790209
URL: http://svn.apache.org/viewvc?rev=790209&view=rev
Log:
applied Jeff's fix to support arbitrary method names for all types of statements.
Added:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/Count.xml
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/CountMapper.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/CountTest.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/CreateDB.sql
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/MapperConfig.xml
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperMethod.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationBuilder.java
ibatis/trunk/java/ibatis-3/version.properties
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperMethod.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperMethod.java?rev=790209&r1=790208&r2=790209&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperMethod.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperMethod.java Wed Jul 1 15:10:25 2009
@@ -76,17 +76,10 @@
}
private void determineCommandType() {
- String methodName = method.getName();
- if (methodName.startsWith("insert") || methodName.startsWith("create")) {
- type = SqlCommandType.INSERT;
- } else if (methodName.startsWith("update") || methodName.startsWith("save")) {
- type = SqlCommandType.UPDATE;
- } else if (methodName.startsWith("delete") || methodName.startsWith("remove")) {
- type = SqlCommandType.DELETE;
- } else if (methodName.startsWith("select") || methodName.startsWith("find")) {
- type = SqlCommandType.SELECT;
- } else {
- throw new BindingException("Unkown execution method for: " + commandName);
+ MappedStatement ms = config.getMappedStatement(commandName);
+ type = ms.getSqlCommandType();
+ if (type == SqlCommandType.UNKNOWN) {
+ throw new BindingException("Unknown execution method for: " + commandName);
}
}
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationBuilder.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationBuilder.java?rev=790209&r1=790208&r2=790209&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationBuilder.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationBuilder.java Wed Jul 1 15:10:25 2009
@@ -245,9 +245,19 @@
}
private SqlCommandType getSqlCommandType(Method method) {
- Class[] types = {Select.class, Insert.class, Update.class, Delete.class};
+ Class[] types = {Select.class, Insert.class, Update.class, Delete.class,
+ SelectProvider.class, InsertProvider.class, UpdateProvider.class, DeleteProvider.class};
Class type = chooseAnnotationType(method, types);
if (type != null) {
+ if (type == SelectProvider.class) {
+ type = Select.class;
+ } else if (type == InsertProvider.class) {
+ type = Insert.class;
+ } else if (type == UpdateProvider.class) {
+ type = Update.class;
+ } else if (type == DeleteProvider.class) {
+ type = Delete.class;
+ }
return SqlCommandType.valueOf(type.getSimpleName().toUpperCase());
}
return SqlCommandType.UNKNOWN;
Added: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/Count.xml
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/Count.xml?rev=790209&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/Count.xml (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/Count.xml Wed Jul 1 15:10:25 2009
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
+<mapper namespace="org.apache.ibatis.submitted.count.CountMapper">
+ <select id="count" resultType="int">
+ select count(*)
+ from names
+ </select>
+</mapper>
Added: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/CountMapper.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/CountMapper.java?rev=790209&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/CountMapper.java (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/CountMapper.java Wed Jul 1 15:10:25 2009
@@ -0,0 +1,5 @@
+package org.apache.ibatis.submitted.count;
+
+public interface CountMapper {
+ int count();
+}
Added: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/CountTest.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/CountTest.java?rev=790209&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/CountTest.java (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/CountTest.java Wed Jul 1 15:10:25 2009
@@ -0,0 +1,61 @@
+package org.apache.ibatis.submitted.count;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.PrintWriter;
+import java.io.Reader;
+import java.sql.Connection;
+import java.sql.DriverManager;
+
+import org.apache.ibatis.io.Resources;
+import org.apache.ibatis.jdbc.ScriptRunner;
+import org.apache.ibatis.session.SqlSession;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.apache.ibatis.session.SqlSessionFactoryBuilder;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class CountTest {
+
+ protected static SqlSessionFactory sqlSessionFactory;
+
+ @BeforeClass
+ public static void setUp() throws Exception {
+ Connection conn = null;
+
+ try {
+ Class.forName("org.hsqldb.jdbcDriver");
+ conn = DriverManager.getConnection("jdbc:hsqldb:mem:gname", "sa",
+ "");
+
+ Reader reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/count/CreateDB.sql");
+
+ ScriptRunner runner = new ScriptRunner(conn);
+ runner.setLogWriter(null);
+ runner.setErrorLogWriter(new PrintWriter(System.err));
+ runner.runScript(reader);
+ conn.commit();
+ reader.close();
+
+ reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/count/MapperConfig.xml");
+ sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
+ reader.close();
+ } finally {
+ if (conn != null) {
+ conn.close();
+ }
+ }
+ }
+
+ @Test
+ public void testCount() {
+ SqlSession sqlSession = sqlSessionFactory.openSession();
+ try {
+ CountMapper mapper = sqlSession.getMapper(CountMapper.class);
+ int answer = mapper.count();
+ assertEquals(6, answer);
+ } finally {
+ sqlSession.close();
+ }
+ }
+}
Added: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/CreateDB.sql
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/CreateDB.sql?rev=790209&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/CreateDB.sql (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/CreateDB.sql Wed Jul 1 15:10:25 2009
@@ -0,0 +1,12 @@
+create table names (
+ id int,
+ firstName varchar(20),
+ lastName varchar(20)
+);
+
+insert into names (id, firstName, lastName) values(1, 'Fred', 'Flintstone');
+insert into names (id, firstName, lastName) values(2, 'Wilma', 'Flintstone');
+insert into names (id, firstName, lastName) values(3, 'Pebbles', 'Flintstone');
+insert into names (id, firstName, lastName) values(4, 'Barney', 'Rubble');
+insert into names (id, firstName, lastName) values(5, 'Betty', 'Rubble');
+insert into names (id, firstName, lastName) values(6, 'Bamm Bamm', 'Rubble');
Added: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/MapperConfig.xml
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/MapperConfig.xml?rev=790209&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/MapperConfig.xml (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/count/MapperConfig.xml Wed Jul 1 15:10:25 2009
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!DOCTYPE configuration
+ PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"
+ "http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
+<configuration>
+
+ <environments default="development">
+ <environment id="development">
+ <transactionManager type="JDBC">
+ <property name="" value=""/>
+ </transactionManager>
+ <dataSource type="UNPOOLED">
+ <property name="driver" value="org.hsqldb.jdbcDriver"/>
+ <property name="url" value="jdbc:hsqldb:mem:gname"/>
+ <property name="username" value="sa"/>
+ </dataSource>
+ </environment>
+ </environments>
+
+ <mappers>
+ <mapper resource="org/apache/ibatis/submitted/count/Count.xml" />
+ </mappers>
+
+</configuration>
Modified: ibatis/trunk/java/ibatis-3/version.properties
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/version.properties?rev=790209&r1=790208&r2=790209&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/version.properties (original)
+++ ibatis/trunk/java/ibatis-3/version.properties Wed Jul 1 15:10:25 2009
@@ -1,5 +1,5 @@
#Build version info
-#Mon Jun 29 22:43:53 MDT 2009
+#Wed Jul 01 00:03:12 MDT 2009
version=3.0.0
-buildDate=2009/06/29 22\:43
-buildNum=183
+buildDate=2009/07/01 00\:03
+buildNum=185