首页 > 其他分享 >Spring集成MyBatis

Spring集成MyBatis

时间:2024-12-22 20:56:30浏览次数:5  
标签:集成 创建 Spring mybatis studentDao Student spring MyBatis import

把mybatis和spring框架集成在一起,像一个框架一样使用。

用的技术是:IOC

为什么ioc能把spring和mybatis集成在一起?是因为ioc能创建对象,可以把mybatis创建的对象交给spring统一创建,开发人员从spring中获取对象。开发人员不用同时面对两个或多个框架了,就面对一个spring就行了。

mybatis使用步骤:我们会使用独立的连接池类替换掉mybatis中自带的连接池,把连接池类也交给spring创建

spring需要创建的对象有:

  • 独立的连接池类的对象,使用阿里的druid连接池
  • SqlSessionFactory对象
  • 创建dao对象

    spring和mybatis集成
    步骤
    1.新建maven项目
    2.加入依赖  spring依赖 mybatis依赖 mysql驱动 spring的事务依赖 mybatis和spring集成的依赖(SqlSessionFactory)
    3.创建实体类
    4.创建dao接口和mapper文件
    5.创建mybatis主配置文件
    6.创建service接口和实现类,属性是dao
    7.创建spring的配置文件:声明mybatis的对象交给spring创建
      1.数据源 dataSource
      2.SqlSessionFactory
      3.Dao对象
      4.声明自定义的service
    8.创建测试类,获取service对象,通过service调用dao完成数据库的访问

spring配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

        <!--声明数据源DataSource,作用是连接数据库的-->
    <bean id="myDataSource" class="com.alibaba.druid.pool.DruidDataSource"
              init-method="init" destroy-method="close">

            <!--set注入给DruidDataSource提供连接数据库信息-->
            <property name="url" value="jdbc:mysql://localhost:3306/MySql
            ?useUnicode=true&amp;characterEncoding=utf8&amp;serverTimezone=GMT"/><!--setUrl注入-->
            <property name="username" value="root"/>
            <property name="password" value="131138"/>
            <property name="maxActive" value="20"/>
    </bean>

    <!--声明的是mybatis中提供的SqlSessionFactoryBean类,这个类内部创建SqlSessionFactory-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--set注入,把数据库连接池付给了dataSource-->
        <property name="dataSource" ref="myDataSource"/>
        <!--mybatis主配置文件的位置
        configLocation属性是Resource类型,读取配置文件
        它的赋值,使用的是value,指定路径的文件,使用  classpath:表示文件的位置
        -->
        <property name="configLocation" value="classpath:mybatis.xml"/>
    </bean>

    <!--创建dao对象,使用SqlSession的getMapper(studentDao.class)
    MapperScannerConfigurer:在内部调用getMapper()生产每个dao接口的代理对象。
    -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!--指定sqlSessionFactory对象的id-->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        <!--指定包名,包名是dao接口所在的包名
        MapperScannerConfigurer会扫描这个包中的所有接口,把每个接口都执行一次getMapper方法
        得到每个接口的dao对象,创建好的dao对象放入到spring容器中
        -->
        <property name="basePackage" value="cqutlc.dao"/>
    </bean>

    <!--声明service-->
    <bean id="studentService" class="cqutlc.service.Impl.StudentServiceImpl">
        <property name="studentDao" ref="studentDao"/>
    </bean>
</beans>

mybatis配置文件:

<?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">
<configuration>
    <!--日志-->
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>

    <!--设置别名-->
    <typeAliases>
            <!--name所在包的路径-->
        <package name="cqutlc.domain"/>
    </typeAliases>
    <!--sql mapper映射文件的位置-->
    <mappers>
        <!--name是包名-->
        <package name="cqutlc.dao"/>

    </mappers>
</configuration>

测试下:

package cqutlc;

import cqutlc.dao.studentDao;
import cqutlc.domain.Student;
import cqutlc.service.Impl.StudentServiceImpl;
import cqutlc.service.StudentService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.util.List;

