程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Spring整合MyBatis(Maven+MySQL)圖文教程詳解

Spring整合MyBatis(Maven+MySQL)圖文教程詳解

編輯:關於JAVA

Spring整合MyBatis(Maven+MySQL)圖文教程詳解。本站提示廣大學習愛好者:(Spring整合MyBatis(Maven+MySQL)圖文教程詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是Spring整合MyBatis(Maven+MySQL)圖文教程詳解正文


1、 應用Maven創立一個Web項目

為了完成Spring4.x與MyBatis3.X的整合加倍順遂,先回想在Maven情況下創立Web項目並應用MyBatis3.X,第1、二點內容多半是回想曩昔的內容 。

1.2、點擊“File”->“New”->"Other"->輸出“Maven”,新建一個“Maven Project”,以下圖所示:

1.2、請勾選“Create a simple project”,創立一個簡略的項目,不應用模板。也能夠應用模板,選擇WebApp,不外這裡就不該該勾選。以下圖所示:

1.3、填寫好包名、項目名,選擇打包類型為:war,以下圖所示:

1.4、項目創立好後能夠會發明有毛病,選擇項目,右鍵“屬性properties”->"層面Project Facets"->"Java"修正版本號為1.7,默許為1.5;點擊“Ok”保留後封閉。以下圖所示:

1.5、反復上一個步調,反勾Dynamic Web Module,將項目臨時釀成非Web項目。點擊“Ok”保留後封閉。

1.6、反復上一步調,再進層面屬性,勾選“Dynamic Web Module”選擇Version為3.0。點擊左下角的超鏈接“Further Configuration available...“。

1.7、勾選“Generate web.xml deployment descriptor”生成web.xml安排描寫文件。點擊“Ok”保留後封閉。

1.8、將生成的WebContent目次下的兩個文件夾“META-INF”與“WEB-INF”復制到src/main/webapp目次下。

1.9、刪除WebContent目次。

1.10、刪除後會發明項目標pom.xml文件報錯,是由於找不到指定地位的web.xml文件惹起的。再進入項目標屬性,選擇“Deployment Assembly”項目安排項,刪除“src/test/java”、“src/test/resources”與“WebContent”目次,由於這三項不須要安排出去。

1.11、點擊“Add添加”後選擇“Folder文件夾”為項目標終究安排成果指定Web內容根文件夾。

1.12、選擇src\main\webapp目次為目的目次,點擊“Finish完成”保留並封閉。

1.13、假如此時項目還報錯,隨意修正pom.xml文件後保留後應當毛病會消逝。

1.14、在src\main\webapp目次下新建一個index.jsp文件,作為測試應用。

1.15、新建完成後發明有毛病,是由於沒有JavaEE Server Runtime惹起的,在項目上右鍵屬性選擇“Java Build Path”項,點擊“Add Library...”添加援用。

1.16、選擇Server Runtime項,點擊“Next下一步”,再選擇“Apache Tomcat v7.0”,這裡能夠要依據本身的運轉情況選擇了,假如還沒Server,則應當先整合Tomcat。

1.17、在index.jsp文件中寫上測試內容。

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hello World!</title>
</head>
<body>
Hello World!
<p>
<%=new java.util.Date().toLocaleString() %>
</p>
</body>
</html>

1.18、在項目上右鍵選擇“Run as”-> “Run on Server”運轉項目,運轉成果以下。

2、應用MyBatis完成MySQL數據庫拜訪

2.1、添加依附

要完成應用MyBatis拜訪MySQL數據庫,須要添加一些依附包,包括MyBatis3,銜接驅動,JUnit,Log4j2等。可以去同享資本庫中搜刮,第一個網站地址是:http://mvnrepository.com/, 這裡以搜刮銜接驅動為示例,搜刮後的成果有5.xx版很多,也有6.xx版,但不建議應用6.xx版,由於MyBatis3不支撐。

我們選擇5.0版中的5.1.38,將Maven的依附信息復制到項目中的pom.xml的dependencies結點下

固然也可去別的一個網站:http://search.maven.org/,這裡以log4j為例子搜刮以下:

有一些依附也能夠直接去官網查找,如MyBatis3:

項目標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>Spring061</artifactId>
  <version>0.0.1</version>
  <packaging>war</packaging>
  <dependencies>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.38</version>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <version>2.6.1</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.1</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.10</version>
    </dependency>
  </dependencies>
</project>

援用成果:

假如在網速不穩固的情形下,下載包很有能夠掉敗,可以嘗嘗強迫項目從新下載;可使用下載對象將jar包下載背工復制到當地資本庫中。

2.2、預備數據

翻開MySQL數據庫,創立一個表,這裡以booktypes表為例。

sql劇本以下:

/*
Navicat MySQL Data Transfer

Source Server     : localhost
Source Server Version : 50536
Source Host      : localhost:3306
Source Database    : db2

Target Server Type  : MYSQL
Target Server Version : 50536
File Encoding     : 65001

Date: 2016-07-04 10:49:56
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `booktypes`
-- ----------------------------
DROP TABLE IF EXISTS `booktypes`;
CREATE TABLE `booktypes` (
 `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '類型編號',
 `typeName` varchar(100) NOT NULL COMMENT '類型稱號',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=94 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of booktypes
-- ----------------------------
INSERT INTO `booktypes` VALUES ('1', '盤算機軟件開辟');
INSERT INTO `booktypes` VALUES ('2', '盤算機收集工程');
INSERT INTO `booktypes` VALUES ('3', '神話小說');
INSERT INTO `booktypes` VALUES ('4', '科幻小說');
INSERT INTO `booktypes` VALUES ('5', '外語');
INSERT INTO `booktypes` VALUES ('6', '測試類型');
INSERT INTO `booktypes` VALUES ('7', '91');
INSERT INTO `booktypes` VALUES ('8', '92');
INSERT INTO `booktypes` VALUES ('9', '93');
INSERT INTO `booktypes` VALUES ('91', '修建設計');
INSERT INTO `booktypes` VALUES ('92', '工業設計');
INSERT INTO `booktypes` VALUES ('93', '船舶制作');

2.3、創立java Bean

在包com.zhangguo.Spring61.entities下添加類BookType類型。

package com.zhangguo.Spring61.entities;
/**
 * 圖書類型
 *
 */
public class BookType {
  /**
   * 編號
   */
  private int id;
  /**
   * 類型名
   */
  private String typeName;
  public int getId() {
    return id;
  }
  public void setId(int id) {
    this.id = id;
  }
  public String getTypeName() {
    return typeName;
  }
  public void setTypeName(String typeName) {
    this.typeName = typeName;
  }

2.4、創立實例與表的映照文件

這裡用接口+XML的情勢完成,BookType數據拜訪接口以下:

package com.zhangguo.Spring61.mapping;
import java.util.List;
import com.zhangguo.Spring61.entities.BookType;
/**
 * 圖書類型數據拜訪接口
 *
 */
public interface BookTypeDAO {
  /*
   * 取得一切圖書類型
   */
  public List<BookType> getAllBookTypes();
}

BookTypeMapper.xml文件以下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--定名空間應當是對應接口的包名+類名 -->
<mapper namespace="com.zhangguo.Spring61.mapping.BookTypeDAO">
  <!--id應當是接口中的辦法,成果類型如沒有設置裝備擺設別號則應當應用全稱號 -->
  <select id="getAllBookTypes" resultType="BookType">
    select id,typeName from booktypes
  </select>
</mapper>

2.5、創立MyBatisCfg.xml文件

MyBatisCfg.xml文件用於設置裝備擺設MyBatis的運轉情況,內容以下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <!-- 指定命據庫銜接信息的地位 -->
  <properties resource="db.properties"></properties>
  <!--類型別號,默許引入com.zhangguo.Spring61.entities下的一切類 -->
  <typeAliases>
    <package name="com.zhangguo.Spring61.entities"/>
  </typeAliases>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC" />
      <dataSource type="POOLED">
        <property name="driver" value="${driver}" />
        <property name="url" value="${url}" />
        <property name="username" value="${username}" />
        <property name="password" value="${password}" />
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <!--引入映照文件 -->
    <mapper resource="com/zhangguo/Spring61/mapping/BookTypeMapper.xml" />
  </mappers>
</configuration>

由於設置裝備擺設中依附了db.properties文件,該文件用於指定命據庫的銜接信息,內容以下:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/db2
username=root
password=root

2.6、完成數據拜訪功效

為了加倍便利的復用MyBatis完成數據拜訪不須要頻仍的創立SQLSessionFactory和SQLSession對象,封裝一個MyBatisUtil對象類以下:

package com.zhangguo.Spring61.dao;
import java.io.InputStream;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public abstract class MyBatisUtil {
  //GC不睬static
  private static SqlSessionFactory factory=null;
  public static SqlSessionFactory getSqlSessionFactory(){
    if(factory==null){
    // 取得情況設置裝備擺設文件流
    InputStream config = MyBatisUtil.class.getClassLoader().getResourceAsStream("MyBatisCfg.xml");
    // 創立sql會話工場
    factory = new SqlSessionFactoryBuilder().build(config);
    }
    return factory;
  }
  //取得會話
  public static SqlSession getSession(){
    return getSqlSessionFactory().openSession(true);
  }
  /**
   * 取得得sql會話
   * @param isAutoCommit 能否主動提交,假如為false則須要sqlSession.commit();rollback();
   * @return sql會話
   */
  public static SqlSession getSession(boolean isAutoCommit){
    return getSqlSessionFactory().openSession(isAutoCommit);
  }
}

創立類BookTypeDAOImpl完成接口BookTypeDAO,這裡要經由過程MyBatis完成數據拜訪功效,內容以下:

package com.zhangguo.Spring61.dao;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import com.zhangguo.Spring61.entities.BookType;
import com.zhangguo.Spring61.mapping.BookTypeDAO;
/**
 * 完成圖書類型數據拜訪
 *
 */
public class BookTypeDAOImpl implements BookTypeDAO {
  @Override
  public List<BookType> getAllBookTypes() {
    //取得會話對象
    SqlSession session=MyBatisUtil.getSession();
    try {
      //經由過程MyBatis完成接口BookTypeDAO,前往實例
      BookTypeDAO bookTypeDAO=session.getMapper(BookTypeDAO.class);
      return bookTypeDAO.getAllBookTypes();
    } finally {
      session.close();
    }
  }
}

3、應用Spring4.X整合MyBatis3.X

以上所述是小編給年夜家引見的Spring整合MyBatis(Maven+MySQL)圖文教程詳解,願望對年夜家有所贊助,假如年夜家有任何疑問請給我留言,小編會實時答復年夜家的。在此也異常感激年夜家對網站的支撐!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved