Java后端开发——Mybatis实验
文章目录
- Java后端开发——Mybatis实验
- 一、MyBatis入门程序
- 1.创建工程
- 2.引入相关依赖
- 3.数据库准备
- 4.编写数据库连接信息配置文件
- 5.创建POJO实体
- 6.编写核心配置文件和映射文件
- 二、MyBatis案例:员工管理系统
- 1.在mybatis数据库中创建employee表
- 2.创建持久化类Employee
- 3.编写映射文件
- 4.添加映射文件路径配置。
- 5.编写MyBatisUtils工具类
- 6.编写测试类
- 三、动态SQL测试实验
- 1.创建映射文件CustomerMapper.xml
- 2.在映射文件CustomerMapper.xml中
- 3.添加使用<where>元素执行动态SQL元素
- 4.添加使用<trim>元素执行动态SQL元素
- 5.添加使用<set>元素执行更新操作的动态SQL
- 四、复杂查询操作实验
- 1.添加使用<foreach>元素迭代数组
- 2.添加使用<foreach>元素迭代List集合执行批量查询操作的动态SQL
- 3.添加使用<foreach>元素迭代Map集合执行批量查询操作的动态SQL。
Java后端开发——Mybatis实验
一、MyBatis入门程序
1.创建工程
在Eclipse中,创建名称为mybatis的工程
2.引入相关依赖
3.数据库准备
create database mybatis charset=utf8;
4.编写数据库连接信息配置文件
在项目的src目录下创建数据库连接的配置文件,这里将其命名为db.properties,在该文件中配置数据库连接的参数。
mysql.driver=com.mysql.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&
characterEncoding=utf8&useUnicode=true&useSSL=false
mysql.username=root
mysql.password=root
5.创建POJO实体
在项目的src/main/java目录下创建com.javaweb.pojo包,在com.javaweb.pojo包下创建User类,该类用于封装User对象的属性。
package com.javaweb.pojo;public class Customer {
private Integer id; private String username; // 主键ID、客户名称
private String jobs; private String phone; // 职业、电话
// 省略getter/setter@Override
public String toString() {
return "Customer [id=" + id + ", username=" + username + ", jobs=" + jobs + ", phone=" + phone + "]"; }public Integer getId() {
return id;
}public void setId(Integer id) {
this.id = id;
}public String getUsername() {
return username;
}public void setUsername(String username) {
this.username = username;
}public String getJobs() {
return jobs;
}public void setJobs(String jobs) {
this.jobs = jobs;
}public String getPhone() {
return phone;
}public void setPhone(String phone) {
this.phone = phone;
}
}
6.编写核心配置文件和映射文件
在项目的src目录下创建MyBatis的核心配置文件,该文件主要用于项目的环境配置,如数据库连接相关配置等。核心配置文件可以随意命名,但通常将其命名为mybatis-config.xml。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--configuration 核心根标签-->
<configuration>
<!--引入数据库连接的配置文件-->
<properties resource="db.properties"/>
<!--environments配置数据库环境,环境可以有多个。default属性指定使用的是哪个-->
<environments default="mysql">
<!--environment配置数据库环境 id属性唯一标识-->
<environment id="mysql">
<!-- transactionManager事务管理。 type属性,采用JDBC默认的事务-->
<transactionManager type="JDBC"></transactionManager>
<!-- dataSource数据源信息 type属性 连接池-->
<dataSource type="POOLED">
<!-- property获取数据库连接的配置信息 -->
<property name="driver" value="${mysql.driver}" />
<property name="url" value="${mysql.url}" />
<property name="username" value="${mysql.username}" />
<property name="password" value="${mysql.password}" />
</dataSource>
</environment>
</environments>
<!-- mappers引入映射配置文件 -->
<mappers>
<!-- mapper 引入指定的映射配置文件 resource属性指定映射配置文件的名称 -->
<mapper resource="com/javaweb/dao/CustomerMapper.xml"></mapper>
</mappers>
</configuration>
二、MyBatis案例:员工管理系统
1.在mybatis数据库中创建employee表
并在employee表中插入几条数据
use mybatis;
create table user(id int primary key auto_increment,name varchar(20) not null,age int not null
);
insert into user values(null,'张三',20),(null,'李四',18);
2.创建持久化类Employee
并在类中声明id(编号)、name(姓名)、age(年龄)和position(职位)属性,以及属性对应的getter/setter方法
package com.javaweb.bean;
public class Employee {
private Integer id;
private String name;
private Integer age;
private String position;
// 省略getter/setter方法
@Override
public String toString() {
return "Employee{" + "id=" + id + ", name=" + name +
", age=" + age + ", position=" + position +'}';
}
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 Integer getAge() {
return age;
}public void setAge(Integer age) {
this.age = age;
}public String getPosition() {
return position;
}public void setPosition(String position) {
this.position = position;
}
}
3.编写映射文件
创建映射文件EmployeeMapper.xml,该文件主要用于实现SQL语句和Java对象之间的映射。
<?xml version="1.0" encoding="UTF-8"?>
<mapper namespace="com.javaweb.mapper.EmployeeMapper">
<select id="findById" parameterType="Integer" resultType="com.javaweb.pojo.Employee">
select * from employee where id = #{id}
</select>
<insert id="add" parameterType="com.javaweb.pojo.Employee">
insert into employee(id,name,age,position) values (#{id},#{name},#{age},#{position})
</insert>
</mapper>
4.添加映射文件路径配置。
在mybatis-config.xml映射文件的元素下添加EmployeeMapper.xml映射文件路径的配置。
<mapper
resource="com/javaweb/mapper/EmployeeMapper.xml">
</mapper>
5.编写MyBatisUtils工具类
创建MyBatisUtils工具类,该类用于封装读取配置文件信息的代码。
public class MyBatisUtils {private static SqlSessionFactory sqlSessionFactory = null;static { try {// 使用MyBatis提供的Resources类加载MyBatis的配置文件Reader reader = Resources.getResourceAsReader("mybatis-config.xml");// 构建SqlSessionFactory工厂sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);} catch (Exception e) { e.printStackTrace();}}public static SqlSession getSession() {//获取SqlSession对象的静态方法return sqlSessionFactory.openSession();}
}
6.编写测试类
(1)在项目src/test/java目录下创建Test包,在Test包下创建MyBatisTest测试类,用于程序测试。在MyBatisTest测试类中添加findByIdTest()方法,用于根据id查询员工信息。
(2)在MyBatisTest测试类中添加insertTest()方法,用于插入员工信息。
(3)在MyBatisTest测试类中添加updateTest()方法,用于更新员工信息。
(4)在MyBatisTest测试类中添加deleteTest()方法,用于删除员工信息。
package com.javaweb.test;import java.util.List;import org.apache.ibatis.session.SqlSession;
import org.junit.jupiter.api.Test;import com.javaweb.pojo.Customer;
import com.javaweb.utils.MybatisUtils;class MyBatisTest {@Testpublic void findCustomerByNameAndJobsTest() {SqlSession session = MybatisUtils.getSession();Customer customer = new Customer();customer.setUsername("jack");customer.setJobs("teacher");List<Customer> customers = session.selectList("com.javaweb.dao.CustomerMapper.findCustomerByNameAndJobs",customer);for (Customer customer2 : customers) {System.out.println(customer2);}session.close();}@Testpublic void findCustomerByNameOrJobsTest() {SqlSession session = MybatisUtils.getSession();Customer customer = new Customer();customer.setUsername("tom");customer.setJobs("teacher");List<Customer> customers = session.selectList("com.javaweb.dao.CustomerMapper.findCustomerByNameOrJobs",customer);for (Customer customer2 : customers) {System.out.println(customer2);}session.close();}@Testpublic void findCustomerByNameAndJobs2Test() {SqlSession session = MybatisUtils.getSession();Customer customer = new Customer();customer.setUsername("jack");customer.setJobs("teacher");List<Customer> customers = session.selectList("com.javaweb.dao.CustomerMapper.findCustomerByNameAndJobs2",customer);for (Customer customer2 : customers) {System.out.println(customer2);}session.close();}@Testpublic void findCustomerByNameAndJobs3Test() {SqlSession session = MybatisUtils.getSession();Customer customer = new Customer();customer.setUsername("jack");customer.setJobs("teacher");List<Customer> customers = session.selectList("com.javaweb.dao.CustomerMapper.findCustomerByNameAndJobs3",customer);for (Customer customer2 : customers) {System.out.println(customer2);}session.close();}@Testpublic void updateCustomerBySetTest() { SqlSession sqlSession = MybatisUtils.getSession();Customer customer = new Customer(); customer.setId(3);customer.setPhone("13311111234");int rows = sqlSession.update("com.javaweb.dao"+ ".CustomerMapper.updateCustomerBySet", customer);if(rows > 0) {System.out.println("您成功修改了"+rows+"条数据!");} else { System.out.println("执行修改操作失败!!!");}sqlSession.commit();sqlSession.close();}@Testpublic void findByArrayTest() {SqlSession session = MybatisUtils.getSession(); Integer[] roleIds = {2,3}; // 创建数组,封装查询idList<Customer> customers = session.selectList("com.javaweb.dao.CustomerMapper.findByArray", roleIds); for (Customer customer : customers) {System.out.println(customer);}session.close();}}
三、动态SQL测试实验
1.创建映射文件CustomerMapper.xml
在映射文件中,根据客户姓名和年龄组合条件查询客户信息,使用元素编写该组合条件的动态SQL,测试并显示结果。
<select id="findCustomerByNameOrJobs" parameterType="com.javaweb.pojo.Customer"
resultType="com.javaweb.pojo.Customer">
select * from t_customer where 1=1
<choose>
<!--条件判断 -->
<when test="username !=null and username !=''">
and username like concat('%',#{username}, '%')
</when>
<when test="jobs !=null and jobs !=''">
and jobs= #{jobs}
</when>
<otherwise>
and phone is not null
</otherwise>
</choose>
</select>
2.在映射文件CustomerMapper.xml中
添加使用、、元素执行动态SQL,测试并显示结果。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.javaweb.dao.CustomerMapper">
<!-- <if>元素使用 -->
<select id="findCustomerByNameAndJobs" parameterType="com.javaweb.pojo.Customer"
resultType="com.javaweb.pojo.Customer">
select * from t_customer where 1=1
<if test="username !=null and username !=''">
and username like concat('%',#{username}, '%')
</if>
<if test="jobs !=null and jobs !=''">
and jobs= #{jobs}
</if>
</select>
<!--<choose>(<when>、<otherwise>)元素使用 -->
<select id="findCustomerByNameOrJobs" parameterType="com.javaweb.pojo.Customer"
resultType="com.javaweb.pojo.Customer">
select * from t_customer where 1=1
<choose>
<!--条件判断 -->
<when test="username !=null and username !=''">
and username like concat('%',#{username}, '%')
</when>
<when test="jobs !=null and jobs !=''">
and jobs= #{jobs}
</when>
<otherwise>
and phone is not null
</otherwise>
</choose>
</select>
<update id="updateCustomerBySet" parameterType="com.javaweb.pojo.Customer">update t_customer
<set>
<if test="username !=null and username !=''">
username=#{username},</if>
<if test="jobs !=null and jobs !=''"> jobs=#{jobs},</if>
<if test="phone !=null and phone !=''">phone=#{phone},</if>
</set> where id=#{id}
</update>
</mapper>
3.添加使用元素执行动态SQL元素
在映射文件CustomerMapper.xml中,添加使用元素执行动态SQL元素,测试并显示结果。
<select id="findCustomerByNameAndJobs2" parameterType="com.javaweb.pojo.Customer"resultType="com.javaweb.pojo.Customer">select * from t_customer<where><if test="username !=null and username !=''">and username like concat('%',#{username}, '%')</if><if test="jobs !=null and jobs !=''">and jobs= #{jobs}</if></where></select>
4.添加使用元素执行动态SQL元素
在映射文件CustomerMapper.xml中,添加使用元素执行动态SQL元素,测试并显示结果。
<select id="findCustomerByNameAndJobs3" parameterType="com.javaweb.pojo.Customer"resultType="com.javaweb.pojo.Customer">select * from t_customer<trim prefix="where" prefixOverrides="and" ><if test="username !=null and username !=''">and username like concat('%',#{username}, '%')</if><if test="jobs !=null and jobs !=''">and jobs= #{jobs}</if></trim>
</select>
5.添加使用元素执行更新操作的动态SQL
在映射文件CustomerMapper.xml中,添加使用元素执行更新操作的动态SQL。
<update id="updateCustomerBySet" parameterType="com.itheima.pojo.Customer">update t_customer <set><if test="username !=null and username !=''">username=#{username},</if><if test="jobs !=null and jobs !=''"> jobs=#{jobs},</if><if test="phone !=null and phone !=''">phone=#{phone},</if></set> where id=#{id}
</update>
四、复杂查询操作实验
1.添加使用元素迭代数组
在映射文件CustomerMapper.xml中,添加使用元素迭代数组执行批量查询操作的动态SQL。
<select id="findByList" parameterType="java.util.Arrays"resultType="com.javaweb.pojo.Customer">select * from t_customer where id in<foreach item="id" index="index" collection="list" open="(" separator="," close=")">#{id}</foreach>
</select>
2.添加使用元素迭代List集合执行批量查询操作的动态SQL
在映射文件CustomerMapper.xml中,添加使用元素迭代List集合执行批量查询操作的动态SQL。
<select id="findByList" parameterType="java.util.Arrays"resultType="com.javaweb.pojo.Customer">select * from t_customer where id in<foreach item="id" index="index" collection="list" open="(" separator="," close=")">#{id}</foreach>
</select>
3.添加使用元素迭代Map集合执行批量查询操作的动态SQL。
在映射文件CustomerMapper.xml中,添加使用元素迭代Map集合执行批量查询操作的动态SQL。
<select id="findByMap" parameterType="java.util.Map"resultType="com.javaweb.pojo.Customer">select * from t_customer where jobs=#{jobs} and id in<foreach item="roleMap" index="index" collection="id" open="(" separator="," close=")"> #{roleMap}</foreach>
</select>
相关文章:
Java后端开发——Mybatis实验
文章目录 Java后端开发——Mybatis实验一、MyBatis入门程序1.创建工程2.引入相关依赖3.数据库准备4.编写数据库连接信息配置文件5.创建POJO实体6.编写核心配置文件和映射文件 二、MyBatis案例:员工管理系统1.在mybatis数据库中创建employee表2.创建持久化类Employee…...
【UE Niagara 网格体粒子系列】02-自定义网格
目录 步骤 一、创建自定义网格体 二、创建Niagara系统 步骤 一、创建自定义网格体 1. 打开Blender,按下ShiftA来创建一个平面 将该平面旋转90 导出为fbx 设置导出选定的物体,这里命名为“SM_PlaneFaceCamera.fbx” 按H隐藏刚才创建的平面&#x…...
k8s 检测node节点内存使用率平衡调度脚本 —— 筑梦之路
直接上脚本: #! /bin/bash#对实际使用内存大于85%的机器停止调度,对实际使用内存小于70%的 关闭调度# 获取实际内存小于或等于70%的机器 memory_lt_70kubectl top nodes |awk NR>1{if($50<70) print $1} # 获取实际内存大于或等于85%的机器 memor…...
React Native集成到现有原生应用
本篇文章以MacOS环境开发iOS平台为例,记录一下在原生APP基础上集成React Native React Native中文网 详细介绍了搭建环境和集成RN的步骤。 环境搭建 必须安装的依赖有:Node、Watchman、Xcode 和 CocoaPods。 安装Homebrew Homebrew是一款Mac OS平台下…...
完全卸载grafana
先停掉grafana sudo systemctl stop grafana-server 查看要卸载的包的名字 yum list installed yum remove grafana-enterprise.x86_64 成功 删除grafana的数据目录 sudo rm -rf /etc/grafana/sudo rm -rf /usr/share/grafana/sudo rm -rf /var/lib/grafana/...
Vue2.组件通信
样式冲突 写在组件中的样式默认会全局生效。容易造成多个组件之间的样式冲突问题。 可以给组件加上scoped属性,让样式只作用于当前组件。 原理: 给当前组件模板的所有元素,加上一个自定义属性data-v-hash值,用以区分不同的组件。…...
CAS的超~详细介绍
什么是CAS CAS全称Compare and swap,是一种比较特殊的CPU指令. 字面意思:"比较并交换", 一个CAS涉及到以下操作: 我们假设内存中的原数据为V,旧的预期值A,需要修改的新值B. 1.比较A和V是否相等(比较) 2.如果相等,将B写入V.(交换) 3.返回操作是否成功. 伪代码 下面…...
Scott用户数据表的分析
Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 如果想要知道某个用户所有的数据表: select * from tab; 此时结果中一共返回了四张数据表,分别为部门表(dept) ,员工表(emp&a…...
网络基础学习(3):交换机
1.交换机结构 (1)网线接口和后面的电路部分加在一起称为一个端口,也就是说交换机的一个端口就相当于计算机上的一块网卡。 如果在计算机上安装多个网卡,并让网卡接收所有网络包,再安装具备交换机功能的软件࿰…...
【软件测试学习笔记2】用例设计方法
1.能对穷举场景设计测试点(等价法) 等价类: 说明:在所有测试数据中,具有某种共同特征的数据集合进行划分 分类:有效等价类:满足需求的数据集合 无效等价类:不满足需求的数据集合 步…...
蓝桥杯 第三场 小白入门赛
召唤神坤 有意思🤔(ikun)。虽然是第一题但也要配得上神坤的身份。 思路1 枚举分母,选择一个数据结构来选出分母两侧最大的两个数做分子。2s常数大些也无碍。我选择好写的ST表 思路2 写两个 d p dp dp 分别表示 1 1 1 到 i…...
网络安全等级保护测评规划与设计
笔者单位网络结构日益复杂,应用不断增多,使信息系统面临更多的风险。同时,网络攻防技术发展迅速,攻击的技术门槛随着自动化攻击工具的应用也在不断降低,勒索病毒等未知威胁也开始泛滥。基于此,笔者单位拟进…...
Error: Cannot find module ‘vue-template-compiler‘ 问题解决
启动Vuepress项目时报了如下错误:Error: Cannot find module vue-template-compiler Error: Cannot find module vue-template-compiler Require stack: - /usr/local/lib/node_modules/vuepress/node_modules/vue-loader/lib/compiler.js - /usr/local/lib/node_…...
华为认证云计算专家(HCIE-Cloud Computing)--练习题
华为认证云计算专家(HCIE-Cloud Computing)–练习题 1.(判断题)华为云stack支持鲲鹏架构,业务可从X86过渡到鲲鹏。 正确答案:正确 2.(判断题)业务上云以后,安全方面由云服务商负责,客户自己不需要做任何防…...
【MATLAB】【数字信号处理】产生系统的单位冲激响应h(t)与H(z)零极点分布
一、实验目的与要求 产生h(t) 与H(z) 零极点分布 二、实验仪器 微机,仿真软件MATLAB 2022a 三、实验内容与测试结果 1.已知描述连续系统的微分方程为y(t)5y(t)6y(t)2x(t)8x(t) ,计算系统的单位冲激响应h(t) 程序如下: clear all; ts0;…...
实验五:动态路由配置
实验五:动态路由配置 1.RIP 配置 【实验名称】 RIP 路由协议配置 【实验目的】掌握路由器 RIP 路由协议的基本配置 【实验设备】路由器( 2 台)、计算机( 2 台)、配置电缆( 1 根)、 V…...
苍穹外卖学习----出错记录
1.微信开发者工具遇到的问题: 1.1appid消失报错: {errMsg: login:fail 系统错误,错误码:41002,appid missing [20240112 16:44:02][undefined]} 1.2解决方式: appid可在微信开发者官网 登录账号后在开发栏 找到 复制后按以下步骤粘贴即…...
如何实现图片压缩
文章目录 1、canvas实现图片压缩2、其他 1、canvas实现图片压缩 canvas 实现图片压缩,主要是使用 canvas 的drawImage 方法 具体思路 拿到用户上传的文件转成base64创建一个 Image,主要是获取到这个图片的宽度和高度创建一个 2D 的画布,画布…...
机器学习算法实战案例:时间序列数据最全的预处理方法总结
文章目录 1 缺失值处理1.1 统计缺失值1.2 删除缺失值1.3 指定值填充1.4 均值/中位数/众数填充1.5 前后项填充 2 异常值处理2.1 3σ原则分析2.2 箱型图分析 3 重复值处理3.1 重复值计数3.2 drop_duplicates重复值处理 3 数据归一化/标准化3.1 0-1标准化3.2 Z-score标准化 技术交…...
MongoDB高级集群架构设计
两地三中心集群架构设计 容灾级别 RPO & RTO RPO(Recovery Point Objective):即数据恢复点目标,主要指的是业务系统所能容忍的数据丢失量。RTO(Recovery Time Objective):即恢复时间目标&…...
C++中JSON与string格式互转
1、JSON-》string 操作步骤: 1、在C中新建一个json对象并赋值,然后将其转给char *data。 2、在使用 #include <json.h> 头文件时,通常是使用第三方库 jsoncpp。由于它不是标准库的一部分,所以需要从官网http://jsoncpp.sou…...
2023一带一路暨金砖国家技能发展与技术创新大赛 【企业信息系统安全赛项】国内赛竞赛样题
2023一带一路暨金砖国家技能发展与技术创新大赛 【企业信息系统安全赛项】国内赛竞赛样题 2023一带一路暨金砖国家技能发展与技术创新大赛 【企业信息系统安全赛项】国内赛竞赛样题第一阶段: CTF 夺旗项目1. CTF 夺旗任务一 命令注入任务二 SQL 注入 项目2. 序列化漏…...
【BBuf的CUDA笔记】十二,LayerNorm/RMSNorm的重计算实现
带注释版本的实现被写到了这里:https://github.com/BBuf/how-to-optim-algorithm-in-cuda/tree/master/apex 由于有很多个人理解,读者可配合当前文章谨慎理解。 0x0. 背景 我也是偶然在知乎的一个问题下看到这个问题,大概就是说在使用apex的…...
安装Mac提示安装无法继续,因为安装器已损坏
目录 事件起因报错原因 事件起因 有两台电脑,由于电脑1下载镜像文件很快,于是我先用电脑1下载这个大文件,然后安装openresty,电脑2用http链接下载这个大文件。电脑2安装中途就报安装无法继续,因为安装器已损坏。 报错原因 不知…...
脚本编程游戏引擎会遇到哪些问题
在游戏开发中,脚本编程已经成为了一种非常常见的方式,用来实现游戏逻辑和功能。但是脚本编程游戏引擎也可能会面临一些挑战和问题。下面简单的探讨一下都会遇到哪些问题,并且该如果做。 性能问题 脚本语言通常需要运行时解释执行࿰…...
什么软件可以做报表?
数据报表,是商业领域中不可或缺的一部分,它通过表格、图表等形式,将复杂的数据进行整理、分析并呈现出来,帮助用户更好地理解数据的趋势和关系。数据报表不仅展示了业务现状和趋势,还支持多种数据分析和挖掘功能&#…...
数据结构学习 jz39 数组中出现次数超过一半的数字
关键词:排序 摩尔投票法 摩尔投票法没学过所以没有想到,其他的都自己想。 题目:库存管理 II 方法一: 思路: 排序然后取中间值。因为超过一半所以必定在中间值是我们要的结果。 复杂度计算: 时间复杂度…...
基于Linux的Flappy bird游戏开发
项目介绍 主要是使用C语言实现,开启C项目之旅。 复习巩固C语言、培养做项目的思维。 功能: 按下空格键小鸟上升,不按下落; 显示小鸟需要穿过的管道; 小鸟自动向右飞行;(管道自动左移和创建&a…...
排序算法6---快速排序(非递归)(C)
回顾递归的快速排序,都是先找到key中间值,然后递归左区间,右区间。 那么是否可以实现非递归的快排呢?答案是对的,这里需要借助数据结构的栈。将右区间左区间压栈(后进先出),然后取出…...
【Verilog】期末复习——设计带异步清零且高电平有效的4位循环移位寄存器
系列文章 数值(整数,实数,字符串)与数据类型(wire、reg、mem、parameter) 运算符 数据流建模 行为级建模 结构化建模 组合电路的设计和时序电路的设计 有限状态机的定义和分类 期末复习——数字逻辑电路分…...
官方网站后台图片下载怎么做/淘宝推广平台
spring boot 博客 纯洁的微笑liaokailin的专栏程序猿DD周立 Spring Cloud方志朋 Spring Cloud 专栏许进 跟我学Spring Cloud官网 projects.spring.io/spring-clou…代码例子 github.com/ityouknow/s…github.com/dyc87112/SpringCloud-Learning.git 社区 springcloud.cn/spring…...
深圳去聋哑做义工申请网站/营销策略是什么
shell中的循环语法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 一.for循环1.语法格式11 for 变量 in 值1 值2 值3 ... 2 do 3 源代码 4 done 2.语法格式21 for (( 初始值;循环控制条件…...
wordpress css?ver=1.0.0'/军事新闻头条
定义:定义一个用于创建对象的接口,让子类来决定实例化哪个类。 对于工厂方法模式的组成: 1)抽象工厂角色: 这是工厂方法模式的核心,它与应用程序无关。是具体工厂角色必须实现的接口或者必须继承的父类。 2)具体…...
南京维露斯网站建设/seo关键词排名技术
下面介绍标准批输入对象的步骤: 1、创建批输入对象 2、维护对象属性 开始录屏并修改需要的栏位。 3、定义资源结构 4、定义字段 5、定义关系结构 其实就是将上面创建的结构和SAP标准结构匹配,RELATIONSHIP来创建表间关系。 6、字段mapping ࿰…...
无锡市滨湖区建设局网站/班级优化大师官方网站
题目描述 给你一个整数数组 nums ,其中 nums[i] 表示第 i 个袋子里球的数目。同时给你一个整数 maxOperations 。 你可以进行如下操作至多 maxOperations 次: 选择任意一个袋子,并将袋子里的球分到 2 个新的袋子中,每个袋子里都有…...
网站建设哪家/在哪里找专业推广团队
欢迎关注”生信修炼手册”!框架是为了解决特定的业务场景而开发的一套高质量代码,通过框架避免了重复造轮子的低效模式,可以更加专注于具体业务相关的代码。在python中,scrapy就是一个主流的爬虫框架,可以通过如下方式进行安装pip…...