先做产品网站还是app/互联网营销培训

先做产品网站还是app,互联网营销培训,网站建设售前说明书,深圳外贸建站与推广1. MyBatis 是什么? MyBatis 是一个流行的、轻量级的 Java 持久层框架,它简化了与数据库交互和 SQL 映射的过程。MyBatis 取代了 JDBC 原始 API 的大量繁琐工作,允许开发者将更多的精力放在业务逻辑上而不是处理数据访问细节。 mybatis 是一款…

1. MyBatis 是什么?

        MyBatis 是一个流行的、轻量级的 Java 持久层框架,它简化了与数据库交互和 SQL 映射的过程。MyBatis 取代了 JDBC 原始 API 的大量繁琐工作,允许开发者将更多的精力放在业务逻辑上而不是处理数据访问细节。

mybatis 是一款优秀的 ORM 持久化 框架

  • ORM
    • Object - Relation-Mapping
    • Object Java对象(类)--关系型数据库(表)--映射配置
    • 用來映射 类名和表名、属性和字段、Java类型和数据库类型等信息
  • 持久化
    • 瞬时状态转为持久状态过程-----插入 更新 删除操作
    • 持久状态转为瞬时状态过程---- 查询
    • 持久化:瞬时状态和持久状态相互转化的过程,称之为持久化
  • 序列化
    • ObjectInputStreame 和 ObjectOutputStream
    • 把对象状态转为可存储或可传输的状态,称之为序列化
    • 把可存储或可传输的状态转为对象状态,称之为反序列化
  • 框架
    • 一个半成品

2. 搭建 Mybatis项目

准备:

  • 创建数据库和表
  • Maven
    • 传统 Web项目 ,把 jar 手动拷贝到 WEB-INF/lib
    • Maven Web项目,只需配置 pom.xml 即可,自动下载和导入、管理 jar
      • jar 多
      • 版本不一致

3. Maven

Maven 是一款优秀 Java 自动构建工具

  • 源码--编译--测试--部署--安装等到服务器
  • 同类: Ant、Gradle

安装配置

  • 下载 :Maven – Download Apache Maven

  • 配置:

    • 解压到非中文目录下

    • 配置 Maven_Home 安装目录下的 conf 目录下的 settings.xml 配置文件,配置本地仓库的目录

      • 例如:\apache-maven-3.9.0\conf\settings.xml

      • 本地仓库:存放 bar 包的位置目录

        D:/Soft/maven/repo

    • 在 idea 开发工具中配置自定义的 Maven 目录

      • File --Settings--搜索 Maven 进行配置

        安装目录的配置和配置文件settings.xml配置,自动定位到上一步中的仓库目录

      • 注意:为了防止每次新建工程时,又重新恢复到默认的C盘目录,建议配置 “新建项目设置”

  • 本地仓库、中央仓库、私服仓库

        .本地仓库(Local Repository):

    • 这是每个开发者个人电脑上的一个目录,用来存储从远程仓库下载的所有 jar 包和其他构建工件。当开发者构建项目时,Maven 或 Gradle 首先会在本地仓库查找所需的依赖。如果本地仓库没有该依赖,就会尝试从远程仓库下载,并将下载后的文件保存到本地仓库供后续使用。这样可以减少不必要的网络传输,提高构建速度。
    • 中央仓库(Central Repository):
    • 中央仓库是由 Maven 社区维护的一个大型公共仓库,位于 Central Repository: ,其中包含了大量开源项目的构件(artifacts)。大多数流行的开源Java库都可以在这个仓库中找到。当开发者配置了指向中央仓库的地址后,构建工具会自动从这里获取未在本地仓库找到的依赖。
    • 私服仓库(Private/Nexus Repository):
    • 私服是指组织内部搭建的私有仓库服务器,如 Sonatype Nexus 或 JFrog Artifactory。它通常作为中央仓库的代理或补充,可缓存中央仓库的内容,同时也可以用来托管企业内部开发的私有构件,便于团队成员之间共享和管理这些构件。私服可以设置为优先于中央仓库被访问,从而加速依赖下载,同时也有利于保护敏感信息和控制版本发布流程。
  • 配置阿里镜像

    问题:每次在下载第一次使用的jar时,都会去访问中央仓库,国外的服务器,速度相对较慢

    所以为了提高下载速度,我们可以修改默认下载服务器的url ,更换为阿里的服务器

新建 Maven 项目

  • File -- New Project -- Empty Project
  • 新工程下右键,new Module 选择 Maven
  • 注意:新的 Maven 目录
    • 约定大于配置
    • 源代码位置: src/main/java
    • 资源文件位置:src/main/resources
    • 测试代码的目录:src/test/java
  • 自动化和半自动化
    • 自动化代表是Hibernate 半自动化代表 Mybatis
    • 自动化优点开发效率高,代码量小、简单、不需要学习SQL、入门简单;缺点:缺失了灵活性
    • 半自动化优点:灵活,运行效率相对较高,省略了自动生成SQL过程。 缺点:开发效率相对较低,代码量相对大写,需要学习SQL,复杂些

4. Mybatis 开发步骤

