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的框架的搭建和使用的主要内容,如果未能解决你的问题,请参考以下文章
MyBatis第二课 MyBatis映射文件的CRUD操作<方式一>