├── .classpath ├── .project ├── .settings ├── .jsdtscope ├── org.eclipse.core.resources.prefs ├── org.eclipse.jdt.core.prefs ├── org.eclipse.m2e.core.prefs ├── org.eclipse.wst.common.component ├── org.eclipse.wst.common.project.facet.core.prefs.xml ├── org.eclipse.wst.common.project.facet.core.xml ├── org.eclipse.wst.jsdt.ui.superType.container └── org.eclipse.wst.jsdt.ui.superType.name ├── README.md ├── mybatis-generator ├── cmd.txt ├── createTable.sql ├── generator.xml ├── mybatis-generator-core-1.3.2.jar └── rml │ ├── dao │ └── MUserMapper.java │ ├── mapping │ └── MUserMapper.xml │ └── model │ └── MUser.java ├── mybatis.log ├── pom.xml ├── src ├── main │ ├── java │ │ └── rml │ │ │ ├── controller │ │ │ └── MUserController.java │ │ │ ├── dao │ │ │ └── MUserMapper.java │ │ │ ├── mapping │ │ │ └── MUserMapper.xml │ │ │ ├── model │ │ │ └── MUser.java │ │ │ └── service │ │ │ ├── MUserServiceI.java │ │ │ └── MUserServiceImpl.java │ ├── resources │ │ ├── config.properties │ │ ├── generatorConfig.xml │ │ ├── log4j.properties │ │ ├── spring-mvc.xml │ │ ├── spring-mybatis.xml │ │ └── spring.xml │ └── webapp │ │ ├── META-INF │ │ └── MANIFEST.MF │ │ ├── WEB-INF │ │ └── web.xml │ │ ├── addUser.jsp │ │ ├── index.jsp │ │ ├── listUser.jsp │ │ └── updateUser.jsp └── test │ └── java │ └── TestMybatis.java └── target ├── classes ├── config.properties ├── log4j.properties ├── rml │ ├── controller │ │ └── MUserController.class │ ├── dao │ │ └── MUserMapper.class │ ├── mapping │ │ └── MUserMapper.xml │ ├── model │ │ └── MUser.class │ └── service │ │ ├── MUserServiceI.class │ │ └── MUserServiceImpl.class ├── spring-mvc.xml ├── spring-mybatis.xml └── spring.xml ├── m2e-jee └── web-resources │ └── META-INF │ ├── MANIFEST.MF │ └── maven │ └── zhibing_mybatis │ └── zhibing_mybatis │ ├── pom.properties │ └── pom.xml └── test-classes └── TestMybatis.class /.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | zhibing_mybatis 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.wst.jsdt.core.javascriptValidator 10 | 11 | 12 | 13 | 14 | org.eclipse.jdt.core.javabuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.wst.common.project.facet.core.builder 20 | 21 | 22 | 23 | 24 | org.eclipse.wst.validation.validationbuilder 25 | 26 | 27 | 28 | 29 | com.genuitec.eclipse.j2eedt.core.DeploymentDescriptorValidator 30 | 31 | 32 | 33 | 34 | org.eclipse.m2e.core.maven2Builder 35 | 36 | 37 | 38 | 39 | com.genuitec.eclipse.ast.deploy.core.DeploymentBuilder 40 | 41 | 42 | 43 | 44 | 45 | org.eclipse.m2e.core.maven2Nature 46 | org.eclipse.jem.workbench.JavaEMFNature 47 | org.eclipse.wst.common.modulecore.ModuleCoreNature 48 | org.eclipse.wst.common.project.facet.core.nature 49 | org.eclipse.jdt.core.javanature 50 | org.eclipse.wst.jsdt.core.jsNature 51 | 52 | 53 | -------------------------------------------------------------------------------- /.settings/.jsdtscope: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding//src/main/java=UTF-8 3 | encoding//src/main/resources=UTF-8 4 | encoding//src/test/java=UTF-8 5 | encoding//src/test/resources=UTF-8 6 | encoding/=UTF-8 7 | -------------------------------------------------------------------------------- /.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 4 | org.eclipse.jdt.core.compiler.compliance=1.6 5 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 6 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 7 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning 8 | org.eclipse.jdt.core.compiler.source=1.6 9 | -------------------------------------------------------------------------------- /.settings/org.eclipse.m2e.core.prefs: -------------------------------------------------------------------------------- 1 | activeProfiles= 2 | eclipse.preferences.version=1 3 | resolveWorkspaceProjects=true 4 | version=1 5 | -------------------------------------------------------------------------------- /.settings/org.eclipse.wst.common.component: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.settings/org.eclipse.wst.common.project.facet.core.prefs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.settings/org.eclipse.wst.common.project.facet.core.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.settings/org.eclipse.wst.jsdt.ui.superType.container: -------------------------------------------------------------------------------- 1 | org.eclipse.wst.jsdt.launching.baseBrowserLibrary -------------------------------------------------------------------------------- /.settings/org.eclipse.wst.jsdt.ui.superType.name: -------------------------------------------------------------------------------- 1 | Window -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | SpringMVC+Spring+MyBatis 2 | ======================== 3 | 4 | Frameworks and Tools 5 | ----------------------------------- 6 | * Java&IDE: JDK6 MyEclipse 7 | * Backend: SpringMVC3.2.9 Spring3.2.9 MyBatis3.1.1 (Configured by annotation) 8 | * Database: Oracle10g 9 | * Web Server: Tomcat 7 10 | * Build Tool: Maven 11 | * Other: Druid(database connection pool) JUnit Log4j Jackson FastJson 12 | 13 | System Features 14 | ----------------------------------- 15 | * Integration of Spring core, Spring MVC, and MyBatis 16 | * Management of users through CRUD interface 17 | 18 | Code Generator for MyBatis 19 | ----------------------------------- 20 | * You can find code generator from [the link](http://mybatis.github.io/generator/) 21 | * In the folder of mybatis-generator, you can find generator.xml and mybatis-generator-core-1.3.2.jar. 22 | * Download these two files in the folder of C:\mybatis, and run the following command: 23 | java -jar mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwrite 24 | * Then Java POJOs that match the table structure will be generated. 25 | 26 | About 27 | ----------------------------------- 28 | * [Github link](https://github.com/ZhibingXie) 29 | * [Linkedin link](http://www.linkedin.com/in/zhibingxie) 30 | -------------------------------------------------------------------------------- /mybatis-generator/cmd.txt: -------------------------------------------------------------------------------- 1 | java -jar mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwrite -------------------------------------------------------------------------------- /mybatis-generator/createTable.sql: -------------------------------------------------------------------------------- 1 | create table muser( 2 | id varchar2(36) primary key, 3 | name varchar2(36), 4 | age number(8), 5 | address varchar2(36) 6 | ); -------------------------------------------------------------------------------- /mybatis-generator/generator.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /mybatis-generator/mybatis-generator-core-1.3.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinXie0131/SpringMVC-Spring-MyBatis/bc91ee490846c6471000167eddfe951171badd6e/mybatis-generator/mybatis-generator-core-1.3.2.jar -------------------------------------------------------------------------------- /mybatis-generator/rml/dao/MUserMapper.java: -------------------------------------------------------------------------------- 1 | package rml.dao; 2 | 3 | import rml.model.MUser; 4 | 5 | public interface MUserMapper { 6 | int deleteByPrimaryKey(String id); 7 | 8 | int insert(MUser record); 9 | 10 | int insertSelective(MUser record); 11 | 12 | MUser selectByPrimaryKey(String id); 13 | 14 | int updateByPrimaryKeySelective(MUser record); 15 | 16 | int updateByPrimaryKey(MUser record); 17 | } -------------------------------------------------------------------------------- /mybatis-generator/rml/mapping/MUserMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | ID, NAME, AGE, ADDRESS 12 | 13 | 19 | 20 | delete from MUSER 21 | where ID = #{id,jdbcType=VARCHAR} 22 | 23 | 24 | insert into MUSER (ID, NAME, AGE, 25 | ADDRESS) 26 | values (#{id,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{age,jdbcType=DECIMAL}, 27 | #{address,jdbcType=VARCHAR}) 28 | 29 | 30 | insert into MUSER 31 | 32 | 33 | ID, 34 | 35 | 36 | NAME, 37 | 38 | 39 | AGE, 40 | 41 | 42 | ADDRESS, 43 | 44 | 45 | 46 | 47 | #{id,jdbcType=VARCHAR}, 48 | 49 | 50 | #{name,jdbcType=VARCHAR}, 51 | 52 | 53 | #{age,jdbcType=DECIMAL}, 54 | 55 | 56 | #{address,jdbcType=VARCHAR}, 57 | 58 | 59 | 60 | 61 | update MUSER 62 | 63 | 64 | NAME = #{name,jdbcType=VARCHAR}, 65 | 66 | 67 | AGE = #{age,jdbcType=DECIMAL}, 68 | 69 | 70 | ADDRESS = #{address,jdbcType=VARCHAR}, 71 | 72 | 73 | where ID = #{id,jdbcType=VARCHAR} 74 | 75 | 76 | update MUSER 77 | set NAME = #{name,jdbcType=VARCHAR}, 78 | AGE = #{age,jdbcType=DECIMAL}, 79 | ADDRESS = #{address,jdbcType=VARCHAR} 80 | where ID = #{id,jdbcType=VARCHAR} 81 | 82 | -------------------------------------------------------------------------------- /mybatis-generator/rml/model/MUser.java: -------------------------------------------------------------------------------- 1 | package rml.model; 2 | 3 | public class MUser { 4 | private String id; 5 | 6 | private String name; 7 | 8 | private Integer age; 9 | 10 | private String address; 11 | 12 | public String getId() { 13 | return id; 14 | } 15 | 16 | public void setId(String id) { 17 | this.id = id == null ? null : id.trim(); 18 | } 19 | 20 | public String getName() { 21 | return name; 22 | } 23 | 24 | public void setName(String name) { 25 | this.name = name == null ? null : name.trim(); 26 | } 27 | 28 | public Integer getAge() { 29 | return age; 30 | } 31 | 32 | public void setAge(Integer age) { 33 | this.age = age; 34 | } 35 | 36 | public String getAddress() { 37 | return address; 38 | } 39 | 40 | public void setAddress(String address) { 41 | this.address = address == null ? null : address.trim(); 42 | } 43 | } -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | zhibing_mybatis 5 | zhibing_mybatis 6 | 0.0.1-SNAPSHOT 7 | war 8 | zhibing_mybatis 9 | 10 | 11 | UTF-8 12 | 13 | 3.2.9.RELEASE 14 | 3.1.1 15 | 1.1.1 16 | 17 | 18 | 19 | 20 | org.springframework 21 | spring-core 22 | ${spring.version} 23 | 24 | 25 | org.springframework 26 | spring-webmvc 27 | ${spring.version} 28 | 29 | 30 | org.springframework 31 | spring-test 32 | ${spring.version} 33 | 34 | 35 | org.mybatis 36 | mybatis 37 | ${mybatis.version} 38 | 39 | 40 | org.mybatis 41 | mybatis-spring 42 | ${mybatisspring.version} 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | junit 54 | junit 55 | 4.11 56 | test 57 | 58 | 59 | com.alibaba 60 | druid 61 | 0.2.26 62 | 63 | 64 | org.aspectj 65 | aspectjweaver 66 | 1.8.1 67 | 68 | 69 | javax.servlet 70 | jstl 71 | 1.2 72 | 73 | 74 | javax.servlet 75 | servlet-api 76 | 3.0-alpha-1 77 | 78 | 79 | javax.servlet.jsp 80 | jsp-api 81 | 2.2.1-b03 82 | provided 83 | 84 | 85 | commons-fileupload 86 | commons-fileupload 87 | 1.3.1 88 | 89 | 90 | log4j 91 | log4j 92 | 1.2.17 93 | 94 | 95 | com.alibaba 96 | fastjson 97 | 1.1.41 98 | 99 | 100 | org.codehaus.jackson 101 | jackson-mapper-asl 102 | 1.9.13 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | org.mybatis.generator 111 | mybatis-generator-maven-plugin 112 | 1.3.2 113 | 114 | true 115 | true 116 | 117 | 118 | 119 | 120 | 121 | mysql 122 | mysql-connector-java 123 | 5.1.35 124 | 125 | 126 | 127 | 128 | 129 | maven-compiler-plugin 130 | 2.3.2 131 | 132 | 1.6 133 | 1.6 134 | 135 | 136 | 137 | maven-war-plugin 138 | 2.2 139 | 140 | 141 | 142 | false 143 | 144 | 145 | 146 | 147 | zhibing_mybatis 148 | 149 | -------------------------------------------------------------------------------- /src/main/java/rml/controller/MUserController.java: -------------------------------------------------------------------------------- 1 | package rml.controller; 2 | 3 | import java.util.List; 4 | import java.util.UUID; 5 | 6 | import javax.servlet.http.HttpServletRequest; 7 | 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.stereotype.Controller; 10 | import org.springframework.web.bind.annotation.RequestMapping; 11 | 12 | import rml.model.MUser; 13 | import rml.service.MUserServiceI; 14 | 15 | @Controller 16 | @RequestMapping("/muserController") 17 | public class MUserController { 18 | 19 | private MUserServiceI muserService; 20 | 21 | public MUserServiceI getMuserService() { 22 | return muserService; 23 | } 24 | 25 | @Autowired 26 | public void setMuserService(MUserServiceI muserService) { 27 | this.muserService = muserService; 28 | } 29 | 30 | @RequestMapping(value="/listUser") 31 | public String listUser(HttpServletRequest request) { 32 | 33 | List list = muserService.getAll(); 34 | request.setAttribute("userlist", list); 35 | return "listUser"; 36 | } 37 | 38 | @RequestMapping(value="/addUser") 39 | public String addUser(MUser muser) { 40 | 41 | String id = UUID.randomUUID().toString(); 42 | muser.setId(id); 43 | muserService.insert(muser); 44 | return "redirect:/muserController/listUser.do"; 45 | } 46 | 47 | @RequestMapping(value="/deleteUser") 48 | public String deleteUser(String id) { 49 | 50 | muserService.delete(id); 51 | return "redirect:/muserController/listUser.do"; 52 | } 53 | 54 | @RequestMapping(value="/updateUserUI") 55 | public String updateUserUI(String id, HttpServletRequest request) { 56 | 57 | MUser muser = muserService.selectByPrimaryKey(id); 58 | request.setAttribute("user", muser); 59 | return "updateUser"; 60 | } 61 | 62 | @RequestMapping(value="/updateUser") 63 | public String updateUser(MUser muser) { 64 | 65 | muserService.update(muser); 66 | return "redirect:/muserController/listUser.do"; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/main/java/rml/dao/MUserMapper.java: -------------------------------------------------------------------------------- 1 | package rml.dao; 2 | 3 | import java.util.List; 4 | 5 | import rml.model.MUser; 6 | 7 | public interface MUserMapper { 8 | int deleteByPrimaryKey(String id); 9 | 10 | int insert(MUser record); 11 | 12 | int insertSelective(MUser record); 13 | 14 | MUser selectByPrimaryKey(String id); 15 | 16 | int updateByPrimaryKeySelective(MUser record); 17 | 18 | int updateByPrimaryKey(MUser record); 19 | 20 | List getAll(); 21 | } -------------------------------------------------------------------------------- /src/main/java/rml/mapping/MUserMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | ID, NAME, AGE, ADDRESS 12 | 13 | 19 | 20 | delete from MUSER 21 | where ID = #{id,jdbcType=VARCHAR} 22 | 23 | 24 | insert into MUSER (ID, NAME, AGE, 25 | ADDRESS) 26 | values (#{id,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{age,jdbcType=DECIMAL}, 27 | #{address,jdbcType=VARCHAR}) 28 | 29 | 30 | insert into MUSER 31 | 32 | 33 | ID, 34 | 35 | 36 | NAME, 37 | 38 | 39 | AGE, 40 | 41 | 42 | ADDRESS, 43 | 44 | 45 | 46 | 47 | #{id,jdbcType=VARCHAR}, 48 | 49 | 50 | #{name,jdbcType=VARCHAR}, 51 | 52 | 53 | #{age,jdbcType=DECIMAL}, 54 | 55 | 56 | #{address,jdbcType=VARCHAR}, 57 | 58 | 59 | 60 | 61 | update MUSER 62 | 63 | 64 | NAME = #{name,jdbcType=VARCHAR}, 65 | 66 | 67 | AGE = #{age,jdbcType=DECIMAL}, 68 | 69 | 70 | ADDRESS = #{address,jdbcType=VARCHAR}, 71 | 72 | 73 | where ID = #{id,jdbcType=VARCHAR} 74 | 75 | 76 | update MUSER 77 | set NAME = #{name,jdbcType=VARCHAR}, 78 | AGE = #{age,jdbcType=DECIMAL}, 79 | ADDRESS = #{address,jdbcType=VARCHAR} 80 | where ID = #{id,jdbcType=VARCHAR} 81 | 82 | 83 | 86 | -------------------------------------------------------------------------------- /src/main/java/rml/model/MUser.java: -------------------------------------------------------------------------------- 1 | package rml.model; 2 | 3 | public class MUser { 4 | private String id; 5 | 6 | private String name; 7 | 8 | private Integer age; 9 | 10 | private String address; 11 | 12 | public String getId() { 13 | return id; 14 | } 15 | 16 | public void setId(String id) { 17 | this.id = id == null ? null : id.trim(); 18 | } 19 | 20 | public String getName() { 21 | return name; 22 | } 23 | 24 | public void setName(String name) { 25 | this.name = name == null ? null : name.trim(); 26 | } 27 | 28 | public Integer getAge() { 29 | return age; 30 | } 31 | 32 | public void setAge(Integer age) { 33 | this.age = age; 34 | } 35 | 36 | public String getAddress() { 37 | return address; 38 | } 39 | 40 | public void setAddress(String address) { 41 | this.address = address == null ? null : address.trim(); 42 | } 43 | } -------------------------------------------------------------------------------- /src/main/java/rml/service/MUserServiceI.java: -------------------------------------------------------------------------------- 1 | package rml.service; 2 | 3 | import java.util.List; 4 | 5 | import rml.model.MUser; 6 | 7 | public interface MUserServiceI { 8 | 9 | List getAll(); 10 | 11 | MUser selectByPrimaryKey(String id); 12 | 13 | int insert(MUser muser); 14 | 15 | int update(MUser muser); 16 | 17 | int delete(String id); 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/rml/service/MUserServiceImpl.java: -------------------------------------------------------------------------------- 1 | package rml.service; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.stereotype.Service; 7 | 8 | import rml.dao.MUserMapper; 9 | import rml.model.MUser; 10 | 11 | @Service("muserService") 12 | public class MUserServiceImpl implements MUserServiceI{ 13 | 14 | private MUserMapper muserMapper; 15 | 16 | public MUserMapper getMuserMapper() { 17 | return muserMapper; 18 | } 19 | 20 | @Autowired 21 | public void setMuserMapper(MUserMapper muserMapper) { 22 | this.muserMapper = muserMapper; 23 | } 24 | 25 | @Override 26 | public List getAll() { 27 | 28 | return muserMapper.getAll(); 29 | } 30 | 31 | @Override 32 | public int insert(MUser muser) { 33 | 34 | return muserMapper.insert(muser); 35 | } 36 | 37 | @Override 38 | public int update(MUser muser) { 39 | 40 | return muserMapper.updateByPrimaryKey(muser); 41 | } 42 | 43 | @Override 44 | public int delete(String id) { 45 | 46 | return muserMapper.deleteByPrimaryKey(id); 47 | } 48 | 49 | @Override 50 | public MUser selectByPrimaryKey(String id) { 51 | 52 | return muserMapper.selectByPrimaryKey(id); 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /src/main/resources/config.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinXie0131/SpringMVC-Spring-MyBatis/bc91ee490846c6471000167eddfe951171badd6e/src/main/resources/config.properties -------------------------------------------------------------------------------- /src/main/resources/generatorConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 24 | 25 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 |
54 |
55 |
-------------------------------------------------------------------------------- /src/main/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootLogger=DEBUG,Console,File 2 | 3 | log4j.appender.Console=org.apache.log4j.ConsoleAppender 4 | log4j.appender.Console.Target=System.out 5 | log4j.appender.Console.layout=org.apache.log4j.PatternLayout 6 | log4j.appender.Console.layout.ConversionPattern=[%c]%m%n 7 | 8 | log4j.appender.File=org.apache.log4j.RollingFileAppender 9 | log4j.appender.File.File=mybatis.log 10 | log4j.appender.File.MaxFileSize=10MB 11 | log4j.appender.File.Threshold=ALL 12 | log4j.appender.File.layout=org.apache.log4j.PatternLayout 13 | log4j.appender.File.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}][%c]%m%n -------------------------------------------------------------------------------- /src/main/resources/spring-mvc.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | text/html;charset=UTF-8 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 31 | 32 | UTF-8 33 | 34 | 35 | 10485760 36 | 37 | 38 | 4096 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /src/main/resources/spring-mybatis.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /src/main/resources/spring.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/main/webapp/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Class-Path: 3 | 4 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | zhibing_mybatis 4 | 5 | 6 | contextConfigLocation 7 | classpath:spring.xml,classpath:spring-mybatis.xml 8 | 9 | 10 | 11 | encodingFilter 12 | org.springframework.web.filter.CharacterEncodingFilter 13 | 14 | encoding 15 | UTF-8 16 | 17 | 18 | 19 | encodingFilter 20 | /* 21 | 22 | 23 | 24 | spring listener 25 | org.springframework.web.context.ContextLoaderListener 26 | 27 | 28 | 29 | spring mvc servlet 30 | springmvc 31 | org.springframework.web.servlet.DispatcherServlet 32 | 33 | springmvc config 34 | contextConfigLocation 35 | classpath:spring-mvc.xml 36 | 37 | 1 38 | 39 | 40 | springmvc 41 | *.do 42 | 43 | 44 | 45 | index.html 46 | index.htm 47 | index.jsp 48 | 49 | -------------------------------------------------------------------------------- /src/main/webapp/addUser.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 | <% 3 | String path = request.getContextPath(); 4 | String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 | %> 6 | 7 | 8 | 9 | My JSP 'addUser.jsp' starting page 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 31 | 34 | 35 |
name:
age:
address:
29 | 30 | 32 | 33 |
36 |
37 | 38 | 39 | -------------------------------------------------------------------------------- /src/main/webapp/index.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> 2 | <% 3 | String path = request.getContextPath(); 4 | String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 | %> 6 | 7 | 8 | 9 | 10 | 11 | 12 | My JSP 'index.jsp' starting page 13 | 14 | 15 | 16 | 17 | 18 | 21 | 22 | 23 | 24 | Spring core + Spring MVC + MyBatis
25 | 26 | User List 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/main/webapp/listUser.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 3 | <% 4 | String path = request.getContextPath(); 5 | String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 6 | %> 7 | 8 | 9 | 10 | 11 | 12 | User list 13 | 14 | 15 |

UserList

16 | Add User
17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 |
IdNameAgeAddressDeleteUpdate
${user.id }${user.name }${user.age }${user.address }DeleteUpdate
37 | 38 | 39 | -------------------------------------------------------------------------------- /src/main/webapp/updateUser.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 | <% 3 | String path = request.getContextPath(); 4 | String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 | %> 6 | 7 | 8 | 9 | My JSP 'updateUser.jsp' starting page 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 20 | 23 | 24 | 25 | 28 | 31 | 32 | 33 | 36 | 39 | 40 | 41 | 44 | 47 | 48 |
18 | name: 19 | 21 | 22 |
26 | age: 27 | 29 | 30 |
34 | address: 35 | 37 | 38 |
42 | 43 | 45 | 46 |
49 |
50 | 51 | 52 | -------------------------------------------------------------------------------- /src/test/java/TestMybatis.java: -------------------------------------------------------------------------------- 1 | import java.util.List; 2 | 3 | import org.apache.log4j.Logger; 4 | import org.junit.Test; 5 | import org.junit.runner.RunWith; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.test.context.ContextConfiguration; 8 | import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; 9 | 10 | import rml.model.MUser; 11 | import rml.service.MUserServiceI; 12 | 13 | import com.alibaba.fastjson.JSON; 14 | 15 | @RunWith(SpringJUnit4ClassRunner.class) // = extends SpringJUnit4ClassRunner 16 | @ContextConfiguration(locations = { "classpath:spring.xml", "classpath:spring-mybatis.xml" }) 17 | public class TestMybatis { 18 | 19 | private static final Logger logger = Logger.getLogger(TestMybatis.class); 20 | 21 | private MUserServiceI muserService; 22 | 23 | public MUserServiceI getMuserService() { 24 | return muserService; 25 | } 26 | 27 | @Autowired 28 | public void setMuserService(MUserServiceI muserService) { 29 | this.muserService = muserService; 30 | } 31 | 32 | @Test 33 | public void test1() { 34 | 35 | List list = muserService.getAll(); 36 | logger.info(JSON.toJSONStringWithDateFormat(list, "yyyy-MM-dd HH:mm:ss")); 37 | } 38 | 39 | //@Test 40 | public void test2() { 41 | 42 | MUser muser = new MUser(); 43 | muser.setId("0000"); 44 | muser.setName("aaaa"); 45 | muser.setAge(1234); 46 | muser.setAddress("ABCD"); 47 | int i = muserService.insert(muser); 48 | logger.info(JSON.toJSONStringWithDateFormat("add "+i, "yyyy-MM-dd HH:mm:ss")); 49 | } 50 | 51 | //@Test 52 | public void test3() { 53 | 54 | MUser muser = new MUser(); 55 | muser.setId("0000"); 56 | muser.setName("bbbb"); 57 | muser.setAge(1234); 58 | muser.setAddress("ABCD"); 59 | int i = muserService.update(muser); 60 | logger.info(JSON.toJSONStringWithDateFormat("update " +i, "yyyy-MM-dd HH:mm:ss")); 61 | } 62 | 63 | //@Test 64 | public void test4() { 65 | 66 | MUser muser = new MUser(); 67 | muser.setId("0000"); 68 | muser.setName("bbbb"); 69 | muser.setAge(1234); 70 | muser.setAddress("ABCD"); 71 | int i = muserService.delete("0000"); 72 | logger.info(JSON.toJSONStringWithDateFormat("delete "+i, "yyyy-MM-dd HH:mm:ss")); 73 | } 74 | 75 | } 76 | -------------------------------------------------------------------------------- /target/classes/config.properties: -------------------------------------------------------------------------------- 1 | hibernate.dialect=org.hibernate.dialect.OracleDialect 2 | driverClassName=oracle.jdbc.driver.OracleDriver 3 | validationQuery=SELECT 1 FROM DUAL 4 | jdbc_url=jdbc:oracle:thin:@localhost:1521:orcl 5 | jdbc_username=scott 6 | jdbc_password=oracle -------------------------------------------------------------------------------- /target/classes/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootLogger=DEBUG,Console,File 2 | 3 | log4j.appender.Console=org.apache.log4j.ConsoleAppender 4 | log4j.appender.Console.Target=System.out 5 | log4j.appender.Console.layout=org.apache.log4j.PatternLayout 6 | log4j.appender.Console.layout.ConversionPattern=[%c]%m%n 7 | 8 | log4j.appender.File=org.apache.log4j.RollingFileAppender 9 | log4j.appender.File.File=mybatis.log 10 | log4j.appender.File.MaxFileSize=10MB 11 | log4j.appender.File.Threshold=ALL 12 | log4j.appender.File.layout=org.apache.log4j.PatternLayout 13 | log4j.appender.File.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}][%c]%m%n -------------------------------------------------------------------------------- /target/classes/rml/controller/MUserController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinXie0131/SpringMVC-Spring-MyBatis/bc91ee490846c6471000167eddfe951171badd6e/target/classes/rml/controller/MUserController.class -------------------------------------------------------------------------------- /target/classes/rml/dao/MUserMapper.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinXie0131/SpringMVC-Spring-MyBatis/bc91ee490846c6471000167eddfe951171badd6e/target/classes/rml/dao/MUserMapper.class -------------------------------------------------------------------------------- /target/classes/rml/mapping/MUserMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | ID, NAME, AGE, ADDRESS 12 | 13 | 19 | 20 | delete from MUSER 21 | where ID = #{id,jdbcType=VARCHAR} 22 | 23 | 24 | insert into MUSER (ID, NAME, AGE, 25 | ADDRESS) 26 | values (#{id,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{age,jdbcType=DECIMAL}, 27 | #{address,jdbcType=VARCHAR}) 28 | 29 | 30 | insert into MUSER 31 | 32 | 33 | ID, 34 | 35 | 36 | NAME, 37 | 38 | 39 | AGE, 40 | 41 | 42 | ADDRESS, 43 | 44 | 45 | 46 | 47 | #{id,jdbcType=VARCHAR}, 48 | 49 | 50 | #{name,jdbcType=VARCHAR}, 51 | 52 | 53 | #{age,jdbcType=DECIMAL}, 54 | 55 | 56 | #{address,jdbcType=VARCHAR}, 57 | 58 | 59 | 60 | 61 | update MUSER 62 | 63 | 64 | NAME = #{name,jdbcType=VARCHAR}, 65 | 66 | 67 | AGE = #{age,jdbcType=DECIMAL}, 68 | 69 | 70 | ADDRESS = #{address,jdbcType=VARCHAR}, 71 | 72 | 73 | where ID = #{id,jdbcType=VARCHAR} 74 | 75 | 76 | update MUSER 77 | set NAME = #{name,jdbcType=VARCHAR}, 78 | AGE = #{age,jdbcType=DECIMAL}, 79 | ADDRESS = #{address,jdbcType=VARCHAR} 80 | where ID = #{id,jdbcType=VARCHAR} 81 | 82 | 83 | 86 | -------------------------------------------------------------------------------- /target/classes/rml/model/MUser.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinXie0131/SpringMVC-Spring-MyBatis/bc91ee490846c6471000167eddfe951171badd6e/target/classes/rml/model/MUser.class -------------------------------------------------------------------------------- /target/classes/rml/service/MUserServiceI.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinXie0131/SpringMVC-Spring-MyBatis/bc91ee490846c6471000167eddfe951171badd6e/target/classes/rml/service/MUserServiceI.class -------------------------------------------------------------------------------- /target/classes/rml/service/MUserServiceImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinXie0131/SpringMVC-Spring-MyBatis/bc91ee490846c6471000167eddfe951171badd6e/target/classes/rml/service/MUserServiceImpl.class -------------------------------------------------------------------------------- /target/classes/spring-mvc.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | text/html;charset=UTF-8 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 31 | 32 | UTF-8 33 | 34 | 35 | 10485760 36 | 37 | 38 | 4096 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /target/classes/spring-mybatis.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /target/classes/spring.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /target/m2e-jee/web-resources/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Build-Jdk: 1.6.0_43 3 | Built-By: Administrator 4 | Created-By: Maven Integration for Eclipse 5 | 6 | -------------------------------------------------------------------------------- /target/m2e-jee/web-resources/META-INF/maven/zhibing_mybatis/zhibing_mybatis/pom.properties: -------------------------------------------------------------------------------- 1 | #Generated by Maven Integration for Eclipse 2 | #Fri Jul 04 23:09:46 EDT 2014 3 | version=0.0.1-SNAPSHOT 4 | groupId=zhibing_mybatis 5 | m2e.projectName=zhibing_mybatis 6 | m2e.projectLocation=C\:\\WorkspaceMyEclipse\\zhibing_mybatis 7 | artifactId=zhibing_mybatis 8 | -------------------------------------------------------------------------------- /target/m2e-jee/web-resources/META-INF/maven/zhibing_mybatis/zhibing_mybatis/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4.0.0 3 | zhibing_mybatis 4 | zhibing_mybatis 5 | 0.0.1-SNAPSHOT 6 | war 7 | zhibing_mybatis 8 | 9 | 10 | UTF-8 11 | 12 | 3.2.9.RELEASE 13 | 3.1.1 14 | 1.1.1 15 | 16 | 17 | 18 | 19 | org.springframework 20 | spring-core 21 | ${spring.version} 22 | 23 | 24 | org.springframework 25 | spring-webmvc 26 | ${spring.version} 27 | 28 | 29 | org.springframework 30 | spring-test 31 | ${spring.version} 32 | 33 | 34 | org.mybatis 35 | mybatis 36 | ${mybatis.version} 37 | 38 | 39 | org.mybatis 40 | mybatis-spring 41 | ${mybatisspring.version} 42 | 43 | 44 | com.oracle 45 | ojdbc14 46 | 10.2.0.1.0 47 | 48 | 49 | junit 50 | junit 51 | 4.11 52 | test 53 | 54 | 55 | com.alibaba 56 | druid 57 | 0.2.26 58 | 59 | 60 | org.aspectj 61 | aspectjweaver 62 | 1.8.1 63 | 64 | 65 | javax.servlet 66 | jstl 67 | 1.2 68 | 69 | 70 | javax.servlet 71 | servlet-api 72 | 3.0-alpha-1 73 | 74 | 75 | javax.servlet.jsp 76 | jsp-api 77 | 2.2.1-b03 78 | provided 79 | 80 | 81 | commons-fileupload 82 | commons-fileupload 83 | 1.3.1 84 | 85 | 86 | log4j 87 | log4j 88 | 1.2.17 89 | 90 | 91 | com.alibaba 92 | fastjson 93 | 1.1.41 94 | 95 | 96 | org.codehaus.jackson 97 | jackson-mapper-asl 98 | 1.9.13 99 | 100 | 101 | 102 | 103 | 104 | 105 | maven-compiler-plugin 106 | 2.3.2 107 | 108 | 1.6 109 | 1.6 110 | 111 | 112 | 113 | maven-war-plugin 114 | 2.2 115 | 116 | 3.0 117 | false 118 | 119 | 120 | 121 | 122 | zhibing_mybatis 123 | 124 | -------------------------------------------------------------------------------- /target/test-classes/TestMybatis.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KevinXie0131/SpringMVC-Spring-MyBatis/bc91ee490846c6471000167eddfe951171badd6e/target/test-classes/TestMybatis.class --------------------------------------------------------------------------------