Spring整合MyBatis(Maven+MySQL)图文教程详解

一、 使用Maven创建一个Web项目

为了完成Spring4.x与MyBatis3.X的整合更加顺利,先回顾在Maven环境下创建Web项目并使用MyBatis3.X,第一、二点内容多数是回顾过去的内容 。

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”运行项目,运行结果如下。

二、使用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();
    }
  }
}

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

以上所述是小编给大家介绍的Spring整合MyBatis(Maven+MySQL)图文教程详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • spring的maven配置文件整理

    spring maven配置文件整理 spring各个包的maven配置文件 <!--spring-context--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.2.2.RELEASE</version> </dependency> &

  • Eclipse 使用Maven构建SpringMVC项目

    首先Eclipse需要安装Maven的插件,地址:http://m2eclipse.sonatype.org/sites/m2e. 用MyEclipse安装Maven插件,建出的Maven项目有些问题.一是,发布tomcat的时候resources总是不会被发布到tomcat下:二是,把WEB-INF下的classes改到target下的classes,但是不知道为什么MyEclipse要么仍然在WEB-INF下生成class.要么真不在WEB-INF生成classes了但是发布tomcat的时

  • Maven管理SpringBoot Profile详解

    1. Spring Profile Spring可使用Profile绝对程序在不同环境下执行情况,包含配置.加载Bean.依赖等. Spring的Profile一般项目包含:dev(开发), test(单元测试), qa(集成测试), prod(生产环境).由spring.profiles.active属性绝定启用的profile. SpringBoot的配置文件默认为 application.properties(或yaml,此外仅心properties配置为说明).不同Profile下的配置

  • Maven 搭建SpringMVC+Hibernate项目详解

    前言 今天复习一下SpringMVC+Hibernate的搭建,本来想着将Spring-Security权限控制框架也映入其中的,但是发现内容太多了,Spring-Security的就留在下一篇吧,这篇主要搭建SpringMVC4.1.4和Hibernate4.3.8,之前也打了好多SpringMVC的,这部分已经非常的熟悉了,毕竟业开发过一年多SpringMVC的,这次持久层采用Hibernate,数据源采用c3p0,数据库暂采用MySQL,主要是想复习一下Hibernate.搭建Spring

  • maven搭建spring项目(图文教程)

    开发工具:MyEclipse2014版(jdk1.7)+Maven3.9. 新建Maven项目: Step1: Step2: Step3:这里选maven-archetype-webapp,因为后面的项目讲解都是web项目.如果是纯java项目,可以选择 maven-archetype-quickstart. Step4: Step5:右键项目,build path,修改jdk运行环境. 到这里,maven的web项目初建完毕. 修改:pom.xml <project xmlns="htt

  • Mac版PhpStorm之XAMPP整合apache服务器配置的图文教程详解

    选择在PhpStorm集成apache服务器,下面是我自己的亲测的步骤. 1.如何修改apache默认端口 xampp apache默认的http访问端口是80 修改完成后在xampp中重启apache. 2.配置流程 打开Settings / Preferences 找到 Build, Execution, Deployment 选项,点击 Deployment 添加如下: 因为我们修改了默认端口80,所以这里一定要指明端口号.目录是/Applications/XAMPP/xamppfiles

  • Spring整合MyBatis(Maven+MySQL)图文教程详解

    一. 使用Maven创建一个Web项目 为了完成Spring4.x与MyBatis3.X的整合更加顺利,先回顾在Maven环境下创建Web项目并使用MyBatis3.X,第一.二点内容多数是回顾过去的内容 . 1.2.点击"File"->"New"->"Other"->输入"Maven",新建一个"Maven Project",如下图所示: 1.2.请勾选"Create a si

  • windows版本下mysql的安装启动和基础配置图文教程详解

    下载: 第一步 : 打开网址(进入官网下载) :https://www.mysql.com ,点击downloads之后跳转到https://www.mysql.com/downloads 第二步 :跳转至网址https://dev.mysql.com/downloads/,选择Community选项 第三步 :点击MySQL Community Server进入https://dev.mysql.com/downloads/mysql/页面,再点击5.6版本的数据库 第四步:windows操作

  • IDEA 搭建maven 安装、下载、配置的图文教程详解

    1.下载 maven 压缩包 输入网址 www.apache.org 会看到以下界面 住下划看到以下界面 然后看到这个界面 选择下载这个版本 下载后 解压 maven 压缩包 (文件路径不建议用有中文的,最好自己新建一个那样方便好多) 然后创建本地仓库MavenRepository 然后 打开 conf文件夹中 修改里面的 settings.xml 文件 (Notepad++.记事本.等等打开修改) 加上这段 <localRepository>E:/ideaMaven/MavenReposit

  • 基于Spring + Spring MVC + Mybatis 高性能web构建实例详解

    一直想写这篇文章,前段时间痴迷于JavaScript.NodeJs.AngularJS,做了大量的研究,对前后端交互有了更深层次的认识. 今天抽个时间写这篇文章,我有预感,这将是一篇很详细的文章,详细的配置,详细的注释,看起来应该很容易懂. 用最合适的技术去实现,并不断追求最佳实践.这就是架构之道. 希望这篇文章能给你们带来一些帮助,同时希望你们可以为这个项目贡献你的想法. 源码地址:https://github.com/Eliteams/quick4j 点击打开 源码地址:https://gi

  • SpringBoot整合Mybatis与druid实现流程详解

    目录 SpringBoot整合junit SpringBoot整合junit SpringBoot整合junit的classes SpringBoot整合Mybatis 整合前的准备 整合Mybatis SpringBoot 整合druid 配置前置知识小点 整合druid SpringBoot整合junit SpringBoot整合junit ①还是一样,我们首先创建一个SpringBoot模块. 由于我们并不测试前端,而只是整合junit,所以不用选择模板,选择其中的web即可. 完成以后我

  • 云服务器宝塔面板的安装图文教程详解

    0x01.安装宝塔面板 宝塔面板是一个非常简单易用的服务器运维面板,可视化面板,减弱了新手在应对命令式操作Linux服务器时的恐惧感.在安装该面板后,不需要再在服务器上用命令行手动安装.配置Nginx 服务器这些必须的环境配置软件,只需要一键即可完成环境配置.软件安装,对新手以及想快速开发的人员特别友好! 系统要求(来自官方) 内存:512M以上,推荐768M以上(纯面板约占系统的60M内存) 硬盘:100M以上可用的硬盘空间(纯面板占约20M的磁盘空间) 系统:CentOS 7.1+(Ubun

  • 最新版Eclipse安装、配置图文教程详解

    新版Eclipse安装.配置,需要可收藏! 1.去Oracle官网下载一个版本的JDK 注意选适合自己系统的 下载链接:https://www.oracle.com/java/technologies/javase-downloads.html 2.下载好后双击打开 3.下一步 4.记住安装的路径后面会用到!!! 5.关闭 6.配置环境变量,如果不设置PATH变量,则每次运行可执行文件时都必须指定该文件的完整路径 点击桌面的 '此电脑'之后点击箭头处,打开电脑属性 选择高级系统设置 选择环境变量

  • 2020年IntelliJ IDEA最新最详细配置图文教程详解

    推荐阅读: IntelliJ IDEA 2020最新激活码(亲测有效,可激活至 2089 年) 最新idea2020注册码永久激活(激活到2100年) IDEA使用设置 继续idea最新安装的步骤后,对IDEA工作开发进行配置,让开发的时候更加便利顺手. 点击欢迎页右下角"Configure",选择"Settings",进入全局设置界面. 注意:IDEA有全局配置和项目配置两种设置,在欢迎页进行的Settings是对全局配置进行设置.而在项目中setting有可能为

  • java(jdk)环境变量配置(XP、win7、win8)图文教程详解

    对于初学java的同学来说,第一件事不是写hello world,而是搭建好java开发环境,下载jdk,安装,配置环境变量.这些操作在xp.win7.win8不同的操作系统里面配置不太一样,所以我来写一下在上面不同操作系统下是如何配置的. windos系统jdk6~8版本(含32位和64位)下载地址:http://pan.baidu.com/s/1jIslu78 XP 1. 安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为:C:\Program Files\Java\jd

随机推荐