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

网友投稿 220 2023-07-12


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"%>

Hello World!

<%=new java.util.Date().toLocaleStriKfpCrng() %>

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文件如下:

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.zhangguo

Spring061

0.0.1

war

mysql

mysql-connector-java

5.1.38

org.apache.logging.log4j

log4j-core

2.6.1

org.mybatis

mybatis

3.4.1

junit

junit

4.10

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.zhangguo

Spring061

0.0.1

war

mysql

mysql-connector-java

5.1.38

org.apache.logging.log4j

log4j-core

2.6.1

org.mybatis

mybatis

3.4.1

junit

junit

4.10

引用结果:

如果在网速不稳定的情况下,下载包很有可能失败,可以试试强制项目重新下载;可以使用下载工具将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 getAllBookTypes();

}

BookTypeMapper.xml文件如下:

select id,typeName from booktypes

2.5、创建MyBatisCfg.xml文件

MyBatisCfg.xml文件用于配置MyBatis的运行环境,内容如下:

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

因为配置中依赖了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会话工厂

http:// 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 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)图文教程详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何解决手机浏览器页面点击不跳转浏览器双击放大网页
下一篇:JavaWeb框架MVC设计思想详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~