public class test1 {
    @Test
    public void test(){
        String config="applicationContext.xml";
        ApplicationContext ac=new ClassPathXmlApplicationContext (config);
        //获取spring容器中dao对象
       studentDao studentDao=(studentDao) ac.getBean ("studentDao");
        Student student=new Student (1005,"lc","444@qq.com",20);
        int nums=studentDao.insertStudent (student);
        //spring和mybatis整合在一起使用,事务是自动提交的,无需执行SqlSession.commit();
        System.out.println (nums);
    }
    @Test
    public void test2(){
        String config="applicationContext.xml";
        ApplicationContext ac=new ClassPathXmlApplicationContext (config);
        StudentService studentService=(StudentService) ac.getBean ("studentService");
        Student student=new Student (1006,"jkl","555@qq.com",20);
        int nums=studentService.addStudent (student);
        System.out.println (nums);
    }
    @Test
    public void test3(){
        String config="applicationContext.xml";
        ApplicationContext ac=new ClassPathXmlApplicationContext (config);
        StudentService studentService=(StudentService) ac.getBean ("studentService");
        List<Student> students =studentService.queryStudents ();
        for (Student student : students) {
            System.out.println (student);
        }
    }

}

标签:集成,创建,Spring,mybatis,studentDao,Student,spring,MyBatis,import
From: https://blog.csdn.net/m0_52064839/article/details/144648157

相关文章

  • springboot毕设 在线考试系统 程序+论文
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的迅猛发展,教育领域正经历着深刻的变革。传统的教学与考试模式逐渐暴露出效率低下、资源分配不均等问题。特别是在考试环节,纸质试卷的......
  • springboot毕设 疫情下助农电商网站 程序+论文
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景近年来,全球疫情的蔓延给各行各业带来了前所未有的挑战,农业生产与销售领域亦不例外。疫情期间,传统的农产品销售渠道受阻,农民面临产品滞销、收入锐减的......
  • SpringBoot日志
    SpringBoot默认使用SLF4J作为日志门面(相当于接口),Logback作为日志实现(实现可切换)一.默认输出格式1.日期时间2.日志级别(从上至下级别越来越高):TRACE:追踪框架流程日志,一般不使用DEBUG:调试日志INFO:关键、感兴趣日志WARN:警告日志ERROR:错误日志3.进程ID4.---:消息分隔符5.线......
  • springboot毕设校园食堂订餐管理系统论文+程序+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着高校的不断发展,校园规模持续扩大,学生数量日益增多,校园食堂作为师生就餐的主要场所,面临着巨大的管理挑战。传统的食堂管理方式在现代校园环境......
  • springboot毕设民宿管理系统程序+论文+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着旅游业的蓬勃发展,民宿作为一种独特的住宿形式受到了越来越多游客的青睐。民宿以其个性化、温馨舒适的居住环境区别于传统酒店,满足了游客对于......
  • java + mysql 024Java+基于SpringBoot的企业客户管理系统录像(完整源码 + 说明文档 +
     ......
  • springboot毕设 新高考改革下的志愿填报服务系统程序+论文
    系统程序文件列表开题报告内容研究背景随着新高考改革的不断深入,志愿填报成为了广大考生和家长关注的焦点。新高考改革不仅改变了传统的考试模式,还对学生的选科、学校的录取方式以及志愿填报的流程产生了深远影响。传统的志愿填报方式往往依赖于纸质材料或简单的在线表格,信......
  • springboot毕设 就业招聘信息系统程序+论文
    系统程序文件列表开题报告内容研究背景在当今社会,随着高等教育的普及和就业市场的日益竞争,毕业生面临着前所未有的就业压力。传统的就业信息获取方式,如校园招聘会、招聘网站等,虽然在一定程度上缓解了就业难题,但仍存在信息分散、更新不及时、匹配度不高等问题。因此,构建一个......
  • 在SpringBoot项目中接入sensitive-word实现敏感词过滤(DFA算法、为敏感词打上标签、忽
    文章目录1.前言2.敏感词过滤的常见解决方案3.DFA算法3.1什么是DFA算法3.2DFA算法的原理3.2.1数据是如何存储的3.2.2数据是如何检索的3.3DFA算法的应用场景4.sensitive-word简介4.1什么是sensitive-word4.2sensitive-word的官网4.3sensitive-word的性能5.......
  • 在SpringBoot项目中优雅地记录日志(日志框架选型、SpringBoot默认的日志实现框架、如何
    文章目录1.前言2.日志框架选型2.1System.out.println2.2SLF4J2.2.1Log4j(已停止维护,不再介绍)2.2.2LogBack&Log4j22.3扩展:日志框架背后的故事3.SpringBoot默认的日志实现框架(Logback)4.如何使用日志框架4.1常规方法4.2使用Lombok工具库提供的@Slf4j注解4.3......