Mybatis入门

Mybatis

mybatis是一款优秀的持久层框架,用于简化JDBC的开发。(控制层 controller)(业务层service)(持久层dao)(数据库)

快速创建springboot-mybatis工程

jdk选11 ,依赖Mybatis Framework 和 MySql driver---- 删除乱七八糟的文件夹 只留下src和pom.xml

创建数据库表

登录mysql,创建mybatis数据库

create database mybatis;
create table user(id int unsigned primary key auto_increment,name varchar(100),age tinyint unsigned,gender tinyint unsigned,phone varchar(11));//创建个user表 随表插几条数据
insert into user (name, age, gender, phone) VALUES ('朱元璋',22,1,'12345678900');
insert into user (name, age, gender, phone) VALUES ('马皇后',18,2,'12345678901');

项目生成user类

 package com.example.springbootmybatis.pojo;public class User {private Integer id;private String name;private Short age;private Short gender;private String phone;public User() {}public User(Integer id, String name, Short age, Short gender, String phone) {this.id = id;this.name = name;this.age = age;this.gender = gender;this.phone = phone;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Short getAge() {return age;}public void setAge(Short age) {this.age = age;}public Short getGender() {return gender;}public void setGender(Short gender) {this.gender = gender;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}@Overridepublic String toString() {return "User{" +"id=" + id +", name='" + name + '\'' +", age=" + age +", gender=" + gender +", phone='" + phone + '\'' +'}';}
}

引入Mybatis的相关依赖,配置mybatis数据库连接信息

application.properties
#配置数据库连接信息
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis?useSSL=false&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=1234

UserMapper接口

@Mapper //运行时。会自动生成该接口的实现对象(代理对象),并且将对象交给IOC容器管理
public interface UserMapper {//定义方法//查询所哟@Select("select * from user")public List<User> list();
}

基本测试

@Autowired
private  UserMapper userMapper;
查询中文乱码
show variables like'%basedir%';//检查Mysql ini文件
检查IDEA配置
检查properties配置

配置SQL提示

在这里插入图片描述

JDBC快速入门

@Testpublic void jdbcTest() 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.获取statement对象执行sqlString sql = "select * from user";Statement statement = connection.createStatement();ResultSet resultSet = statement.executeQuery(sql);//4.封装结果数据List<User> list = new ArrayList<>();while (resultSet.next()){Integer 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);list.add(user);}//5.释放资源statement.cancel();connection.close();list.stream().forEach(user -> {System.out.println(user);});}

数据库连接池

数据库连接池是个容器,负责分配、管理数据库连接(connection)。
允许应用程序使用同一个现有的数据库连接,而不需要新建立。
释放空间时间超过最大空闲时间的连接,来避免因没有释放连接而引起的数据库连接遗漏。

优势:资源重用、提升系统响应速度、避免数据库连接遗漏。

Druid连接池

pom.xml

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

lombok工具包

在这里插入图片描述

 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>

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

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

相关文章

MAC m系列docker login报错

错误&#xff1a;ERROR: failed to solve: XXX error getting credentials - err: exit status 1, out: 解决&#xff1a; vi ~/.docker/config.jsonzsxzsx [15时55分55秒] [~] { {"auths": {"harbor-g42c.corp.matrx.team": {"auth": "…

RK平台使用MP4视频做开机动画以及卡顿问题

rk平台android11以后系统都可以使用MP4格式的视频做开机动画,系统源码里面默认使用的是ts格式的视频,其实使用mp4的视频也是可以的。具体修改如下: diff --git a/frameworks/base/cmds/bootanimation/BootAnimation.cpp b/frameworks/base/cmds/bootanimation/BootAnimat…

android Selinux 之 platform

概念&#xff1a; 平台签名&#xff1a;Android.mk 中&#xff0c;定义 LOCAL_CERTIFICATE : platform system权限&#xff1a;AndroidManifest.xml 中声明 android:sharedUserId"android.uid.system" &#xff0c;同时是平台签名 分类&#xff1a; untrusted_…

ubuntu下使用gcc编译c程序: “error: stray ‘\357’ in program“

现象&#xff1a; ubuntu下使用gcc编译c程序: “error: stray ‘\357’ in program“ 尝试查找原因&#xff1a;打开从windos直接粘贴c程序到ubuntu的c代码&#xff0c;发现多了 <200b>&#xff1a; 方案&#xff1a;尝试在vim编辑器删除&#xff0c;多出来的字符后编译…

ARM 按键控制 LED灯,蜂鸣器,风扇

main.c: #include "uart.h" #include "key_it.h" int main() {all_led_init();uart4_init();//串口初始化//中断初始化key_it_config();key3_it_config();buzzer_init();fan_init();while(1){//保证主程序不结束}return 0; }src/key_it.c: #include"…

Java 使用 Easyexcel 导出大量数据

读Excel | Easy Excel 1、 我遇到的数据量超级大&#xff0c;使用传统的POI方式来完成导入导出很明显会内存溢出&#xff0c;并且效率会非常低&#xff1b;2、 数据量大直接使用select * from tableName肯定不行&#xff0c;一下子查出来300w条数据肯定会很慢&#xff1b;3、 …

昇腾910使用记录

一. 压缩文件和解压文件 1. 压缩文件 tar -czvf UNITE-main.tar.gz ./UNITE-main/2. 解压文件 tar -xvf ./UNITE-main/二. CUDA更改为NPU data[label] data[label].cuda() data[instance] data[instance].cuda() data[image] data[image].cuda()更改为 data[label] da…

小程序中使用echarts的相关配置以及折线图案例(简单易懂)

第一步&#xff1a;引入echarts文件--此文件需要下载&#xff1a; 下载地址&#xff1a;点击此处进行下载echarts文件 点击Download ZIP下载压缩包&#xff0c;注意&#xff1a;e-canvas是我从完整的文件中剥离出来的有用的&#xff0c;不会影响项目。 第二步&#xff1a;把整…

ctfshow萌新计划web9-14(正则匹配绕过)

目录 web9 web10 web11 web12 web13 web14 web9 审一下代码&#xff0c;需要匹配到system|exec|highlight才会执行eval函数 先看一下当前目录下有什么 payload&#xff1a;?csystem(ls); index.php是首页&#xff0c;我们看看config.php payload&#xff1a;?csystem…

nodejs+vue+elementui医院挂号预约管理系统4n9w0

前端技术&#xff1a;nodejsvueelementui 前端&#xff1a;HTML5,CSS3、JavaScript、VUE 1、 node_modules文件夹(有npn install Express 框架于Node运行环境的Web框架, 开发语言 node.js 框架&#xff1a;Express 前端:Vue.js 数据库&#xff1a;mysql 数据库工具&#xff…

邮政编码,格式校验:@ZipCode(自定义注解)

目标 自定义一个用于校验邮政编码格式的注解ZipCode&#xff0c;能够和现有的 Validation 兼容&#xff0c;使用方式和其他校验注解保持一致&#xff08;使用 Valid 注解接口参数&#xff09;。 校验逻辑 有效格式 不能包含空格&#xff1b;应为6位数字&#xff1b; 不校验…

AI「鸟口普查」,康奈尔大学利用深度学习分析北美林莺分布

据世界自然基金会统计&#xff0c;1970-2016 年&#xff0c;全球代表物种种群数量减少了 68%&#xff0c;生物多样性不断下降。 保护生物多样性&#xff0c;需要对当地生态情况进行准确分析&#xff0c;制定合理的生态保护政策。然而&#xff0c;生态数据太过庞杂&#xff0c;统…

瀑布流布局(CSS flex实现)

关键点 使用了 vw 进行自适应缩放html: <div class="container"><div class="queue"><div

小程序中如何设置所服务地区的时区

在全球化的背景下&#xff0c;小程序除了在中国使用外&#xff0c;还为海外的华人地区提供服务。例如我们采云小程序为泰国、阿根廷、缅甸等国家的商家就提供过微信小程序。这些商家开通小程序&#xff0c;为本地的华人提供服务。但通常小程序的开发者/服务商位于中国&#xff…

蓝桥等考Python组别十七级006

第一部分:选择题 1、Python L17 (15分) 运行下面程序,输出的结果是( )。 def func(x, y): return (x - y) // 2 print(func(11, 4)) 2345正确答案:B 2、Python L17 (15

【MySQL】联合查询、子查询、合并查询

这里提供了三个表&#xff1a; 表1&#xff1a; mysql> select * from class; -------------- | id | name | -------------- | 1 | 一班 | | 2 | 二班 | | 3 | 三班 | -------------- 3 rows in set (0.01 sec) 表2&#xff1a; mysql> select * fro…

TCP/IP(十四)流量控制

一 流量控制 说明&#xff1a; 本文只是原理铺垫,没有用tcpdumpwiresahrk鲜活的案例讲解,后续补充 ① 基本概念 流量控制: TCP 通过接受方实际能接收的数据量来控制发送方的窗口大小 ② 正常传输过程 背景:1、客户端是接收方,服务端是发送方 --> 下载2、假设接收窗…

【0227】smgr设计机制之新建一个磁盘表文件

相关阅读: 【0222】存储管理器smgr设计机制,及SMgrRelation、SMgrRelationData的作用(1) 【0223】源码剖析smgr底层设计机制(3) 【0224】smgr设计机制之通过RelFileNode访问磁盘表文件(2) 【0225】源码分析postgres磁盘块(disk block)定义 【0226】smgr设计机制中,s…

OpenCV4(C++)——模板匹配

matchTemplate 模板匹配和卷积运算大致相同&#xff0c;模板图类似于卷积核&#xff0c;从原图的左上角开始进行滑动窗口的操作&#xff0c;最后得到一个特征图&#xff0c;这个特征图里的数值就是每次计算得到的相似度&#xff0c;通用匹配方式&#xff0c;相似值是&#xff…

强制结束subprocess.Popen开启的任务

强制结束subprocess.Popen开启的任务 需要使用到psutil库&#xff0c;可以通过pip安装 import subprocessimport psutildef kill(proc_pid):process psutil.Process(proc_pid)for proc in process.children(recursiveTrue):proc.kill()process.kill()proc subprocess.Popen([…