String框架基础补充

news2024/9/22 7:45:38

前言

        本文将继续上一篇文章的内容对 Spring 数据访问层管理,Spring集成mybatis等知识进行补充,未看过上一篇文章的小伙伴可以点击下方链接,跳转观看上一篇文章Spring框架基础icon-default.png?t=N7T8https://mp.csdn.net/mp_blog/creation/editor/141639879

Spring数据访问层管理

        首先,我们需要知道 : Spring 是个一站式框架:Spring 自身也提供了web层的 SpringWeb 和 持久层的 SpringJdbcTemplate。

        而我们现在讲解的就是SpringJdbcTemplate数据持久层(数据访问层)

开发步骤

        在pom.xml文件中下载Spring jdbc数据访问层jar包,具体的jar包已附在下方

<!-- spring-jdbc-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.2.2.RELEASE</version>
</dependency>

<!--阿里巴巴  数据库连接管理组件-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.10</version>
</dependency>

        这里默认还需要加mysql的jar包 ,因为Spring也是对jdbc进行封装的

<!--mysql-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.16</version>
</dependency>

        上方下载的阿里巴巴 数据库连接管理组件, 是数据库连接管理对象,负责生成数据库连接对象,以及提供数据库连接功能

        让spring管理阿里巴巴数据库连接对象

        在之前创建好的spring.xml文件中配置下方代码(文章中提到的文件都在上一篇中创建好了如有不清楚的地方可以到上一篇文章中查看)

    <bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
    <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
    <property name="url" value="jdbc:mysql://127.0.0.1:3306/ssmdb?serverTimezone=Asia/Shanghai"></property>
    <property name="username" value="root"></property>
    <property name="password" value="root"></property>
    <property name="initialSize" value="10"></property><!--初始化连接数量-->
    <property name="maxActive" value="20"></property><!--最大连接数量-->
        </bean>

 

        配置好数据库连接后,接下来我们该配置spring中对jdbc进行封装的操作类型 JdbcTemplate

        继续在spring.xml文件中添加

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource" ref="druidDataSource"></property>
</bean>

        这里 <property>标签中name是指在JdbcTemplate中定义的属性名,ref是表示需要注入的对象的名称,而这里我们用的是阿里巴巴的数据库,所以注入druidDataSource.

        在AdminDao文件中,用@Autowired注解注入JdbcTemplate的对象,在saveAdmin()方法中通过JdbcTemplate的对象调用update()方法

        最终结果如下所示 

 

Spring集成Mybatis

        介绍完spring的数据访问层管理后,我们继续了解Spring集成Mybatis的过程

        Spring集成Mybatis其核心是将SqlSessionFactory交由Spring管理,并由 Spring管理对dao接口的代理实现。

集成过程

        创建新的javaEE项目

        在pom.xml文件中导入mybatis jar包  包附件如下

<!--spring集成Mybatis  jar-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.1</version>
        </dependency>

         配置好后,创建并在Admin实体类中定义好以下属性以及对应的set,get方法

        在dao包名下创建LoginDao接口以及其他对应的包名和java文件

 

        在resources文件中创建mappers包和mybatis.xml,spring.xml文件,并在mappers包中创建LoginMapper.xml文件

(这里的图标不同是因为我下载了其他的组件,并不影响操作的实现)

        将之前项目中的pom.xml文件中配置过的jar包一 一复制过来,配置好

        在mybatis文件中导入下方代码,

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTDConfig3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <!--  mybatis核心全局配置文件  -->
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
        <setting name="mapUnderscoreToCamelCase" value="true"/>

        <!--   全局二级缓存开关     -->
        <setting name="cacheEnabled" value="true"/>
    </settings>

    <!--  为类配置别名  -->
    <typeAliases>
        <!--        <typeAlias type="com.zhu.mybatispro.model.Admin"></typeAlias>-->
        <package name="com.zhu.ssm.model"/>
    </typeAliases>
    
</configuration>

         

       

         在Loginmapper文件中导入下方代码

<?xml version= "1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTDMapper3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">


<!--
sql映射文件, 主要写sql实现
-->
<mapper namespace="com.zhu.ssm.dao.LoginDao">
    
    <select id="login" resultType="com.zhu.ssm.model.Admin">
        select * from admin where account = #{account} and password=#{password}
    </select>
</mapper>

 

 

         将上一个项目中spring.xml文件中的内容导入这个项目的spring.xml文件中,并添加以上代码

