Skip to content

Commit e491f5a

Browse files
committed
mybatis-insert
mybatis-insert
1 parent 1750234 commit e491f5a

File tree

12 files changed

+450
-0
lines changed

12 files changed

+450
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<classpath>
3+
<classpathentry kind="src" path="src/test/java" output="target/test-classes" including="**/*.java"/>
4+
<classpathentry kind="src" path="src/test/resources" output="target/test-classes" excluding="**/*.java"/>
5+
<classpathentry kind="src" path="src/main/java" including="**/*.java"/>
6+
<classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
7+
<classpathentry kind="output" path="target/classes"/>
8+
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
9+
<classpathentry kind="var" path="M2_REPO/com/h2database/h2/1.3.171/h2-1.3.171.jar"/>
10+
<classpathentry kind="var" path="M2_REPO/junit/junit/4.11/junit-4.11.jar"/>
11+
<classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar"/>
12+
<classpathentry kind="var" path="M2_REPO/org/mybatis/mybatis/3.2.1/mybatis-3.2.1.jar"/>
13+
<classpathentry kind="var" path="M2_REPO/org/mybatis/mybatis-spring/1.2.0/mybatis-spring-1.2.0.jar"/>
14+
<classpathentry kind="var" path="M2_REPO/org/springframework/spring-core/3.1.0.RELEASE/spring-core-3.1.0.RELEASE.jar"/>
15+
<classpathentry kind="var" path="M2_REPO/org/springframework/spring-asm/3.1.0.RELEASE/spring-asm-3.1.0.RELEASE.jar"/>
16+
<classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar"/>
17+
<classpathentry kind="var" path="M2_REPO/org/springframework/spring-expression/3.1.0.RELEASE/spring-expression-3.1.0.RELEASE.jar"/>
18+
<classpathentry kind="var" path="M2_REPO/org/springframework/spring-beans/3.1.0.RELEASE/spring-beans-3.1.0.RELEASE.jar"/>
19+
<classpathentry kind="var" path="M2_REPO/org/springframework/spring-aop/3.1.0.RELEASE/spring-aop-3.1.0.RELEASE.jar"/>
20+
<classpathentry kind="var" path="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar"/>
21+
<classpathentry kind="var" path="M2_REPO/org/springframework/spring-context/3.1.0.RELEASE/spring-context-3.1.0.RELEASE.jar"/>
22+
<classpathentry kind="var" path="M2_REPO/org/springframework/spring-context-support/3.1.0.RELEASE/spring-context-support-3.1.0.RELEASE.jar"/>
23+
<classpathentry kind="var" path="M2_REPO/org/springframework/spring-tx/3.1.0.RELEASE/spring-tx-3.1.0.RELEASE.jar"/>
24+
<classpathentry kind="var" path="M2_REPO/org/springframework/spring-jdbc/3.1.0.RELEASE/spring-jdbc-3.1.0.RELEASE.jar"/>
25+
<classpathentry kind="var" path="M2_REPO/org/springframework/spring-orm/3.1.0.RELEASE/spring-orm-3.1.0.RELEASE.jar"/>
26+
<classpathentry kind="var" path="M2_REPO/org/springframework/spring-oxm/3.1.0.RELEASE/spring-oxm-3.1.0.RELEASE.jar"/>
27+
<classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.5/commons-lang-2.5.jar"/>
28+
<classpathentry kind="var" path="M2_REPO/org/springframework/spring-web/3.1.0.RELEASE/spring-web-3.1.0.RELEASE.jar"/>
29+
<classpathentry kind="var" path="M2_REPO/org/springframework/spring-webmvc/3.1.0.RELEASE/spring-webmvc-3.1.0.RELEASE.jar"/>
30+
<classpathentry kind="var" path="M2_REPO/org/springframework/spring-webmvc-portlet/3.1.0.RELEASE/spring-webmvc-portlet-3.1.0.RELEASE.jar"/>
31+
<classpathentry kind="var" path="M2_REPO/org/springframework/spring-test/3.1.0.RELEASE/spring-test-3.1.0.RELEASE.jar"/>
32+
</classpath>
Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
5+
<groupId>com.hmkcode</groupId>
6+
<artifactId>mybatis-insert-generatedkey</artifactId>
7+
<version>1.0-SNAPSHOT</version>
8+
<packaging>jar</packaging>
9+
10+
<name>mybatis-insert-generatedkey</name>
11+
<url>http://maven.apache.org</url>
12+
13+
<properties>
14+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
15+
<org.springframework.version>3.1.0.RELEASE</org.springframework.version>
16+
</properties>
17+
18+
<dependencies>
19+
<dependency>
20+
<groupId>com.h2database</groupId>
21+
<artifactId>h2</artifactId>
22+
<version>1.3.171</version>
23+
</dependency>
24+
<dependency>
25+
<groupId>junit</groupId>
26+
<artifactId>junit</artifactId>
27+
<version>4.11</version>
28+
<scope>test</scope>
29+
</dependency>
30+
<dependency>
31+
<groupId>org.mybatis</groupId>
32+
<artifactId>mybatis</artifactId>
33+
<version>3.2.1</version>
34+
</dependency>
35+
<dependency>
36+
<groupId>org.mybatis</groupId>
37+
<artifactId>mybatis-spring</artifactId>
38+
<version>1.2.0</version>
39+
</dependency>
40+
<dependency>
41+
<groupId>org.springframework</groupId>
42+
<artifactId>spring-core</artifactId>
43+
<version>${org.springframework.version}</version>
44+
</dependency>
45+
<dependency>
46+
<groupId>org.springframework</groupId>
47+
<artifactId>spring-expression</artifactId>
48+
<version>${org.springframework.version}</version>
49+
</dependency>
50+
<dependency>
51+
<groupId>org.springframework</groupId>
52+
<artifactId>spring-beans</artifactId>
53+
<version>${org.springframework.version}</version>
54+
</dependency>
55+
<dependency>
56+
<groupId>org.springframework</groupId>
57+
<artifactId>spring-aop</artifactId>
58+
<version>${org.springframework.version}</version>
59+
</dependency>
60+
<dependency>
61+
<groupId>org.springframework</groupId>
62+
<artifactId>spring-context</artifactId>
63+
<version>${org.springframework.version}</version>
64+
</dependency>
65+
<dependency>
66+
<groupId>org.springframework</groupId>
67+
<artifactId>spring-context-support</artifactId>
68+
<version>${org.springframework.version}</version>
69+
</dependency>
70+
<dependency>
71+
<groupId>org.springframework</groupId>
72+
<artifactId>spring-tx</artifactId>
73+
<version>${org.springframework.version}</version>
74+
</dependency>
75+
<dependency>
76+
<groupId>org.springframework</groupId>
77+
<artifactId>spring-jdbc</artifactId>
78+
<version>${org.springframework.version}</version>
79+
</dependency>
80+
<dependency>
81+
<groupId>org.springframework</groupId>
82+
<artifactId>spring-orm</artifactId>
83+
<version>${org.springframework.version}</version>
84+
</dependency>
85+
<dependency>
86+
<groupId>org.springframework</groupId>
87+
<artifactId>spring-oxm</artifactId>
88+
<version>${org.springframework.version}</version>
89+
</dependency>
90+
<dependency>
91+
<groupId>org.springframework</groupId>
92+
<artifactId>spring-web</artifactId>
93+
<version>${org.springframework.version}</version>
94+
</dependency>
95+
<dependency>
96+
<groupId>org.springframework</groupId>
97+
<artifactId>spring-webmvc</artifactId>
98+
<version>${org.springframework.version}</version>
99+
</dependency>
100+
<dependency>
101+
<groupId>org.springframework</groupId>
102+
<artifactId>spring-webmvc-portlet</artifactId>
103+
<version>${org.springframework.version}</version>
104+
</dependency>
105+
<dependency>
106+
<groupId>org.springframework</groupId>
107+
<artifactId>spring-asm</artifactId>
108+
<version>${org.springframework.version}</version>
109+
</dependency>
110+
<dependency>
111+
<groupId>org.springframework</groupId>
112+
<artifactId>spring-context-support</artifactId>
113+
<version>${org.springframework.version}</version>
114+
</dependency>
115+
<dependency>
116+
<groupId>org.springframework</groupId>
117+
<artifactId>spring-test</artifactId>
118+
<version>${org.springframework.version}</version>
119+
<scope>test</scope>
120+
</dependency>
121+
</dependencies>
122+
<build>
123+
<plugins>
124+
<plugin>
125+
<artifactId>maven-compiler-plugin</artifactId>
126+
<version>2.0.2</version>
127+
<configuration>
128+
<source>1.6</source>
129+
<target>1.6</target>
130+
</configuration>
131+
</plugin>
132+
<plugin>
133+
<groupId>org.codehaus.mojo</groupId>
134+
<artifactId>exec-maven-plugin</artifactId>
135+
<executions>
136+
<execution>
137+
<id>my-execution</id>
138+
<phase>compile</phase>
139+
<goals>
140+
<goal>java</goal>
141+
</goals>
142+
</execution>
143+
</executions>
144+
<configuration>
145+
<mainClass>com.hmkcode.spring.mybatis.App</mainClass>
146+
</configuration>
147+
</plugin>
148+
</plugins>
149+
</build>
150+
</project>
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.hmkcode.spring.mybatis;
2+
3+
import java.util.List;
4+
5+
import org.apache.commons.logging.Log;
6+
import org.apache.commons.logging.LogFactory;
7+
import org.springframework.context.ApplicationContext;
8+
import org.springframework.context.support.ClassPathXmlApplicationContext;
9+
10+
import com.hmkcode.spring.mybatis.service.Service;
11+
import com.hmkcode.spring.mybatis.vo.MyObject;
12+
13+
14+
public class App
15+
{
16+
private static Log log = LogFactory.getLog(App.class);
17+
18+
public static void main( String[] args )
19+
{
20+
21+
ApplicationContext cxt = new ClassPathXmlApplicationContext("spring-config.xml");
22+
Service service = (Service) cxt.getBean("service");
23+
24+
log.info("Running App...");
25+
26+
27+
//( 1 ) INSERT MYOBJECT
28+
System.out.println("( 1 ) insertMyObject(myObject)");
29+
MyObject myObject = new MyObject();
30+
myObject.setObjectName("name-2");
31+
service.insertMyObject(myObject);
32+
System.out.println("myObject.objectId = "+myObject.getObjectId());
33+
34+
System.out.println("\n********************************\n");
35+
36+
//( 2 ) INSERT MYOBJECT
37+
System.out.println("( 2 ) insertMyObject_Annotation(myObject)");
38+
myObject = new MyObject();
39+
myObject.setObjectName("name-3");
40+
service.insertMyObject_Annotation(myObject);
41+
System.out.println("myObject.objectId = "+myObject.getObjectId());
42+
43+
System.out.println("\n********************************\n");
44+
45+
//( 3 ) SELECT ALL MYOBJECTS
46+
System.out.println("( 3 ) selectAllMyObjects()");
47+
List<MyObject> myObjects = service.selectAllMyObjects();
48+
System.out.println(myObjects);
49+
50+
51+
}
52+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.hmkcode.spring.mybatis.mapper;
2+
3+
import java.util.List;
4+
5+
import org.apache.ibatis.annotations.Insert;
6+
import org.apache.ibatis.annotations.Select;
7+
import org.apache.ibatis.annotations.SelectKey;
8+
9+
import com.hmkcode.spring.mybatis.vo.MyObject;
10+
11+
12+
public interface Mapper {
13+
14+
//if @Select is used table.column (name) & class.property (name) should be the same
15+
16+
17+
@Select("SELECT * FROM myobject_table")
18+
public List<MyObject> selectAllMyObjects();
19+
20+
21+
//SQL query in "Mapper.xml"
22+
public int insertMyObject(MyObject myObject);
23+
24+
@Insert("INSERT INTO myobject_table (objectId,objectName) VALUES (#{objectId}, #{objectName})")
25+
@SelectKey(statement="SELECT nextVal('my_sequence')", keyProperty="objectId", before=true, resultType=int.class)
26+
int insertMyObject_Annotation(MyObject myObject);
27+
}
28+
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.hmkcode.spring.mybatis.service;
2+
3+
import java.util.List;
4+
5+
import org.springframework.beans.factory.annotation.Autowired;
6+
7+
import com.hmkcode.spring.mybatis.mapper.Mapper;
8+
import com.hmkcode.spring.mybatis.vo.MyObject;
9+
10+
11+
12+
public class Service {
13+
14+
@Autowired
15+
private Mapper mapper;
16+
17+
public int insertMyObject(MyObject myObject){
18+
return mapper.insertMyObject(myObject);
19+
}
20+
21+
public int insertMyObject_Annotation(MyObject myObject){
22+
return mapper.insertMyObject_Annotation(myObject);
23+
}
24+
public List<MyObject> selectAllMyObjects(){
25+
return mapper.selectAllMyObjects();
26+
}
27+
28+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.hmkcode.spring.mybatis.vo;
2+
3+
import org.apache.ibatis.type.Alias;
4+
5+
//@Alias("MyObject") will be used by /src/resources/com/hmkcode/spring/mybatis/mybatis-config.xml
6+
@Alias("MyObject")
7+
public class MyObject {
8+
9+
private int objectId;
10+
private String objectName;
11+
12+
public int getObjectId() {
13+
return objectId;
14+
}
15+
16+
public void setObjectId(int objectId) {
17+
this.objectId = objectId;
18+
}
19+
20+
public String getObjectName() {
21+
return objectName;
22+
}
23+
24+
public void setObjectName(String objectName) {
25+
this.objectName = objectName;
26+
}
27+
28+
public String toString(){
29+
return "\n Object [ id: "+this.objectId+" - name: "+this.objectName+ "\n]";
30+
}
31+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3+
4+
<mapper namespace="com.hmkcode.spring.mybatis.mapper.Mapper">
5+
6+
<!-- Mapper.insertchild() -->
7+
<insert id="insertMyObject" parameterType="MyObject" timeout="10" useGeneratedKeys="true" keyProperty="objectId">
8+
9+
<selectKey keyProperty="objectId" resultType="int" order="BEFORE">
10+
SELECT nextVal('my_sequence')
11+
<!-- or -> SELECT my_sequence.nextVal from dual -->
12+
</selectKey>
13+
14+
INSERT INTO myobject_table (objectId,objectName)
15+
VALUES (#{objectId},#{objectName})
16+
17+
</insert>
18+
</mapper>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<!DOCTYPE configuration PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
3+
4+
<configuration>
5+
<typeAliases>
6+
<!-- use package to scan all classes annotated with @Aliase -->
7+
<package name="com.hmkcode.spring.mybatis.vo"/>
8+
9+
<!-- to specify alias explicitly
10+
<typeAlias alias="Parent" type="com.hmkcode.spring.mybatis.vo.MyObject"/>
11+
-->
12+
13+
</typeAliases>
14+
</configuration>
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
CREATE TABLE myobject_table (objectId INT PRIMARY KEY, objectName VARCHAR(255));
2+
CREATE SEQUENCE my_sequence START WITH 1 INCREMENT BY 1;

0 commit comments

Comments
 (0)