MyBatis第一课 MyBatis的框架的搭建和使用

Posted 笔触狂放

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis第一课 MyBatis的框架的搭建和使用相关的知识,希望对你有一定的参考价值。

概念

MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github

iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)。

当前,最新版本是MyBatis 3.5.9,其发布时间是2021年12月26日。

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

idea中配置MyBatis框架步骤

1.创建web项目

选择file-》new-》project,创建java项目,并勾选上web appliation,然后next

 接着创建项目名称,然后finish

使用当前窗口展示项目

 

2.导入MyBatis相关的架包

在WEB-NF文件夹中新建lib文件夹

 

 

创建完成后,将MyBatis所需要的架包导入lib文件夹mybatis-3.2.2.jar和mysql-connector-java-8.0.23.jar

选中导入的架包,右键-》add as lib。。。

 

 

3.将MyBatis配置文件导入项目的资源文件夹

选中项目右键-》new

 

 

将database.properties和mybatis-config.xml文件粘贴至该文件夹

 

 

 在database.properties文件中定义连接数据库的配置信息

在mybatis-config.xml文件中加入头文件信息

 

 将resources文件夹转换成资源文件夹,选中项目,点击右上角的文件图标

 

可以观察到该文件夹的图标发生变化,说明设置成功

4.配置MyBatis框架的主配置文件信息

打开mybatis-config.xml文件,进行配置

<?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">
<!-- ctrl+shift+/  注释的快捷键  -->
<!-- 添加配置标签 -->
<configuration>
	<!-- 将连接数据库的工具文件加载进来 -->
	<properties resource="database.properties"></properties>
	<!-- 当前项目的环境 -->
	<environments default="development">
		<environment id="development">
		<!-- 配置事务管理器,以JDBC作为连接的事务 -->
			<transactionManager type="JDBC"></transactionManager>
			<!-- 配置数据库连接池 -->
			<dataSource type="POOLED">
			<!--property标签上的name里面的值是固定的  -->
				<property name="driver" value="$driver"/>
				<property name="url" value="$url"/>
				<property name="username" value="$user"/>
				<property name="password" value="$password"/>
			</dataSource>
		</environment>
	</environments>
	
	
</configuration>

5.导入映射文件

通过对于MyBatis框架的了解,该框架是执行在dao层中的持久层框架,因此,我们在搭建MVC框架的时候,把该框架定义在dao层中,我们先选中src-》右键-》package创建包

 

将映射文件导入该包中

 

 

6.在映射文件中编写要执行的sql语句

我们以book表为例,使用sql语句获得book表中书籍的总数量,代码如下

<?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标签上添加一个属性,用于设置命名空间-->
<mapper namespace="com.book.dao">
    <!--查询有多少本图书     编写任何要执行的sql语句都要注意两点,1.是都需要传入数据,2.返回值是什么-->
    <select id="getBookNumber" resultType="int">
        SELECT COUNT(*) FROM book
    </select>

</mapper>

 在配置文件中,首先要配置mapper标签,设置命名空间,该命名空间一般设置为该映射文件所在的包的路径

因该映射文件放置com.book.dao包中,因此namespace中填写该包名

然后编写select标签,表示将要执行的查询语句,设定id,用于java代码中通过该id找到要执行的sql语句,设置resultType属性,表示最后查询得到数据的返回值类型。

7.创建测试类进行测试

在com.book中创建test包作为代码测试

 

 

新建测试类

 

 

这里我们使用JUnit框架进行单元测试

将 JUnit框架架包导入lib文件夹

 

并选中关联项目

 

在BookTest测试类进行编写java代码

package com.book.test;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;

public class BookTest 

    @Test
    public void one()
            //将mybatis-config.xml加载进来
        try 
            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
            //创建生成器
            SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
            //获得sql工厂对象
            SqlSessionFactory factory=builder.build(is);
            //获得sqlsession对象
            SqlSession ss=factory.openSession();
            //查询的是单数据,该方法中填写的参数由“命名空间”+“id的值”
            int i=ss.selectOne("com.book.dao.getBookNumber");
            System.out.println("查询到图书的总数量为:"+i+"本");
         catch (IOException e) 
            e.printStackTrace();
        

    

   

 

 提示:这里的数据库使用的是简单的book表,数据库名称为mydb,表的字段信息如下

初学者可以使用以下sql代码进行创建数据库

/*
Navicat MySQL Data Transfer

Source Server         : aaa
Source Server Version : 50519
Source Host           : localhost:3306
Source Database       : mydb

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

Date: 2022-03-02 11:17:19
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for book
-- ----------------------------
DROP TABLE IF EXISTS `book`;
CREATE TABLE `book` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) COLLATE utf8_bin NOT NULL,
  `author` varchar(20) COLLATE utf8_bin NOT NULL,
  `price` double(10,2) NOT NULL,
  `count` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

-- ----------------------------
-- Records of book
-- ----------------------------
INSERT INTO `book` VALUES ('1', '西游记', '吴承恩', '98.00', '20');
INSERT INTO `book` VALUES ('2', '红楼梦', '曹雪芹', '98.00', '30');
INSERT INTO `book` VALUES ('3', '三国演义', '罗贯中', '98.00', '50');

 总结

Mybatis框架是一款优秀的持久层框架,值得初学者进行学习。

本文就介绍到这里,初学者可根据该文章进行配置和练习。

 

 

以上是关于MyBatis第一课 MyBatis的框架的搭建和使用的主要内容,如果未能解决你的问题,请参考以下文章

SSM第一课 超市订单管理平台--SSM框架整合

Ajax-SSM第一课 车型管理系统-开发环境搭建

MyBatis第二课 MyBatis映射文件的CRUD操作<方式一>

Mybatis 环境搭建

spring+mybatis+mina+logback框架搭建

MyBatis 框架的搭建和配置