国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

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

2019-11-26 14:06:35
字體:
供稿:網(wǎng)友

一、 使用Maven創(chuàng)建一個Web項目

為了完成Spring4.x與MyBatis3.X的整合更加順利,先回顧在Maven環(huán)境下創(chuàng)建Web項目并使用MyBatis3.X,第一、二點內(nèi)容多數(shù)是回顧過去的內(nèi)容 。

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

1.2、請勾選“Create a simple project”,創(chuàng)建一個簡單的項目,不使用模板。也可以使用模板,選擇WebApp,不過這里就不應該勾選。如下圖所示:

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

1.4、項目創(chuàng)建好后可能會發(fā)現(xiàn)有錯誤,選擇項目,右鍵“屬性properties”->"層面Project Facets"->"Java"修改版本號為1.7,默認為1.5;點擊“Ok”保存后關(guān)閉。如下圖所示:

1.5、重復上一個步驟,反勾Dynamic Web Module,將項目暫時變成非Web項目。點擊“Ok”保存后關(guān)閉。

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

1.7、勾選“Generate web.xml deployment descriptor”生成web.xml部署描述文件。點擊“Ok”保存后關(guān)閉。

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

1.9、刪除WebContent目錄。

1.10、刪除后會發(fā)現(xiàn)項目的pom.xml文件報錯,是因為找不到指定位置的web.xml文件引起的。再進入項目的屬性,選擇“Deployment Assembly”項目部署項,刪除“src/test/java”、“src/test/resources”與“WebContent”目錄,因為這三項不需要部署出去。

1.11、點擊“Add添加”后選擇“Folder文件夾”為項目的最終部署結(jié)果指定Web內(nèi)容根文件夾。

1.12、選擇src/main/webapp目錄為目標目錄,點擊“Finish完成”保存并關(guān)閉。

1.13、如果此時項目還報錯,隨便修改pom.xml文件后保存后應該錯誤會消失。

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

1.15、新建完成后發(fā)現(xiàn)有錯誤,是因為沒有JavaEE Server Runtime引起的,在項目上右鍵屬性選擇“Java Build Path”項,點擊“Add Library...”添加引用。

1.16、選擇Server Runtime項,點擊“Next下一步”,再選擇“Apache Tomcat v7.0”,這里可能要根據(jù)自己的運行環(huán)境選擇了,如果還沒Server,則應該先整合Tomcat。

1.17、在index.jsp文件中寫上測試內(nèi)容。

<%@ 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”運行項目,運行結(jié)果如下。

二、使用MyBatis完成MySQL數(shù)據(jù)庫訪問

2.1、添加依賴

要完成使用MyBatis訪問MySQL數(shù)據(jù)庫,需要添加一些依賴包,包含MyBatis3,連接驅(qū)動,JUnit,Log4j2等。可以去共享資源庫中搜索,第一個網(wǎng)站地址是:http://mvnrepository.com/, 這里以搜索連接驅(qū)動為示例,搜索后的結(jié)果有5.xx版許多,也有6.xx版,但不建議使用6.xx版,因為MyBatis3不支持。

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

當然也可去另外一個網(wǎng)站:http://search.maven.org/,這里以log4j為例子搜索如下:

有一些依賴也可以直接去官網(wǎng)查找,如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>

引用結(jié)果:

如果在網(wǎng)速不穩(wěn)定的情況下,下載包很有可能失敗,可以試試強制項目重新下載;可以使用下載工具將jar包下載后手復制到本地資源庫中。

2.2、準備數(shù)據(jù)

打開MySQL數(shù)據(jù)庫,創(chuàng)建一個表,這里以booktypes表為例。

sql腳本如下:

/*Navicat MySQL Data TransferSource Server     : localhostSource Server Version : 50536Source Host      : localhost:3306Source Database    : db2Target Server Type  : MYSQLTarget Server Version : 50536File Encoding     : 65001Date: 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', '計算機軟件開發(fā)');INSERT INTO `booktypes` VALUES ('2', '計算機網(wǎng)絡工程');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', '工業(yè)設計');INSERT INTO `booktypes` VALUES ('93', '船舶制造');

2.3、創(chuàng)建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、創(chuàng)建實例與表的映射文件

這里用接口+XML的形式完成,BookType數(shù)據(jù)訪問接口如下:

package com.zhangguo.Spring61.mapping;import java.util.List;import com.zhangguo.Spring61.entities.BookType;/** * 圖書類型數(shù)據(jù)訪問接口 * */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應該是接口中的方法,結(jié)果類型如沒有配置別名則應該使用全名稱 -->  <select id="getAllBookTypes" resultType="BookType">    select id,typeName from booktypes  </select></mapper>

2.5、創(chuàng)建MyBatisCfg.xml文件

MyBatisCfg.xml文件用于配置MyBatis的運行環(huán)境,內(nèi)容如下:

<?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>  <!-- 指定數(shù)據(jù)庫連接信息的位置 -->  <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文件,該文件用于指定數(shù)據(jù)庫的連接信息,內(nèi)容如下:

driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/db2username=rootpassword=root

2.6、實現(xiàn)數(shù)據(jù)訪問功能

為了更加方便的復用MyBatis實現(xiàn)數(shù)據(jù)訪問不需要頻繁的創(chuàng)建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){    // 獲得環(huán)境配置文件流    InputStream config = MyBatisUtil.class.getClassLoader().getResourceAsStream("MyBatisCfg.xml");    // 創(chuàng)建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);  }}

創(chuàng)建類BookTypeDAOImpl實現(xiàn)接口BookTypeDAO,這里要通過MyBatis實現(xiàn)數(shù)據(jù)訪問功能,內(nèi)容如下:

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;/** * 實現(xiàn)圖書類型數(shù)據(jù)訪問 * */public class BookTypeDAOImpl implements BookTypeDAO {  @Override  public List<BookType> getAllBookTypes() {    //獲得會話對象    SqlSession session=MyBatisUtil.getSession();    try {      //通過MyBatis實現(xiàn)接口BookTypeDAO,返回實例      BookTypeDAO bookTypeDAO=session.getMapper(BookTypeDAO.class);      return bookTypeDAO.getAllBookTypes();    } finally {      session.close();    }  }}

三、使用Spring4.X整合MyBatis3.X

以上所述是小編給大家介紹的Spring整合MyBatis(Maven+MySQL)圖文教程詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 铜梁县| 甘孜| 枞阳县| 高唐县| 太谷县| 凌海市| 临汾市| 文昌市| 龙岩市| 边坝县| 黄大仙区| 汾阳市| 泸溪县| 岳普湖县| 丰台区| 汉阴县| 南宁市| 新营市| 安陆市| 敦化市| 珲春市| 荥阳市| 蒙城县| 盐池县| 咸丰县| 体育| 庆云县| 惠水县| 勃利县| 龙口市| 石阡县| 巴塘县| 宣武区| 西昌市| 夏津县| 靖远县| 双鸭山市| 天全县| 宜兰市| 大宁县| 石家庄市|