0. 创建数据库和表

先在 MySQL 创建 mydb 数据库

在创建表 emp

SQL:

create database mydb;
use mydb;
create table dept(deptno int primary key auto_increment,dname varchar(20)
);
create table emp(empno int primary key auto_increment,salary float,ename varchar(20),deptno int,hiredate date
);
private Integer empno;private String ename;private Float salary;private Integer deptno;private Date hiredate;

1. 配置依赖

在pom.xml中配置 mysql驱动依赖和mybatis依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>mybatis01</artifactId><version>1.0-SNAPSHOT</version><!--坐标--><dependencies><!--mysql驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.29</version></dependency><!-- MyBatis 依赖--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.9</version></dependency></dependencies>
</project>

2. 新建和配置mybatis配置文件

  • 可以通过官网拷贝https://mybatis.org/mybatis-3/zh/getting-started.html
  • 位置:在src/main/resources 下新建 mybatis-coinfig.xml (名字可以自己定义)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><environments default="devA"><environment id="devA"><transactionManager type="JDBC"></transactionManager><dataSource type="POOLED"><property name="username" value="root"/><property name="password" value="root"/><property name="url" value="jdbc:mysql://127.0.0.1:3306/mydb"/><property name="driver" value="com.mysql.cj.jdbc.Driver"/></dataSource></environment>
<!--        <environment id="devB"><transactionManager type=""></transactionManager><dataSource type=""></dataSource></environment>--></environments>
</configuration>

3. 编写实体类

  • 和表结构对应
  • 可以使用 Lombok 简化 setter 和 getter
@Data
public class Emp {private Integer empno;private String ename;private Float salary;private Integer deptno;private Date hiredate;}

4. 映射文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wdzl.dao.MySpace"><select id="getCount" >select count(*) from emp</select>
</mapper>

注意再更新配置文件,配置关联

<mappers><mapper resource="mapper/EmpMapper.xml"/>
</mappers>

5. 编写代码

SqlSessionFactoryBuilder

SqlSessionFactory

SqlSession