<!--    spring管理生成SqlSessionFactory对象-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="druidDataSource"></property><!-- 注入数据源-->
        <property name="configLocation"
                  value="classpath:mybatis.xml"></property><!--配置Mybatis配置文件-->
        <property name="mapperLocations" value="classpath:mappers/*Mapper.xml"><!--扫描mapper映射文件-->
        </property>
    </bean>

<!--    生成dao包下所有接口的代理对象-->
    <bean id="mapperFactory"
          class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.zhu.ssm.dao"></property><!--接口所在的包-->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory">
        </property>
    </bean>

         具体解释请看下图

 

        在service包下的LoginService文件中导入代码

@Service
@Transactional(rollbackFor = Exception.class)
public class LoginService {

    @Autowired
    LoginDao loginDao;

    public Admin login(Admin admin){
        Admin admin1 = loginDao.login(admin);
        return admin1;
    }
}

         在loginDao文件中导入代码

         

        在Test包中的test文件中导入

        

        最后可查询到结果

        至此,spring 集成Mybatis也介绍完了.今天的介绍到此为止,之后我还会继续介绍java AOP

,spring web以及springboot. 欢迎大家关注 点赞

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2086020.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软考高项彻底没用了?谁说的?站出来,我保证不笑场!

哎呀&#xff0c;最近这风言风语可不少啊&#xff0c;说咱们的软考高项证书成了“过气网红”&#xff0c;彻底没用了&#xff1f;这可真是让我哭笑不得&#xff0c;咱们得好好聊聊这个话题&#xff0c;不能让这“谣言”满天飞啊&#xff01; 首先&#xff0c;我得说&#xff0…

直播电商如何重构人场关系?推荐这套电商精细化运营方案!

随着电子商务的不断发展&#xff0c;直播电商和货架电商已经成为两大主流的在线购物模式。它们各自以独特的方式满足消费者的购物需求&#xff0c;同时也有不同的商业挑战和机遇。本文将从消费者行为、技术应用、品牌策略等多个角度分析这两种电商模式的核心区别。同时&#xf…

大众集团25届校招社招网申入职SHL测评题库:综合能力测评、性格问卷、英语测评考什么?

恭喜您通过大众汽车(中国)科技有限公司的简历初。请点击下面的测评链接&#xff0c;在5天内完成测评&#xff0c;过期失效(例:3.11收到链接&#xff0c;3.15为最后一天有效期)。每位人选只有一次测评机会。 ​大众汽车入职测试细节: 1.性格问卷:25 分钟 2.综合能力:46 分钟&a…

Python 轻松去除验证码干扰点,让识别不再犯难

Python 轻松去除验证码干扰点&#xff0c;让识别不再犯难 引言一、干扰点噪声二、图片降噪三、测试运行结果写在最后 作者&#xff1a;高玉涵 时间&#xff1a;2024.8.29 21:52 博客&#xff1a;blog.csdn.net/cg_i 环境&#xff1a;Windows10、Python 3.11.3、PIL、Tesseract-…

Unet改进10:在不同位置添加CPCA||通道先验卷积注意力机制

本文内容:在不同位置添加CPCA注意力机制 目录 论文简介 1.步骤一 2.步骤二 3.步骤三 4.步骤四 论文简介 低对比度和显著的器官形状变化等特征经常出现在医学图像中。现有注意机制的自适应能力普遍不足,限制了医学影像分割性能的提高。本文提出了一种有效的通道先验卷积…

储能电池热失控监测系统的研发难点是什么?

​ ​​储能电池热失控监测系统的研发难点主要包括以下几个方面&#xff1a; ​ ​1.准确的早期预警 ​ ​在热失控发生的早期阶段&#xff0c;电池的温度、电压、电流等特征参数变化可能非常缓慢&#xff0c;通过传统的监测方法难以及早地监测到电池故障。而此时电池…

使用C++,仿照string类,实现myString

类由结构体演化而来&#xff0c;只需要将struct改成关键字class&#xff0c;就定义了一个类 C中类和结构体的区别&#xff1a;默认的权限不同&#xff0c;结构体中默认权限为public&#xff0c;类中默认权限为private 默认的继承方式不同&#xff0c;结构体的默认继承方式为p…

LLM的发展简述

文章目录 1. NLP的发展简史2. LLM 的进展3. 参考 1. NLP的发展简史 信息理论的创立&#xff1a;20世纪50年代&#xff0c;Claude Shannon 奠定了信息理论的基础&#xff0c;引入了熵和冗余等概念&#xff0c;对 NLP 和计算语言学产生了深远影响。 形式语法的发展&#xff1a;…

