Mybatis Day01

功能:在dao持久层操作数据库,用于简化JDBC的开发

JDBC

  • 使用java语言操作关系型数据库的api
  • 各个数据库厂商提供数据库驱动jar包
public void testJdbc() throws Exception {//1. 注册驱动Class.forName("com.mysql.cj.jdbc.Driver");//2. 获取连接对象String url = "jdbc:mysql://localhost:3306/mybatis_";String username = "root";String password = "1234";Connection connection = DriverManager.getConnection(url, username, password);//3. 获取执行SQL的对象Statement,执行SQL,返回结果String sql = "select * from user";Statement statement = connection.createStatement();ResultSet resultSet = statement.executeQuery(sql);//4. 封装结果数据List<User> userList = new ArrayList<>();while (resultSet.next()){int id = resultSet.getInt("id");String name = resultSet.getString("name");short age = resultSet.getShort("age");short gender = resultSet.getShort("gender");String phone = resultSet.getString("phone");User user = new User(id,name,age,gender,phone);userList.add(user);}userList.stream().forEach(user -> {System.out.println(user);});//5. 释放资源statement.close();connection.close();}

 硬编码:sql需要改变用户名和密码,编译时间成本很高

封装:封装需要一个字段一个字段封装,繁琐

频繁获取资源、释放资源:资源浪费

MyBatis对比JDBC

resources.application.properties 

#驱动类名称
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库连接的url
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_
#连接数据库的用户名
spring.datasource.username=root
#连接数据库的密码
spring.datasource.password=123456

main.java.com.itheima.mapper.userMapper 

@Mapper //在运行时,会自动生成该接口的实现类对象(代理对象),并且将该对象交给ioc容器管理
public interface UserMapper {//查询全部用户信息@Select("select id, name, age, gender, phone from user")public List<User> list();}

test.java.com.itheima.Demo1ApplicationTests

    @Autowiredprivate UserMapper userMapper;@Testpublic void testListUser(){List<User> userList = userMapper.list();userList.stream().forEach(user -> {System.out.println(user);});}

数据库连接池

  • 容器、负责分配、管理数据库连接
  • 没有连接池,连上之后不用了就关闭连接

  • 有连接池,会创建数据库连接池,重复是用一个现有的数据库连接,用完归还
  • 释放空闲时间超过阈值的连接

标准接口:DataSource

springboot主要是用hikariDataSource

Druid用的也很多,阿里巴巴开源数据库连接池项目

切换Druid数据库连接池:

<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.8</version>
</dependency>

lombok

使用背景:虽然只有五个参数,但是要写的pojo.User有70行代码

  • lombok是java类库,可以自动生成构造器、getset、equals、hashcode、tostring、并且生成日志变量
* @see Getter
* @see Setter
* @see ToString
* @see EqualsAndHashCode

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

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

相关文章

MongoDB之概述、命令

基础知识 是什么 概念 分布式文件存储数据库&#xff0c;提供高可用、可扩展、易部署的数据存储解决方案。 结构 BSON存储类型 类似JSON的一种二进制存储格式。相比于JSON&#xff0c;提供更丰富的类型支持。 优点是灵活&#xff0c;缺点是空间利用率不佳。 类型说明解释…

vue 使用iframe标签切换不同项目,实现步骤(互相嵌套,高度不适应(底部出现白条-随着切换越来越大)传值取值(免登录),内容空白缓存问题)

前言 最近在开发中&#xff0c;由于是合作开发。双方已经有自己的前后端代码&#xff0c;最终需要整合代码上线测试 由于模块功能不同&#xff0c;双方ui并没有提前统一设计风格&#xff0c;并且已经开发完毕。 前后端如果直接合并到对方项目&#xff08;前端-有各种冲突-后端…

创建菜单与游戏页面

bootstrap地址 Bootstrap v5 中文文档 Bootstrap 是全球最受欢迎的 HTML、CSS 和 JS 前端工具库。 | Bootstrap 中文网 (bootcss.com) 创建导航栏组件 web--src--components--NavBar.vue <!-- html --> <template><nav class"navbar navbar-expand-lg n…

机器学习:Softmax介绍及代码实现

Softmax原理 Softmax函数用于将分类结果归一化&#xff0c;形成一个概率分布。作用类似于二分类中的Sigmoid函数。 对于一个k维向量z&#xff0c;我们想把这个结果转换为一个k个类别的概率分布p(z)。softmax可以用于实现上述结果&#xff0c;具体计算公式为&#xff1a; 对于…

GO语言笔记4-标识符、关键字与运算符

标识符 什么是标识符 变量名、方法名等我们起的名字都是标识符 标识符定义规则 字母、数字、下划线组成不可以数字开头&#xff0c;严格区分大小写&#xff0c;不能带有空格&#xff0c;不可以是go的关键字不能单独使用 下划线&#xff0c;因为下划线在GO中是一个特殊标识符&…

2024刘谦春晚第二个扑克牌魔术

前言 就是刚才看春晚感觉这个很神奇&#xff0c;虽然第一个咱模仿不过来&#xff0c;第二个全国人民这么多人&#xff0c;包括全场观众都有成功&#xff0c;这肯定是不需要什么技术&#xff0c;那我觉得这个肯定就是数学了&#xff0c;于是我就胡乱分析一通。 正文 首先准备…

Pandas to_csv() - 将 DataFrame 转换为 CSV

Pandas DataFrame to_csv() 函数将 DataFrame 转换为 CSV 数据。我们可以传递一个文件对象来将 CSV 数据写入文件中。否则&#xff0c;CSV 数据将以字符串格式返回。 Pandas DataFrame to_csv() 语法 DataFrame to_csv() 函数的语法是&#xff1a; def to_csv(self,path_or_…

ElasticSearch级查询Query DSL下

目录 全文检索 match query匹配查询 multi_match query 多字段查询 match_phrase query短语查询 query_string query simple_query_string bool query布尔查询 highlight高亮 自定义高亮html标签 多字段高亮 全文检索 全文检索查询&#xff08;Full Text Queries&…

【蓝桥杯冲冲冲】k 短路 / [SDOI2010] 魔法猪学院

蓝桥杯备赛 | 洛谷做题打卡day33 文章目录 蓝桥杯备赛 | 洛谷做题打卡day33题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示数据规模数据更新日志 题解代码我的一些话 【模板】k 短路 / [SDOI2010] 魔法猪学院 题目背景 注&#xff1a;对于 k k k 短路问…

正则可视化工具:学习和编写正则表达式的利器

引言 正则表达式是一种强大的文本匹配和处理工具&#xff0c;但对于初学者和非专业开发者来说&#xff0c;编写和理解正则表达式可能是一项具有挑战性的任务。为了帮助人们更好地学习和编写正则表达式&#xff0c;正则可视化工具应运而生。本文将探讨正则可视化工具的优点&…

ChatGPT在国际中文教育领域引起的变革与挑战

随着ChatGPT这一先进的自然语言处理模型的出现&#xff0c;教学、学习、测评和辅导的传统方式正在面临可能的重塑。她是否会影响中文教育的未来方向&#xff0c;甚至取代中文教师的角色&#xff0c;成为了许多人热议的话题。本文旨在探讨ChatGPT与中文测评之间的联系&#xff0…

并行计算导论 笔记 1

目录 并行编程平台隐式并行超标量执行/指令流水线超长指令字处理器 VLIW 内存性能系统的局限避免内存延迟的方法 并行计算平台控制结构通信模型共享地址空间平台消息传递平台对比 物理组织理想并行计算机并行计算机互联网络网络拓朴结构基于总线的网络交叉开关网络多级网络全连…

leaflet 显示自己geoserver发布的中国地图

安装vscode 安装 通义灵码 问题&#xff1a; 用leaflet显示一个wms地图 修改下代码&#xff0c;结果如下&#xff1a; 例子代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport&q…

自然语言处理(NLP)—— 基本概念

自然语言处理&#xff08;Natural Language Processing&#xff0c;简称NLP&#xff09;是人工智能和语言学领域的一个分支&#xff0c;它涉及到计算机和人类&#xff08;自然&#xff09;语言之间的相互作用。它的主要目标是让计算机能够理解、解释和生成人类语言的数据。NLP结…

Debezium发布历史123

原文地址&#xff1a; https://debezium.io/blog/2022/06/02/debezium-1-9-3-final-released/ 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;工具翻译&#xff0c;仅供参考&#xff0c;笔芯笔芯. Debezium 1.9.3.Final Released June 2, 2022 by Chris Cranford r…

极狐GitLab 与钉钉的集成实践

DingTalk OAuth 2.0 OmniAuth provider * 引入于 14.5 版本。 您可以使用您的钉钉账号登录极狐GitLab。 登录钉钉开放平台&#xff0c;创建应用。钉钉会生成一个客户端 ID 和密钥供您使用。 登录钉钉开放平台。 在顶部栏上&#xff0c;选择 应用程序开发 > 企业内部开发&am…

【EAI 015】CLIPort: What and Where Pathways for Robotic Manipulation

论文标题&#xff1a;CLIPort: What and Where Pathways for Robotic Manipulation 论文作者&#xff1a;Mohit Shridhar1, Lucas Manuelli, Dieter Fox1 作者单位&#xff1a;University of Washington, NVIDIA 论文原文&#xff1a;https://arxiv.org/abs/2109.12098 论文出处…

【数据结构】链式队列解析(C语言版)

数据结构——链队列解析过程和简单代码实现&#xff1a; 一、简单概念&#xff1a; 动图展示&#xff1a; (1)入队&#xff1a;(2)出队&#xff1a; 二、顺序队列&#xff1a; 思路步奏&#xff1a; &#xff08;1&#xff09;入队操作&#xff1a;&#xff08;2&#xff09;出…

组合模式:简化复杂结构的设计艺术

组合模式&#xff1a;简化复杂结构的设计艺术 在软件开发的世界里&#xff0c;设计模式是帮助我们解决常见问题的一系列最佳实践。其中&#xff0c;组合模式以其独特的方式处理对象的组合&#xff0c;使得单个对象和组合对象的管理变得更加简单和直观。本文将深入探讨组合模式…

《统计学简易速速上手小册》第6章:多变量数据分析(2024 最新版)

文章目录 6.1 主成分分析&#xff08;PCA&#xff09;6.1.1 基础知识6.1.2 主要案例&#xff1a;客户细分6.1.3 拓展案例 1&#xff1a;面部识别6.1.4 拓展案例 2&#xff1a;基因数据分析 6.2 聚类分析6.2.1 基础知识6.2.2 主要案例&#xff1a;市场细分6.2.3 拓展案例 1&…