0


【SSM框架】Mybatis详解04(源码自取),构建完整项目并且测试框架

  • 🧛‍♂️个人主页:杯咖啡
  • 💡进步是今天的活动,明天的保证!
  • ✨目前正在学习:SSM框架,算法刷题
  • 👉本文收录专栏:SSM框架解析
  • 🙌牛客网,刷算法过面试的神级网站,用牛客你也牛。 👉免费注册和我一起学习刷题👈
  • 🐳希望大家多多支持🥰一起进步呀!
  • 😎The man who fears losing has already lost. 怕输的人已经输了。 - 《权力的游戏》

✨前言

我们已经学会用Maven快速构建管理项目了,这篇文章就正式构建一个完整的项目。

通过这个案例可以复习maven的使用,自行创建项目,使用MyBatis框架并进行测试。


文章目录


完善项目构建

在idea中添加数据库的可视化

为了我们在编写程序进行测试的时候更加的方便,我们在idea中添加数据库可视化。
按着以下步骤就可以实现。
在这里插入图片描述
在这里插入图片描述
这里需要注意一下,我们先进行测试一下,一定要注意自己的数据库驱动是否与自己的数据库版本相对应,以免出现无法操作数据库的问题
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

添加jdbc.properties属性文件(数据库的配置)

这一步呢,是为了使得我们的框架可以通过java连接到数据库,进而进行一系列增删改查的操作
在这里插入图片描述
注意这里有个小细节,jdbc.driverclass的值在jdbc的一次大改版中有变化哦,如果版本过高就不是这个哦,网上可以查到这里就不列出来了。自己动手也很重要。

添加SqlMapConfig.xml文件,Mybatis的核心配置文件

接下来就要开始配置框架的核心配置文件了。

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!--   读取属性文件(jdbc.properties)
    属性:
        resources:从resouces目录下找指定名称的文件加载
        url:使用绝对路径加载属性文件
--><propertiesresource="jdbc.properties"></properties><!--    配置数据库的环境变量(数据库链接配置)
        default:使用下面的environment标签下的id属性进行指定配置
--><!--    <settings>--><!--        <setting name="" value=""/>--><!--    </settings>--><environmentsdefault="development"><!--    开发时再公司使用的数据库配置
        id;就是提供给environment的default属性使用
        --><environmentid="development"><!--        配置事务管理器
            type:指定事务管理的方式
                JDBC:事务的控制交给管理员来处理
                MANAGED:由容器(Spring)来管理事务
--><transactionManagertype="JDBC"></transactionManager><!--        配置数据源:
            type:指定不同的配置方式
                JNDI:java命名目录接口,在服务器端进行数据库连接池的管理
                POOLED:使用数据库连接池
                UNPOOLED:不使用数据库连接池

--><dataSourcetype="POOLED"><!--      配置数据库连接的基本参数
            private String driver;
            private String url;
            private String username;
            private String password;
--><propertyname="driver"value="${jdbc.driverclassName}"/><propertyname="url"value="${jdbc.url}"/><propertyname="username"value="${jdbc.username}"/><propertyname="password"value="${jdbc.password}"/></dataSource></environment><!--在家时候数据库配置--><!--    <environment id="home">--><!--        <transactionManager type=""></transactionManager>--><!--        <dataSource type=""></dataSource>--><!--    </environment>--><!--&lt;!&ndash;上线的数据库配置&ndash;&gt;--><!--    <environment id="online">--><!--        <transactionManager type=""></transactionManager>--><!--        <dataSource type=""></dataSource>--><!--    </environment>--></environments><!--    注册mappe.xml文件
        resouces:从resouces目录下找指定名称的文件注册
        url:使用绝对路径注册
        class:动态代理方式下的注册
--><mappers><mapperresource="StudentMapper.xml"></mapper></mappers></configuration>

标签的解释在注释里哦。
这里有个注意的小节点,标签的顺序不可以随意更改哦!!!要时刻注意。

创建实体类Student,用来封装数据

这里的实体类,为了方便数据的封装,建议按照数据库进行构建哦。
当然我就是调皮不愿意按着数据库来,也可以,后面又解决办法哦。
在这里插入图片描述