代码随想录(day8)—环形链表

题目 预备知识点&#xff1a; for和while的区别 while语句属于循环语句&#xff0c;在判断是&#xff0c;如果条件为true&#xff0c;则会继续判断&#xff0c;直到false为止&#xff0c;即会进行多次判断&#xff08;除非一开始条件就是错的&#xff09;。 if语句属于条件判…

炫光HUD杂散光测试方法及设备

HUD杂散光测试概述 HUD&#xff08;Heads-Up Display&#xff09;抬头显示器是现代汽车中的一项先进技术&#xff0c;它可以将重要信息如速度、导航等投射在驾驶员的视线前方&#xff0c;从而减少低头查看仪表盘的次数&#xff0c;提高行车安全。然而&#xff0c;HUD在实际使用…

数据主权与隐私保护的深入探讨

随着数字化进程的加速&#xff0c;数据已成为当今世界的重要资源。数据主权和隐私保护这两个概念也越来越受到关注。数据主权涉及到国家对数据的控制权和管理权&#xff0c;而隐私保护则关乎个人数据的安全性和隐私权利。两者相互交织&#xff0c;共同塑造了数字时代的法律、经…

PTA - python暑假题集1

目录 7-1 Hello World!7-2 计算摄氏温度7-3 计算物体自由下落的距离7-4 整数四则运算7-5 求整数均值7-6 输出带框文字7-7 整数152的各位数字7-8 计算火车运行时间7-9 计算存款利息7-10 逆序的三位数7-11 重要的话说三遍7-12 后天7-13 I Love GPLT7-14 是不是太胖了7-15 计算指数…

day44——C++对C的扩充

八、C对函数的扩充 8.1 函数重载&#xff08;overload&#xff09; 1> 概念 函数重载就是能够实现"一名多用"&#xff0c;是实现泛型编程的一种 泛型编程&#xff1a;试图以不变的代码&#xff0c;来实现可变的功能 2> 引入背景 程序员在写函数时&#x…

某系统存在任意文件下载漏洞

穷者&#xff0c;谁不想达&#xff0c;达者&#xff0c;更畏惧穷。为求发达&#xff0c;穷人兢兢业业&#xff0c;辛辛苦苦&#xff0c;农耕其田&#xff0c;工利其器&#xff0c;商务其业&#xff0c;学读其书&#xff0c;人人都在独善其身&#xff0c;可除了那些少数的书生可…

VS2022打包Docker镜像

1. 前置环境 操作系统win10/win11 安装 Docker Desktop 2. 演示项目 https://gitee.com/izory/ZrAdminNetCore .net8 分支为例 3. 添加 docker支持 4. 配置工程文件 在.proj 文件加上 <ContainerRepository>ZrAdminCore</ContainerRepository> <Containe…

【C++ 面试 - 内存管理】每日 3 题(八)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…

视频压缩工具哪个好?视频压缩工具安利

还在为视频文件过大而烦恼吗&#xff1f;想要快速分享或上传视频却受限于空间或时间&#xff1f; 别担心&#xff0c;今天我来告诉你们&#xff1a;视频压缩成文件怎么弄。 无需复杂操作&#xff0c;轻松几步&#xff0c;就能让你的视频文件瘦身成功&#xff0c;既保留关键内…

深度学习基础—结构化机器学习项目

1.正交化 这是一个老式电视&#xff0c;有一组旋钮可以对画面进行调节&#xff0c;例如高度、宽度、画面梯形角度、画面位置、画面旋转等等&#xff0c;但是如果有一个旋钮&#xff0c;旋转时可以调节上面所有参数&#xff0c;那么就会出现一种情况&#xff1a;当前的画面高度和…

jconsole远程连接

jconsole可以远程连接的前提&#xff08;需要在部署应用时像下面示例这样设置&#xff09;&#xff1a; -Djava.rmi.server.hostname127.0.0.1 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port3214 -Dcom.sun.management.jmxremote.sslfalse -Dcom.sun.m…

milvus使用milvus migration工具迁移数据

1.前提&#xff1a;这个数据迁移工具是collection 维度的 2.文章内是2.3.1–》2.4.5数据迁移&#xff0c;公司内部需求&#xff0c;各位看官注意哈 官方架构图&#xff1a; 想要迁移的milvus 官方称之为&#xff1a;源source milvus 要迁入的表 目标的milvus 官方称之为&…