轉:
Spring集成MyBatis完整示例
該文詳細的通過Spring IOC、MyBatis、Servlet、Maven及Spring整合MyBatis的等技術完成一個簡單的圖書管理功能,實現圖書列表、刪除、多刪除、編輯、新增功能。梳理前面學習的內容《Spring整合MyBatis(Maven+MySQL)一》與《Spring整合MyBatis(Maven+MySQL)二》,做一個完整的示例完成一個簡單的圖書管理功能,主要使用到的技術包含Spring、MyBatis、Maven、MySQL及簡單MVC等。最后的運行效果如下所示:
項目結構如下:
一、新建一個基於Maven的Web項目
1.1、創建一個簡單的Maven項目,項目信息如下:
1.2、修改層面信息,在項目上右鍵選擇屬性,再選擇“Project Facets”,先設置java運行環境為1.7,先去掉"Dynamic Web Module"前的勾,然后保存關閉;再打開勾選上"Dynamic Web Module",版本選擇“3.0”;這里在左下解會出現一個超鏈接,創建“Web Content”,完成關閉。
1.3、修改項目的部署內容。項目上右鍵屬性,選擇“Deplyment Assembly”,刪除不需要發布的內容如:帶“test”的兩個目錄,WebContent目錄,再添加一個main下的webapp目錄。
修改后的結果如下所示:
1.4、修改項目內容。將WebContent下的內容復制到/src/main/webapp下,再刪除WebContent目錄,修改后的結果如下所示:
1.5、添加“服務器運行時(Server Runtime)”,添加后的結果如下:
二、創建數據庫與表
啟動MySQL,創建數據庫,新建表books,插入測試數據,完成后的表如下所示:
創建表的sql腳本如下:
/* Navicat MySQL Data Transfer Source Server : localhost Source Server Version : 50536 Source Host : localhost:3306 Source Database : db1 Target Server Type : MYSQL Target Server Version : 50536 File Encoding : 65001 Date: 2016-07-06 22:05:07 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `books` -- ---------------------------- DROP TABLE IF EXISTS `books`; CREATE TABLE `books` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '編號', `title` varchar(100) NOT NULL COMMENT '書名', `price` decimal(10,2) DEFAULT NULL COMMENT '價格', `publishDate` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '出版日期', PRIMARY KEY (`id`), UNIQUE KEY `title` (`title`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of books -- ---------------------------- INSERT INTO `books` VALUES ('1', 'Java編程思想', '98.50', '2005-01-02 00:00:00'); INSERT INTO `books` VALUES ('2', 'HeadFirst設計模式', '55.70', '2010-11-09 00:00:00'); INSERT INTO `books` VALUES ('3', '第一行Android代碼', '69.90', '2015-06-23 00:00:00'); INSERT INTO `books` VALUES ('4', 'C++編程思想', '88.50', '2004-01-09 00:00:00'); INSERT INTO `books` VALUES ('5', 'HeadFirst Java', '55.70', '2013-12-17 00:00:00'); INSERT INTO `books` VALUES ('6', '瘋狂Android', '19.50', '2014-07-31 00:00:00');
需特別注意的是書名是唯一鍵。
三、添加依賴包
項目主要依賴的jar包有Spring核心包、Spring AOP包、MyBatis ORM包、MyBatis-Spring適配包、JSTL、JUnit、Log4j2等,具體的pom.xml文件如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.zhangguo</groupId> <artifactId>BookStore</artifactId> <version>0.0.1</version> <packaging>war</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring.version>4.3.0.RELEASE</spring.version> </properties> <dependencies> <!--Spring框架核心庫 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <!-- aspectJ AOP 織入器 --> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.9</version> </dependency> <!-- Spring Web --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <!--mybatis-spring適配器 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.0</version> </dependency> <!--Spring java數據庫訪問包,在本例中主要用於提供數據源 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <!--mysql數據庫驅動 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> <!--log4j日志包 --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.6.1</version