哈喽~大家好呀,这篇来看看使用Mybatis时,初始环境下的介绍。如何在 idea 创建 mybatis项目,可以看看这位大佬写的
目录
mybatis是一款orm类型的数据持久化框架,将jdbc的手动注册驱动、建立连接、获取sql执行对象、释放连接等操作进行了自动化装配,只需要进行简单的配置就可以实现自动注册驱动、建立连接、释放连接等操作,开发人员只需要关注sql语句的编写就可以了,而不用过多的关注数据库连接问题。mybatis支持自定义 SQL、存储过程以及高级映射,可以通过sql映射文件实现sql语句的编写,支持动态sql,用条件判断进行查询可以实现sql复用。
上面介绍使用了mybatis,可以理解简化jdbc代码以前写项目,最常见走 MVC 架构,web到servlet,servlet到service,service到dao,dao到db,再来返回数据走一遍反流程,虽然架构思想很清晰,但很麻烦(上一篇文章的网上购物项目 ,就是MVC架构,累计1.5w行代码,里面的前端页面我一个一个div搭起来的,而光一个dao层就1k多行代码,非常的冗长)这肯定不是我们想要的。
开始的准备,我们肯定需要数据库了,这里就不一一介绍了,直接看表
mybatis-config.xml是MyBatis核心配置文件,该文件配置了MyBatis的一些全局信息,包含数据库连接信息和Mybatis运行时所需的各种特性,以及设置和影响Mybatis行为的一些属性
configuration :配置文件的根元素
properties: 属性:定义配置外在化
settings:设置:定义mybatis的一些全局属性
typeAliases:配置别名
environments:环境:配置mybatis的环境
environment:环境变量:可以配置多个环境变量,比如使用数据源时,就需要配置多个环境变量
transactionManager:事务管理器
dataSource:数据源
mappers:映射器:指定映射文件位置
注意:mybatis不能使用通配符
示例代码
- "1.0" encoding="UTF-8"?>
- PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-config.dtd">
-
-
"jdbc.properties"> -
-
-
-
-
- <package name="com.itxzw.model"/>
- <package name="com.itxzw.dao"/>
-
-
-
-
default="development"> -
-
"development"> -
-
"JDBC"> -
-
"POOlED"> -
"driver" value="${driver}"/> -
"url" value="${url}"/> -
"username" value="${username}"/> -
"password" value="${password}"/> -
-
-
-
-
-
-
-
"com\itxzw\mapper\common\BrandDaoMapper.xml"/> -
上面的jdbc.properties里面存放了用户名、密码、驱动与url了
2、dao
创建dao层,写接口,实现方法
IBrandDao
- package com.itxzw.dao;
-
- import com.itxzw.model.Brand;
-
- import java.util.List;
-
- public interface IBrandDao {
-
- public List
getUserList() throws Exception; -
- }
BrandDao
- public class BrandDao implements IBrandDao {
-
- private String namespace = "com.itxzw.dao.IBrandDao";
-
- public List
getUserList() throws Exception { - // 0. 会话工厂的创建者
- SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
-
- // 0.5 读取配置文件 mybatis-config.xml
- InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
-
- // 1. 创建会话工厂
- SqlSessionFactory factory = builder.build(is);
-
- // 2. 获取SqlSession对象
- SqlSession sqlSession = factory.openSession();
-
- List
users = sqlSession.selectList(namespace+".getUserList",Brand.class); -
- sqlSession.close();
-
- return users;
- }
-
- }
SqlSessionFactoryBuilder:就是db与dao的一次会话,就像web与servlet的会话一样
Resources.getResourceAsStream:然后这里就读取你的mybatis配置的文件
开始创建会话工厂、 获取SqlSession对象、打开 Session,然后开始执行
示例代码
- public class BrandDao implements IBrandDao {
-
- private String namespace = "com.itxzw.dao.IBrandDao";
-
- public List
getUserList() throws Exception { - // 0. 会话工厂的创建者
- SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
-
- // 0.5 读取配置文件 mybatis-config.xml
- InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
-
- // 1. 创建会话工厂
- SqlSessionFactory factory = builder.build(is);
-
- // 2. 获取SqlSession对象
- SqlSession sqlSession = factory.openSession();
-
- List
users = sqlSession.selectList(namespace+".getUserList",Brand.class); -
- sqlSession.close();
-
- return users;
- }
-
- }
3、xxxmapper.xml 文件
这个mapper标签里面保存了增删改查等子标签(在这些子标签里面写对应的增删改查的sql语句)
namespace: 就是创建的命名空间
resultType:返回一般数据类型的值
eg:比如根据id或者字段条件查询获取表中的某一个字段值
User Sel(int id); //根据id查询
#{}:占位符,预编译
${}:sql拼接
代码示例
- "1.0" encoding="UTF-8" ?>
- PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
"com.itxzw.dao.IBrandDao"> -
-
- select * from tb_brand
-
-
-
-
-
当然这只是查询语句,还有增删改,这里就不一一说明了,看下图

4、pom.xml文件
该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。事实上,在Maven世界中,project可以什么都没有,甚至没有代码,但是必须包含pom.xml文件。
简称:我们不用手动去导入.jar包了
标签详细讲解
-
-
-
4.0.0 -
-
-
反写公司的网址+项目名称 -
项目名称+模块名 -
当前项目版本号 -
-
... -
-
... -
-
... -
-
... -
-
... -
-
... -
-
... -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
... -
-
- <module>
- module>
-
四、结构与测试
上面的准备结束后我们就来看看结构与测试了
1、结构

2、测试代码
- public class TestMyBatis {
-
- @Test
- public void test01() throws Exception {
-
- IBrandDao userDao = new BrandDao();
-
- List
userList = userDao.getUserList(); -
- for (Brand brand : userList) {
- System.out.println(brand);
- }
-
-
- }
-
- }
运行结果

出结果了,我们最开始的mybatis就没问题了。
不积跬步无以至千里,趁年轻,使劲拼,给未来的自己一个交代!向着明天更好的自己前进吧!

-
相关阅读:
SpringBoot-WebSocket浏览器-服务器双向通信
C++数据存储、表示形式和基本运算
analog IC layout-Design for reliability
深度学习100例 —— 卷积神经网络(CNN)识别眼睛状态
动静态链接&&动静态库制作与使用
python3 爬虫(初试牛刀)
【Java】数组定义和访问及数组原理内存图
pg_dump备份多张表到不同的sql文件
IP地址是如何计算相关地址的
【机器学习】包裹式特征选择之基于遗传算法的特征选择
-
原文地址:https://blog.csdn.net/aasd23/article/details/126713844