Web学习day03

maven&Mybatis


目录

maven&Mybatis

文章目录

一、maven

1.1作用

1.2仓库

1.3命令

1.4依赖范围

1.5生命周期

二、MyBatis

2.1简介

2.2API

2.3增删改的实现&案例

总结


一、maven

1.1作用

统一项目结构;项目构建:通过简单命令,就可以完成项目的整个构建过程;

依赖管理:通过坐标的方式导入jar包过程

1.2仓库

本地仓库:每个开发者电脑,都需要有一个本地仓库

中央仓库:公网  

私服:公司内部

IDEA配置maven工具:全局settings配置:指定maven工具路径、指定maven工具配置文件路径、指定maven工具本地仓库的路径

1.3命令

 clean:清除编译后的文件就是删除target文件夹

  compile:编译项目

  test: 执行junit测试代码

  package:把项目打成jar包

  install:把打好的包放到本地仓库

  deploy:把打好的包放到私服上

1.4依赖范围

* compile(默认):默认依赖范围,作用域在编译、测试、运行时都有效。

* test:作用域在测试时有效。编译和运行时不需要,比如:Junit。

* provided:作用域在编译、测试时有效。运行时不需要,比如: servlet-api 被 tomcat 容器提供。 

* runtime:作用域在测试、运行时有效。编译时不需要,比如:jdbc的驱动包。

1.5生命周期

  Maven的命令是有先后顺序的,执行后面的命令会自动执行前面的命令

 举例:  我执行了package命令就自动会执行  compile test

二、MyBatis

2.1简介

mybatis向数据库发送SQL语句

2.2API

Resources:加载核心配置文件

SqlSessionFactoryBuilder:构建工厂对象

SqlSessionFactory:生产会话对象

SqlSession:实现与数据库CRUD操作

2.3增删改的实现&案例

user表:

user类的定义

代码如下:

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {private Integer id;private String name;private Integer age;private Integer gender;private String phone;
}

userMapper接口实现增删改方法

代码如下:

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Update;public interface UserMapper {@Insert("insert into user values (null,#{name},#{age},#{gender},#{phone})")void save(User user);@Update("update user set name=#{name},age=#{age},gender=#{gender},phone=#{phone} where id=#{id}")void updateById(User user);@Delete("delete from user where id = #{id}")void deleteById(Integer id);
}
MybatisUtil工具类