packagecom.longlong.pojo;importjava.util.Objects;/**
 * @Author DELL longlong
 * @Date 2022/7/1 14:51
 * @Version 1.0
 * @Function 实体类
 */publicclassStudent{privateInteger id;privateString name;privateString email;privateInteger age;publicStudent(){}publicStudent(String name,String email,Integer age){this.name = name;this.email = email;this.age = age;}publicIntegergetId(){return id;}publicvoidsetId(Integer id){this.id = id;}publicStringgetName(){return name;}publicvoidsetName(String name){this.name = name;}publicStringgetEmail(){return email;}publicvoidsetEmail(String email){this.email = email;}publicIntegergetAge(){return age;}publicvoidsetAge(Integer age){this.age = age;}@Overridepublicbooleanequals(Object o){if(this== o)returntrue;if(o ==null||getClass()!= o.getClass())returnfalse;Student student =(Student) o;returnObjects.equals(id, student.id)&&Objects.equals(name, student.name)&&Objects.equals(email, student.email)&&Objects.equals(age, student.age);}@OverridepublicinthashCode(){returnObjects.hash(id, name, email, age);}@OverridepublicStringtoString(){return"Student{"+"id="+ id +", name='"+ name +'\''+", email='"+ email +'\''+", age="+ age +'}';}}

添加完成学生表的增删改查的功能的StudentMapper.xml文件

这个文件呢,就是写我们的sql语句了,你以为和之前一样吗。
不不不,这就很简便了,一起看看吧。
在这里插入图片描述

<?xml version="1.0" encoding="utf-8" ?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!--mapper:是整个文件的打标签,用来区分开始和结束xml文件
    属性:
        namespace:指定命名空间(相当于包名),用来区分不同mapper.xml
        文件中的相同id
--><mappernamespace="ll"><!--    完成查询全部学生的功能
        List<Student> getAll();
        resultType:指定查询返回的结果集的类型,如果是集合,则必须是泛型
        parameterType:如果有参数,则通过他来完成指定参数的类型
--><selectid="getAll"resultType="com.longlong.pojo.Student">
        select *
        from student
    </select></mapper>

这里的功能很简单只有查询全部的简单功能,后面我们会完成更多的复杂功能。

创建测试类,进行功能测试

终于迎来了我们的最后一步,功能测试。
可能小伙伴们还体会不到,这到底有什么简便的。
不要着急,跟着我多做几个功能就可以体会到了
在这里插入图片描述

packagecom.longlong.test;importcom.longlong.pojo.Student;importorg.apache.ibatis.io.Resources;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.apache.ibatis.session.SqlSessionFactoryBuilder;importorg.junit.Test;importjava.io.IOException;importjava.io.InputStream;importjava.util.List;/**
 * @Author DELL longlong
 * @Date 2022/7/3 19:32
 * @Version 1.0
 * @Function
 */publicclassMytest{@TestpublicvoidtestGetAll()throwsIOException{InputStream in =Resources.getResourceAsStream("SqlMapConfig.xml");SqlSessionFactory factory =newSqlSessionFactoryBuilder().build(in);SqlSession sqlSession = factory.openSession();List<Student> list = sqlSession.selectList("ll.getAll");//       list.forEach(student -> System.out.println(student));for(Student student : list){System.out.println(student);}System.out.println("OK");
      sqlSession.close();}}

测试结果展示

在这里插入图片描述
这里小编遇到了一个Mysql数据库时区的问题,有时间也会把解决方法上传到博客中。


✨总结

今天我们完成了第一次使用mybatis框架,并且成功了。开心呢!!!
下面就要深入学习配置文件的标签和属性,运行过程,作用!!!
下面我们会完善更多复杂功能并且介绍标签和属性的用法和规则!!!
本次源码放在代码仓库gitee,自取链接

      原创不易,还希望各位大佬支持一下
     
    
   
   
    \textcolor{blue}{原创不易,还希望各位大佬支持一下}
   
  
 原创不易,还希望各位大佬支持一下


 
  
   
    
     
      点赞,你的认可是我创作的动力!
     
    
   
   
    \textcolor{green}{点赞,你的认可是我创作的动力!}
   
  
 点赞,你的认可是我创作的动力!


 
  
   
    
     
      收藏,你的青睐是我努力的方向!
     
    
   
   
    \textcolor{green}{收藏,你的青睐是我努力的方向!}
   
  
 收藏,你的青睐是我努力的方向!


 
  
   
    
     
      评论,你的意见是我进步的财富!
     
    
   
   
    \textcolor{green}{评论,你的意见是我进步的财富!}
   
  
 评论,你的意见是我进步的财富!
标签: mybatis java 面试

本文转载自: https://blog.csdn.net/muzi_longren/article/details/125944220
版权归原作者 风铃听雨~ 所有, 如有侵权,请联系我们删除。

“【SSM框架】Mybatis详解04(源码自取),构建完整项目并且测试框架”的评论:

还没有评论