• 【JAVAEE框架】Mybatis项目起步讲解


    哈喽~大家好呀,这篇来看看使用Mybatis时,初始环境下的介绍。如何在 idea 创建 mybatis项目,可以看看这位大佬写的

    目录

    一、Mybatis介绍

    二、起步结构

    三、具体讲解

    1、mybatis-config.xml 文件

    2、dao

    3、xxxmapper.xml 文件

    4、pom.xml文件

    四、结构与测试

    1、结构

     2、测试代码


    一、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多行代码,非常的冗长)这肯定不是我们想要的。

    开始的准备,我们肯定需要数据库了,这里就不一一介绍了,直接看表

    三、具体讲解

    1、mybatis-config.xml 文件

    mybatis-config.xml是MyBatis核心配置文件,该文件配置了MyBatis的一些全局信息,包含数据库连接信息和Mybatis运行时所需的各种特性,以及设置和影响Mybatis行为的一些属性

    configuration :配置文件的根元素

    properties: 属性:定义配置外在化

    settings:设置:定义mybatis的一些全局属性

    typeAliases:配置别名

    environments:环境:配置mybatis的环境

    environment:环境变量:可以配置多个环境变量,比如使用数据源时,就需要配置多个环境变量

    transactionManager:事务管理器

    dataSource:数据源

    mappers:映射器:指定映射文件位置

    注意:mybatis不能使用通配符

    示例代码

    1. "1.0" encoding="UTF-8"?>
    2. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    3. "http://mybatis.org/dtd/mybatis-3-config.dtd">
    4. "jdbc.properties">
    5. <package name="com.itxzw.model"/>
    6. <package name="com.itxzw.dao"/>
    7. default="development">
    8. "development">
    9. "JDBC">
    10. "POOlED">
    11. "driver" value="${driver}"/>
    12. "url" value="${url}"/>
    13. "username" value="${username}"/>
    14. "password" value="${password}"/>
    15. "com\itxzw\mapper\common\BrandDaoMapper.xml"/>

    上面的jdbc.properties里面存放了用户名、密码、驱动与url了

    2、dao

    创建dao层,写接口,实现方法

    IBrandDao

    1. package com.itxzw.dao;
    2. import com.itxzw.model.Brand;
    3. import java.util.List;
    4. public interface IBrandDao {
    5. public List getUserList() throws Exception;
    6. }

    BrandDao

    1. public class BrandDao implements IBrandDao {
    2. private String namespace = "com.itxzw.dao.IBrandDao";
    3. public List getUserList() throws Exception {
    4. // 0. 会话工厂的创建者
    5. SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
    6. // 0.5 读取配置文件 mybatis-config.xml
    7. InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
    8. // 1. 创建会话工厂
    9. SqlSessionFactory factory = builder.build(is);
    10. // 2. 获取SqlSession对象
    11. SqlSession sqlSession = factory.openSession();
    12. List users = sqlSession.selectList(namespace+".getUserList",Brand.class);
    13. sqlSession.close();
    14. return users;
    15. }
    16. }

    SqlSessionFactoryBuilder:就是db与dao的一次会话,就像web与servlet的会话一样

    Resources.getResourceAsStream:然后这里就读取你的mybatis配置的文件

    开始创建会话工厂、 获取SqlSession对象、打开 Session,然后开始执行

    示例代码

    1. public class BrandDao implements IBrandDao {
    2. private String namespace = "com.itxzw.dao.IBrandDao";
    3. public List getUserList() throws Exception {
    4. // 0. 会话工厂的创建者
    5. SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
    6. // 0.5 读取配置文件 mybatis-config.xml
    7. InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
    8. // 1. 创建会话工厂
    9. SqlSessionFactory factory = builder.build(is);
    10. // 2. 获取SqlSession对象
    11. SqlSession sqlSession = factory.openSession();
    12. List users = sqlSession.selectList(namespace+".getUserList",Brand.class);
    13. sqlSession.close();
    14. return users;
    15. }
    16. }

    3、xxxmapper.xml 文件

    这个mapper标签里面保存了增删改查等子标签(在这些子标签里面写对应的增删改查的sql语句)

    namespace: 就是创建的命名空间

    resultType:返回一般数据类型的值

    eg:比如根据id或者字段条件查询获取表中的某一个字段值

    User Sel(int id); //根据id查询

    #{}:占位符,预编译

    ${}:sql拼接

    代码示例

    1. "1.0" encoding="UTF-8" ?>
    2. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    4. "com.itxzw.dao.IBrandDao">

    当然这只是查询语句,还有增删改,这里就不一一说明了,看下图

    4、pom.xml文件

    该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。事实上,在Maven世界中,project可以什么都没有,甚至没有代码,但是必须包含pom.xml文件。

    简称:我们不用手动去导入.jar包了

    标签详细讲解

    1. 4.0.0
    2. 反写公司的网址+项目名称
    3. 项目名称+模块名
    4. 当前项目版本号
    5. ...
    6. ...
    7. ...
    8. ...
    9. ...
    10. ...
    11. ...
    12. ...
    13. <module>
    14. module>

    四、结构与测试

    上面的准备结束后我们就来看看结构与测试了

    1、结构

     2、测试代码

    1. public class TestMyBatis {
    2. @Test
    3. public void test01() throws Exception {
    4. IBrandDao userDao = new BrandDao();
    5. List userList = userDao.getUserList();
    6. for (Brand brand : userList) {
    7. System.out.println(brand);
    8. }
    9. }
    10. }

    运行结果

     出结果了,我们最开始的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