代码如下:

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException;
import java.io.InputStream;public class MybatisUtil {static SqlSessionFactory sqlSessionFactory = null;static {//1. 使用mybatis将user对象保存到数据库(步骤不重要, 不用记)//1-1 读取配置文件,读成一个输入流InputStream inputStream = null;try {inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");//1-2 创建SqlSessionFactory对象sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);} catch (IOException e) {throw new RuntimeException(e);}}public static SqlSession getSqlSession(){//1-3 获取SqlSession对象SqlSession sqlSession = sqlSessionFactory.openSession();return sqlSession;}public static void commitAndClose(SqlSession sqlSession){//1-5 提交事务sqlSession.commit();//1-6 释放资源sqlSession.close();}
}

xml配置文件

代码如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><settings><!--在控制台输出发送的sql日志--><setting name="logImpl" value="STDOUT_LOGGING"/></settings><environments default="development"><environment id="development"><transactionManager type="JDBC"/><!--目前只关注这部分内容,它的作用就是声明要连接的数据信息--><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/mybatis"/><property name="username" value="****"/><property name="password" value="****"/></dataSource></environment></environments><mappers><!--声明含有sql的接口所在包--><package name="com.*****.mapper"/></mappers>
</configuration>

测试类

代码如下:

public class UserMapperTest {@Testpublic void testSave() throws IOException {User user = new User();user.setName("李四");user.setAge(30);user.setGender(0);user.setPhone("13800000034");SqlSession sqlSession = MybatisUtil.getSqlSession();//1-4 获取UserMapper对象,调用方法UserMapper userMapper = sqlSession.getMapper(UserMapper.class);userMapper.save(user);MybatisUtil.commitAndClose(sqlSession);}@Testpublic void testUpdate() throws IOException {User user = new User();user.setId(1);user.setName("王五");user.setAge(33);user.setGender(1);user.setPhone("13800000044");SqlSession sqlSession = MybatisUtil.getSqlSession();//1-4 获取UserMapper对象,调用方法UserMapper userMapper = sqlSession.getMapper(UserMapper.class);userMapper.updateById(user);MybatisUtil.commitAndClose(sqlSession);}@Testpublic void testDelete() throws IOException {SqlSession sqlSession = MybatisUtil.getSqlSession();//1-4 获取UserMapper对象,调用方法UserMapper userMapper = sqlSession.getMapper(UserMapper.class);userMapper.deleteById(6);MybatisUtil.commitAndClose(sqlSession);}
}

总结

以上就是今天学习的内容。

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

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

相关文章

GitHub 站点打不开

遇到的问题 您是否遇到过GitHub网站打不开的情况&#xff0c;正如下图所示&#xff1a; 解决方案 以下是一些常见的解决方案&#xff1a; 1. 检查网络连接 确保你的设备已连接到互联网。尝试访问其他网站&#xff0c;确保不是你的网络问题。 C:\Vinca>ping github.…

Vue+SpringBoot实现仿网盘项目

目录 一、效果展示 二、前端代码 三、后端代码及核心解释 四、进阶开发与思路 一、效果展示 1.1读取文件夹内的文件 1.2删除功能 1.3 上传文件 1.4 文件下载 对应的网盘实际地址与对应下载内容&#xff1a; 二、前端代码 2.1 创建vue项目&#xff08;需要有vuex与router&…

C++笔试真题

可变分区管理方案 最佳适应&#xff1a;空闲区按容量递增最坏适应&#xff1a;空闲区按容量递减首先适应&#xff1a;空闲区按地址递增 C的结构体中有构造函数。 Linux新建用户或组 useradd&#xff1a;命令用于建立用户账号usermod&#xff1a;修改用户账号groupadd&#…

【模块化与包管理】:解锁【Python】编程的高效之道

目录 1.什么是模块&#xff1f; 2. 模块的导入过程 3. 理解命名空间 4. import语句的多种形式 5. 模块的执行与重新导入 6. 包&#xff08;Package&#xff09; 7. sys模块和os模块 sys模块 常用属性 示例&#xff1a;使用sys模块 os模块 常用功能 示例&#xff1…

【鸿蒙学习笔记】使用动画

官方文档&#xff1a;使用动画 目录标题 属性动画&#xff1a;通用属性发生改变时而产生的属性渐变效果animationanimateTo自定义属性动画 AnimatableExtend 转场动画&#xff1a;是页面或组件的切换动画 , 显示/隐藏 切换时的动画出现/消失转场&#xff1a;实现一个组件出现或…

【Superset】dashboard 自定义URL

URL设置 在发布仪表盘&#xff08;dashboard&#xff09;后&#xff0c;可以通过修改看板属性中的SLUG等&#xff0c;生成url 举例&#xff1a; http://localhost:8090/superset/dashboard/test/ 参数设置 以下 URL 参数可用于修改仪表板的呈现方式&#xff1a;此处参考了官…

SolidWorks滚花螺栓制作-cnblog

目标 规划基准图形 确定尺寸&#xff0c;单位mm 我 对固定好的图形进行旋转 倒角 设置螺纹 注意改变深度为15mm 收尾位置补全 滚花 建立基准面 制作多边形 添加穿透 扫描切除 圆周阵列 成品完成

【深度学习】手动完成线性回归!

&#x1f34a;嗨&#xff0c;大家好&#xff0c;我是小森( &#xfe61;ˆoˆ&#xfe61; )&#xff01; 易编橙终身成长社群创始团队嘉宾&#xff0c;橙似锦计划领衔成员、阿里云专家博主、腾讯云内容共创官、CSDN人工智能领域优质创作者 。 易编橙&#xff1a;一个帮助编程小…

现代码头装卸系统:技术创新与效率提升

引言 码头装卸系统在全球贸易和物流链中扮演着至关重要的角色。随着全球化进程的加快&#xff0c;国际贸易量不断增加&#xff0c;港口作为货物进出主要枢纽&#xff0c;其装卸效率直接影响到整个物流链的运作效率和成本。一个高效、现代化的码头装卸系统不仅能提高港口的货物处…

JVM是如何创建一个对象的?

哈喽&#xff0c;大家好&#x1f389;&#xff0c;我是世杰。 本文我为大家介绍面试官经常考察的**「Java对象创建流程」** 照例在开头留一些面试考察内容~~ 面试连环call Java对象创建的流程是什么样?JVM执行new关键字时都有哪些操作?JVM在频繁创建对象时&#xff0c;如何…

JVM垃圾回收器详解

垃圾回收器 JDK 默认垃圾收集器&#xff08;使用 java -XX:PrintCommandLineFlags -version 命令查看&#xff09;&#xff1a; JDK 8&#xff1a;Parallel Scavenge&#xff08;新生代&#xff09; Parallel Old&#xff08;老年代&#xff09; JDK 9 ~ JDK20: G1 堆内存中…

CVE-2024-6387Open SSH漏洞彻底解决举措(含踩坑内容)

一、漏洞名称 OpenSSH 远程代码执行漏洞(CVE-2024-6387) 二、漏洞概述 Open SSH是基于SSH协议的安全网络通信工具&#xff0c;广泛应用于远程服务器管理、加密文件传输、端口转发、远程控制等多个领域。近日被爆出存在一个远程代码执行漏洞&#xff0c;由于Open SSH服务器端…

2024年夏季德旺杯数学素养水平测试

此为小高组的测试&#xff0c;不过德旺杯主要看获奖情况&#xff0c;选择学员入营

基于考研题库小程序V2.0实现倒计时功能板块和超时判错功能

V2.0 需求沟通 需求分析 计时模块 3.1.1、功能描述←计时模块用于做题过程中对每一题的作答进行30秒倒计时&#xff0c;超时直接判错&#xff0c;同时将总用时显示在界面上;记录每次做题的总用时。 3.1.2、接口描述←与判定模块的接口为超时判定&#xff0c;若单题用时超过 …

人工智能和机器学习 (复旦大学计算机科学与技术实践工作站)20240703(上午场)人工智能初步、mind+人脸识别

前言 在这个科技日新月异的时代&#xff0c;人工智能&#xff08;AI&#xff09;已经逐渐渗透到我们生活的方方面面&#xff0c;从智能家居到自动驾驶&#xff0c;无一不彰显着AI的强大潜力。而人脸识别技术作为AI领域的一项重要应用&#xff0c;更是以其高效、便捷的特点受到了…

萤石揽获2024葵花奖17项重磅大奖 登顶荣誉之巅

7月9日&#xff0c;第八届葵花奖智能家居评选颁奖盛典在中国建博会&#xff08;广州&#xff09;广交会展馆隆重举行。萤石共斩获横跨智能锁、智能家居摄像机、智能清洁、全屋智能以及物联网云平台等多个领域的17项大奖&#xff0c;创下行业最多记录&#xff0c;并问鼎金至尊奖…

记录|C#安装+HslCommunication安装

记录线索 前言一、C#安装1.社区版下载2.VS2022界面设置 二、HslCommunication安装1.前提2.安装3.相关文件【重点】 更新记录 前言 初心是为了下次到新的电脑上安装VS2022做C#上机位项目时能快速安装成功。 一、C#安装 1.社区版下载 Step1. 直接点击VS2022&#xff0c;跳转下…

华为机试HJ106字符逆序

华为机试HJ106字符逆序 题目&#xff1a; 想法&#xff1a; 将输入的字符串倒叙输出即可 input_str input()print(input_str[::-1])

二十年大数据到 AI,图灵奖得主眼中的数据库因果循环

最近&#xff0c;MIT 教授 Michael Stonebraker 和 CMU 教授 Andrew Pavlo (Andy) 教授联合发表了一篇数据库论文。Michael Stonebraker 80 高龄&#xff0c;是数据库行业唯一在世的图灵奖得主&#xff0c;Andy 则是业界少壮派里的最大 KOL。 一老一少&#xff0c;当今数据库届…

MVC架构

MVC架构 MVC架构在软件开发中通常指的是一种设计模式&#xff0c;它将应用程序分为三个主要组成部分&#xff1a;模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;和控制器&#xff08;Controller&#xff09;。这种分层结构有助于组织代码&#xff0c;使…