public class TestMyBatis {public static void main(String[] args) {// 解析 xml 配置和映射文件SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();try {InputStream is = Resources.getResourceAsStream("mybatis-config.xml");// 创建sqlSessionFactorySqlSessionFactory sqlSessionFactory = builder.build(is);// 创建 sqlSessionSqlSession sqlSession = sqlSessionFactory.openSession();//执行SQLInteger count =  sqlSession.selectOne("com.wdzl.dao.MySpace.getCount");System.out.println(">>>>==="+count);// 关闭sqlSession.close();} catch (Exception e) {throw new RuntimeException(e);}}
}

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

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

相关文章

激光雷达研究笔记1:资料整理与学习_windows机对其评估使用

到手了一款型号为LDROBOT LiDAR LD19 的单线激光雷达模块&#xff0c;现对其进行学习使用&#xff1a; 1.对产品手册的研究&#xff1a; 通读产品手册后&#xff0c;我提炼了几方面有用的信息&#xff1a; 1.测量依据&#xff1a; 以下是激光雷达点云扫描示意图&#xff1a; 上…

Linux信号机制(二)

目录 一、信号的阻塞 二、信号集操作函数 三、sigprocmask函数 四、pause函数 五、sigsuspend函数 一、信号的阻塞 有时候不希望在接到信号时就立即停止当前执行&#xff0c;去处理信号&#xff0c;同时也不希望忽略该信号&#xff0c;而是延时一段时间去调用信号处理函数。…

【Sql Server】通过Sql语句批量处理数据,使用变量且遍历数据进行逻辑处理

欢迎来到《小5讲堂》&#xff0c;大家好&#xff0c;我是全栈小5。 这是《Sql Server》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对…

Qt配置OpenCV,无需编译

网上很多关于Qt配置OpenCV的教程都需要下载CMake编译Opencv&#xff0c;但是这种做法出错的概率很大&#xff0c;很多时候会受CMake或者Opencv版本的影响&#xff0c;又或者是没有使用Qt自带的Cmake-gui.exe程序&#xff0c;我在编译的时候也是频繁出错。 本文推荐的方法是使用…

【EDK II】作为UEFI的实现,EDK II 的架构是什么样的

目录 前言 EDK II 架构 配置文件 结语 前言 基本输入输出系统 (Basic Input Output System, BIOS) 最早由 IBM&#xff08;International Business Machines Corporation) 公司于1981年提出并开发&#xff0c;后来成为个人计算机(PC)的标准固件接口。但受限于传统BIOS (Le…

MySQL的用户管理以及权限设置

用户管理 账户管理 我们在数据库里面创建用户&#xff0c;修改用户&#xff0c;删除用户&#xff0c;本质上就是对mysql数据库下的user表进行增删查改&#xff0c;用户的所有信息都存在这张表里&#xff0c;我们想要创建用户可以往user表insert&#xff0c;删除用户可以delet…

【Java基础概述-10】IO流、字节流、字符流、缓冲流、转换流、序列化、打印流、Properties属性集对象

目录 1、IO流概述 2、字节流的使用 2.1、FileInputStream字节输入流 2.1.1、读取方式一 2.1.2、读取方式二 2.1.3、字节流读取数据如何避免中文乱码 2.2、OutputStream字节输出流 2.3、案例&#xff1a;复制粘贴小案例 3、字符流 3.1、FileReader字符输入流 3.1.1、读…

打卡学习kubernetes——kubernetes架构原理

接上一篇的内容&#xff0c;除了核心组件&#xff0c;还有一些推荐的Add-ons&#xff1a; kube-dns 负责为整个集群提供DNS服务Ingress Controller 为服务提供外网入口Heapster 提供资源监控&#xff08;没用过这个&#xff0c;但是用过grafana&#xff0c;很方便&#xf…

MySQL的事务隔离是如何实现的?

目录 从一个例子说起 快照读和当前读 事务的启动时机和读视图生成的时刻 MVCC 隐藏字段 Undo Log回滚日志 Read View - 读视图 可重复读(RC)隔离级别下的MVCC 读提交(RR)隔离级别下的MCC 关于MVCC的一些疑问 1.为什么需要 MVCC &#xff1f;如果没有 MVCC 会怎样&am…

ov多域名SSL数字证书1200元一年送一月

随着互联网的发展&#xff0c;不论是个人用户还是企事业单位都不止有一个网站&#xff0c;为了保护网站安全&#xff0c;就需要为网站安装SSL证书&#xff0c;而SSL证书中的通配符SSL证书和多域名SSL证书都可以同时保护多个域名站点。其中&#xff0c;多域名SSL证书可以同时保护…

POS 之 验证者如何才能提议区块

验证者提议区块 验证者帐户提议区块。 验证者帐户由节点运营商(可以是AWS等待云服务商)管理&#xff0c;节点运营商运行验证者软件作为其执行和共识客户端的一部分&#xff0c;并且已经向存款合约中存入了至少 32 个以太币 然而&#xff0c;每个验证者只是偶尔负责提议一个区块…

jvm题库详解

1、JVM内存模型 注意&#xff1a;这个是基于jdk1.8之前的虚拟机&#xff0c;在jdk1.8后 已经没有方法区&#xff0c;一并合并到堆中的元空间了 JVM内存区域总共分为两种类型 线程私有区域&#xff1a;程序计数器、本地方法栈和虚拟机栈 线程共享区域&#xff1a;堆&#xff08…

android MMKV数据持久化缓存集合

前言 最近在使用mmkv缓存的时候 发现没有集合缓存 非常不方便 自己写一个方法 MMKV public class MmkvUtils {private MmkvUtils() {throw new UnsupportedOperationException("u cant instantiate me...");}public static void init() {MMKV.initialize(LeoUtils…

脚本.py文件转.exe文件遇见的问题,打开exe文件出现弹窗: No module named ‘xxx‘

目录 1 问题2 问题分析3 解决过程3.1 确保Pillow库存在3.2 迷惑阶段3.3 解决问题 4 希望大佬解答 1 问题 今天做了一个使用Python写的脚本文件.py&#xff0c;打算把它转换成.exe文件。点击生成的exe文件时&#xff0c;出现了如下弹窗。 2 问题分析 根据错误描述&#xff1…

国际黄金在哪里买?

国际黄金可以在以下几个主要的市场和渠道进行购买&#xff1a; 1. 黄金交易所&#xff1a;国际上有多个黄金交易所&#xff0c;其中最知名的是伦敦金属交易所&#xff08;London Bullion Market Association&#xff0c;简称LBMA&#xff09;。LBMA是全球最大的黄金交易市场&am…

Arrays --Java学习笔记

Arrays 用来操作数组的一个工具类 Arrays类提供的常见方法&#xff1a; 代码演示&#xff1a; import java.util.Arrays; import java.util.function.IntToDoubleFunction; import java.util.function.IntUnaryOperator;public class Arrays类 {public static void main(Str…

[JAVAEE]—进程和多线程的认识

文章目录 什么是线程什么是进程进程的组成什么是pcb 进程概括线程线程与进程的关系线程的特点 创建线程创建线程方法创建线程的第二种方法对比 其他的方式匿名内部类创建线程匿名内部类创建Runable的子类lambda表达式创建一个线程 多线程的优势 什么是线程 什么是进程 首先想…

OpenCASCADE开发指南<七>:OCC 中的数学基本类型和数学算法

1 标准对象的集合容器 在处理现实问题时&#xff0c;经常将问题抽象成一个数学模型&#xff0c;接着对模型求解&#xff0c; 然后将解提取出来以解决现实问题。 其实在 CAD 软件中&#xff0c; 主要解决的就是数学模型。因此&#xff0c;本节将描述 OCC 的数学基本类型和数学算…

JavaWeb06-MVC和三层架构

目录 一、MVC模式 1.概述 2.好处 二、三层架构 1.概述 三、MVC与三层架构 四、练习 一、MVC模式 1.概述 MVC是一种分层开发的模式&#xff0c;其中 M&#xff1a;Model&#xff0c;业务模型&#xff0c;处理业务 V&#xff1a; View&#xff0c;视图&#xff0c;界面展…