Mybatis 是一个持久层ORM框架,负责Java与数据库数据交互,也可以简易理解为中介,相对于它,还有个中介是hibernate,不过在mybatis中sql语句的灵活性,可优化性比较强,这也是现在大多数人选择的原因。
1.2 用Java运行自动生成
在当前目录下打开cmd命令,运行如下
注 : windows系统可直接执行 [ 生成.bat ] 批处理文件
然后把当前目录src下的com文件夹拷贝到项目文件夹下
把mapping文件拷贝到resources文件夹下
目录结构如上
2.集成Mybatis框架
2.1 引入依赖
compile "mysql:mysql-connector-java:5.1.39"
compile 'org.mybatis.spring.boot:mybatis-spring-boot-starter:1.2.0'
2.2 启动类DemoApplication.java增加扫描配置
package com.example;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
@SpringBootApplication
// mapper接口 扫描包配置
@MapperScan(value = "com.example.dao")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
2.3 添加项目首页index.html
在resources的templates文件中新建index.html
index.html
Title
Welcome SpringBoot
然后在 DemoApplication 启动类中添加
//欢迎页面 首页
@RequestMapping("/")
public String index(){
return "index";
}
之前已经在application.yml中配置了资源映射设置,如下
spring:
mvc:
view:
suffix: .html
resources:
static-locations: classpath:/templates
所以现在的项目启动访问 http://localhost:8080/ 是可以直接访问到首页的
3.添加业务层和控制层实现CRUD(增删改查)
增加业务逻辑层包service以及在其下增加impl包用来实现其接口
3.1业务逻辑层接口 AreaService.java
package com.example.service;
import com.example.entity.Area;
/**
* 这里给dao层的代码拷贝过来先使用
* created by cfa 2018-11-08 下午 9:56
**/
public interface AreaService {
int deleteByPrimaryKey(Integer id);
int insert(Area record);
int insertSelective(Area record);
Area selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(Area record);
int updateByPrimaryKey(Area record);
}
3.2业务层实现类 AreaServiceImpl.java
package com.example.service.impl;
import com.example.dao.AreaMapper;
import com.example.entity.Area;
import com.example.service.AreaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.Serializable;
/**
* 这里的@Service注解相当于自动注册到Spring的Bean
* 相当于原来的Application.xml里的
* created by cfa 2018-11-08 下午 9:58
**/
@Service
public class AreaServiceImpl implements AreaService, Serializable {
private final AreaMapper areaMapper;
@Autowired
public AreaServiceImpl(AreaMapper areaMapper) {
this.areaMapper = areaMapper;
}
@Override
public int deleteByPrimaryKey(Integer id) {
return areaMapper.deleteByPrimaryKey(id);
}
@Override
public int insert(Area record) {
return areaMapper.insert(record);
}
@Override
public int insertSelective(Area record) {
return areaMapper.insertSelective(record);
}
@Override
public Area selectByPrimaryKey(Integer id) {
return areaMapper.selectByPrimaryKey(id);
}
@Override
public int updateByPrimaryKeySelective(Area record) {
return areaMapper.updateByPrimaryKeySelective(record);
}
@Override
public int updateByPrimaryKey(Area record) {
return areaMapper.updateByPrimaryKey(record);
}
}
3.3控制层的AreaController.java
package com.example.controller;
import com.example.entity.Area;
import com.example.service.AreaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("area")
public class AreaController {
private final AreaService areaService;
@Autowired
public AreaController(AreaService areaService) {
this.areaService = areaService;
}
@RequestMapping("query")
public Area areaList(){
return areaService.selectByPrimaryKey(1);
}
}
看到这里,想必看到很多次@Autowired,@Service等注解了,这就是Spring的两大核心之一的IOC(Inversion of Control),也就是DI依赖注入;
Spring的两大核心AOP和IOC大家面试的时候也基本都有问到,到这里你IOC就不用头疼了;
在Spring之前我们写代码,用到某个类,我们都需要去new一下,现在有个叫Spring,我把控制权交给它,OK,然后在给业务层盖上章(加注解),然后让这个叫Spring的家伙开始工作的时候,交给他去做,控制层需要逻辑A,OK,之前我们已经在控制层用DI注入了A,Spring就会把A的调用给控制层,下面说松紧耦合度,Spring之前,到处写的都是new新建对象,修改一个类很难,现在随意修改,只需要盖个章(DI),让Spring去管就可以了,你现在要问我原理,那些文邹邹的,后续在研究研究,原理相当于文言文,只有研究透了,才能用大家都理解的话写出来。
业务层提供的接口加实现类就是为了实现松耦合,不然一个类就解决了,就像一个手机,坏了,里面的电池,屏幕,主板什么的拆下来还能用,这就是松耦合。
4.热部署插件
问题1:开发人员每次修改了一个java文件就需要重启tomcat,开发效率很低是不?
答:Jrebel热部署插件解决你的问题:
https://mp.weixin.qq.com/s/4Gu5xWWnqtXAoXYDLVmXMA
问题2:你为什么不选择springboot自带的热部署插件
答: 和之前的朋友问我的一样,问我为啥不把生成代码的插件放在项目中,一个项目还好,你要是写了多个项目,一个一个去部署,麻烦不,所以一次配置,一劳永逸。
5.关于AOP——Spring的又一大核心
面向切面编程(AOP是Aspect Oriented Program的首字母缩写)我们知道,面向对象的特点是继承、多态和封装.而封装就要求将功能分散到不同的对象中去,这在软件设计中往往称为职责分配.实际上也就是说,让不同的类设计不同的方法。这样代码就分散到一个个的类中去了。
这样做的好处是降低了代码的复杂程度,使类可重用.但是人们也发现,在分散代码的同时,也增加了代码的重复性.什么意思呢?比如说,我们在两个类中,可能都需要在每个方法中做日志。按面向对象的设计方法,我们就必须在两个类的方法中都加入日志的内容。也许他们是完全相同的,但就是因为面向对象的设计让类与类之间无法联系,而不能将这些重复的代码统一起来。
也许有人会说,那好办啊,我们可以将这段代码写在一个独立的类独立的方法里,然后再在这两个类中调用。但是,这样一来,这两个类跟我们上面提到的独立的类就有耦合了,它的改变会影响这两个类。那么,有没有什么办法,能让我们在需要的时候,随意地加入代码呢?这种在运行时,动态地将代码切入到类的指定方法、 指定位置上的编程思想就是面向切面的编程。
一般而言,我们管切入到指定类指定方法的代码片段称为切面,而切入到哪些类、哪些方法则叫切入点。有了AOP,我们就可以把几个类共有的代码,抽取到一个切片中,等到需要时再切入对象中去,从而改变其原有的行为。
这样看来,AOP其实只是OOP的补充而已。OOP从横向上区分出一个个的类来,而AOP则从纵向上向对象中加入特定的代码。有了AOP,OOP变得立体了。如果加上时间维度,AOP使OOP由原来的二维变为三维了,由平面变成立体了。从技术上来说,AOP基本上是通过代理机制实现的。
AOP在编程历史上可以说是里程碑式的,对OOP编程是一种十分有益的补充
5.小叙
本文代码已上传:
Github:https://github.com/cuifuan/springboot-demo
如果你是来学框架怎么写CRUD的,我错了,没让你看到具体的,我在写的是在写代码的时候,对插件工具的使用,和了解这些东西的作用,提高开发效率,并且知道自己用的是什么以及基本原理,而不是仅仅是一个“码农”,谢谢阅览。
加Java架构师群获取Java工程化、高性能及分布式、高性能、深入浅出。高架构。性能调优、Spring,MyBatis,Netty源码分析和大数据等多个知识点高级进阶干货的直播免费学习权限 都是大牛带飞 让你少走很多的弯路的 群..号是:855801563 对了 小白勿进 最好是有开发经验
注:加群要求
1、具有工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加。
2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加。
3、如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的,可以加。
4、觉得自己很牛B,一般需求都能搞定。但是所学的知识点没有系统化,很难在技术领域继续突破的可以加。
5.阿里Java高级大牛直播讲解知识点,分享知识,多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知!
你可能感兴趣的:(Spring全家桶系列--SpringBoot与Mybatis结合)
Python学习总结
学学睡觉
python 学习 开发语言
客户端与服务端聊天窗口服务端导入wxPython用于创建图形界面。socket用于网络通信,AF_INET是IPv4地址族,SOCK_STREAM表示流式套接字(TCP)。利用wxPython创建图形界面,并通过socket与服务器通信。主要功能:连接服务器。发送和接收消息。断开连接。界面上有文本框和按钮来操作。wxPython处理UI部分,socket处理网络通信。importthreading
上位机知识篇---Linux中RPM包管理工具&PATH环境变量
Ronin-Lotus
上位机知识篇 linux 运维 服务器 RPM包管理工具 PATH环境变量
文章目录前言一、RPM(RedHatPackageManager)1.RPM的核心功能(1)安装软件包(2)查询软件信息(3)卸载软件(4)验证软件包2.RPM常用命令与示例(1)安装软件包(2)查询软件包(3)卸载软件包(4)验证软件包3.RPM的优缺点(1)优点(2)缺点注意二、PATH环境变量1.PATH的作用(1)简化命令输入(2)自定义路径优先级2.查看与操作PATH变量(1)查看当前P
【模块】GNConv卷积模块
dearr__
扒网络模块 深度学习 python pytorch
论文《GCNet:Non-localNetworksMeetSqueeze-ExcitationNetworksandBeyond》1、作用GCNet(GlobalContextNetwork)结合了非局部网络(Non-LocalNetwork,NLNet)的长距离依赖捕捉能力和Squeeze-ExcitationNetwork(SENet)的轻量级特性,有效地建模全局上下文信息。通过简化非局部块
自动化测试的价值重构:软件质量保障的效率革命与理性抉择
北陌宝宝
行业研究发展 # 检验检测行业 重构 人工智能 python windows
引言:测试范式的数字化跃迁在DevOps与敏捷开发主导的软件工程时代,软件测试正经历从"质量验证"到"效率赋能"的深刻变革。根据Gartner最新报告,全球自动化测试市场规模预计2025年将突破300亿美元,年复合增长率达21.3%。这场技术革命背后,是企业对测试效率与质量的双重诉求——自动化测试究竟是降本增效的利器,还是投入不菲的鸡肋?本文将从技术价值、经济成本、场景适配三个维度深度剖析,为软件
RabbitMQ系列(二)基本概念之Publisher
yyueshen
RabbitMQ # RabbitMQ概念 rabbitmq 分布式
在RabbitMQ中,Publisher(发布者)是负责向RabbitMQ服务器发送消息的客户端角色,通常被称为“生产者”。以下是其核心功能与工作机制的详细解析:一、核心定义与作用消息发送者Publisher将消息发送到RabbitMQ的Exchange(交换机),而非直接发送到队列。Exchange根据消息的RoutingKey(路由键)和绑定规则将消息路由到对应的队列(Queue)。解耦生产与
【华为OD机试真题E卷】 27、计算最大乘积 | 机试真题+思路参考+代码解析(C++、Java、Py)
KFickle
Java Py) 华为od c++ java 华为OD机试真题 计算最大乘积
文章目录一、题目题目描述输入输出样例1二、代码与思路参考C++代码Java代码Python代码订阅本专栏后即可解锁在线OJ刷题权限个人博客首页:KFickle专栏介绍:最新的华为OD机试真题D、E卷,每题都使用C++,Java,Python语言进行解答,每个题目的思路分析都非常详细,持续更新,支持在线OJ刷题,订阅后评论获取权限,有代码问题随时解答,代码仅供学习参考一、题目题目描述给定一个元素类型
三分钟掌握 TCP/IP:揭示互联网飞速互联的奥秘!
跑起来总会有风
tcp/ip 网络
TCP/IP模型详解本文基于经典的TCP/IP模型原理,结合常见实践进行深入解读,适用于对计算机网络或互联网协议栈感兴趣的读者。希望能帮助大家更好地理解现代网络通信的核心框架。一、什么是TCP/IP?TCP/IP是互联网的基础协议栈,英文全称为TransmissionControlProtocol/InternetProtocol。它由美国国防部(DoD)在20世纪60年代发展起来,并在ARPAN
使用宝塔大家Java项目遇到的问题
LOVE_DDZ
JAVA Spring-Boot java spring boot 开发语言
记录一下使用宝塔大家Java项目遇到的问题:1.没有那个文件或目录/var/tmp/springboot/vhost/scripts/system-service.sh:没有那个文件或目录Feb2811:13:01hadoop05spring_system-service:/bin/bash:/var/tmp/springboot/vhost/scripts/system-service.sh:没
列表推导式与生成器表达式(深度实战版)
Bruce_xiaowei
笔记 编程 总结经验 python 数据结构
列表推导式与生成器表达式(深度实战版)一、列表推导式:不只是语法糖1.底层原理剖析#编译后的字节码对比deftraditional_loop():result=[]foriinrange(5):result.append(i*2)returnresultdeflist_comprehension():return[i*2foriinrange(5)]#使用dis模块查看字节码差异importdis
mysql数据推荐算法_Mahout推荐算法基础
爱看书的小兔纸
mysql数据推荐算法
转载自(http://www.geek521.com/?p=1423)Mahout推荐算法分为以下几大类GenericUserBasedRecommender算法:1.基于用户的相似度2.相近的用户定义与数量特点:1.易于理解2.用户数较少时计算速度快GenericItemBasedRecommender算法:1.基于item的相似度特点:1.item较少时就算速度更快2.当item的外部概念易于
软件无线电硬件平台USRP简介
byte轻骑兵
嵌入式智慧开发探索 # 软件定义无线电新视界 fpga开发 USRP 软件无线电 GNU Radio
目录一、平台概述1.1.设计理念1.2.应用场景1.3.常见型号1.3.1.N系列1.3.2.E系列1.3.3.B系列二、硬件组成2.1.母板2.2.子板2.3.天线三、主要特点3.1.灵活性3.2.高性能3.3.可扩展性3.4.开源支持3.5.广泛的软件支持四、软件支持4.1.GNURadio4.1.1.主要特点4.1.2.应用领域4.2.UHD(USRPHardwareDriver)4.2.1
大模型WebUI:Gradio全解12——LangChain原理、架构和组件(2)
龙焰智能
langchain openai deepseek intergrations api reference 操作指南 教程
大模型WebUI:Gradio全解12——LangChain原理、架构和组件(2)前言12.LangChain原理及agents构建GradioUI12.2学习资料12.2.1学习文档12.2.2用途示例12.2.3OpenAI和DeepSeek例程1.OpenAI示例2.DeepSeek例程参考文献前言本系列文章主要介绍WEB界面工具Gradio。Gradio是HuggingFace发布的简易W
【HTML】HTML入门:构建网页的基础
雷神 Leo
经验分享类 # 前端 后端 html 前端 javascript
前言HTML(HyperTextMarkupLanguage)是构建网页和应用的基础。它提供了一种结构化的方式来组织内容,使得网页设计师可以创建出丰富且具有交互性的网页。本指南将带你从零开始学习HTML,包括它的基本概念、常用标签、属性以及如何构建一个简单的网页。第一部分:HTML基础1.1什么是HTML?HTML是一种标记语言,它通过一系列的标签(tags)来描述网页的结构。这些标签可以定义文本
八股文系列Java锁
大大大大肉包
八股系列 java学习 java 开发语言
Java中常见的锁有哪些?乐观锁:在操作数据的时候,线程读取数据的时候不会进行加锁,先去查询原值,操作的时候比较原来的值,看一下是都被其他线程修改,如果没有修改则写回,否则就重新执行读取流程悲观锁:(底层是synchronized和ReentrantLock)就是考虑事情比较悲观,认为在访问共享资源的时候发生冲突的概率比较高,所以每次访问前线程都需要加锁公平锁:公平锁是指多个线程按照申请锁的顺序来
【图师傅】百种功能,操作流畅,无广告
星河1120
android
【应用名称】:图师傅【应用版本】:1.0.5【应用大小】:41.57M【测试机型】:红米【修改作者】:by东明【版本介绍】:在“图师傅”中,你将发现一系列精心设计的AI技术。这些功能不仅包括图片像素的高清放大、画质增强、色彩修复和AI去水印等常见需求,而且还在首页进行了直观展示,确保用户能迅速找到并运用这些强大工具。然而,“图师傅”的功能远不止于此,它所提供的“切图”、“拼图”、“动图制作”、“文
C# IEquatable<T> 使用详解
鲤籽鲲
C# c# 数据库 C# 知识捡漏
总目录前言在C#开发中,IEquatable是一个泛型接口,用于定义类型的相等性比较逻辑。通过实现IEquatable,可以为自定义类型提供高效的、类型安全的相等性比较方法。本文将详细介绍IEquatable的使用方法、应用场景及其优势。一、IEquatable是什么?1.基本概念IEquatable是一个泛型接口,定义了一个方法Equals(Tother),用于判断当前对象是否与指定的对象相等。
Vue3 Composition API与十大组件开发案例详解
北辰alk
vue vue.js
文章目录一、Vue3核心API解析1.1CompositionAPI优势1.2核心API二、十大组件开发案例案例1:响应式表单组件案例2:动态模态框(Teleport应用)案例3:可复用列表组件案例4:全局状态通知组件案例5:图片懒加载组件案例6:异步数据加载组件案例7:可拖拽排序列表案例8:路由守卫高阶组件案例9:主题切换Provider案例10:可视化表单生成器三、组件开发最佳实践四、总结一、
适合iis发布执行API定时任务的库和框架有哪些
默萧笙故
API .NET C# c# .net 开发语言
在IIS上发布和执行API定时任务时,您可以考虑以下几种库和框架,这些工具能够提供稳定的任务调度功能并适于与ASP.NET或ASP.NETCore应用程序兼容:1.Hangfire概述:Hangfire是一个非常流行的库,允许在ASP.NET应用程序中创建和管理后台任务。它支持持久化和异步执行。安装:可以通过NuGet包管理器安装。功能:提供任务重试和失败日志的支持。通过可视化仪表板监控任务状态。
大模型在脑梗死预测及治疗方案制定中的应用研究报告
LCG元
围术期危险因子 预测模型研究 人工智能
目录一、引言1.1研究背景与意义1.2研究目的与方法1.3国内外研究现状二、脑梗死概述2.1脑梗死的定义与分类2.2脑梗死的发病机制与病理生理过程2.3脑梗死的临床表现与诊断方法三、大模型技术原理与应用现状3.1大模型的基本概念与技术架构3.2大模型在医疗领域的应用案例与优势3.3适用于脑梗死预测的大模型类型与特点四、大模型在脑梗死术前风险预测中的应用4.1术前风险因素分析4.2大模型预测方法与模
解决 OBS 摄像头源预览与录制冲突问题
吃面不喝汤66
OBS二次开发 音视频
在使用OBS进行摄像头源的预览与录制时,许多开发者会遇到一个常见问题:当开始录制时,预览窗口中的摄像头画面会停止显示。本文将深入分析该问题的原因,并提供合理的解决方案。1.问题背景假设有以下两个场景:预览模式:创建一个CameraModePreviewSource源,并添加到预览窗口中的场景MyPreviewScene。录制模式:创建一个CameraCapture源,并添加到MainScene,然
SpringBoot项目报错解决:“Error starting ApplicationContext. To display the conditions report re-run ...”
m0_74823239
面试 学习路线 阿里巴巴 spring boot 数据库 sql
启动项目文件时老启动不了一直报下面的我尝试了以下网上找到的方法好几种1.我先看了配置错误:可能是application.properties或application.yml文件中的配置项有误的原因吧(我发现并没有什么错误)2.依赖冲突:项目依赖的库之间难道存在版本依赖冲突吗没有pass3.Bean初始化异常:某个Bean的初始化过程中抛出了异常,我这还报一个错误将xxxBeantoString(一
SQL 实战—递归 SQL:层级结构查询与处理树形数据
m0_74823239
面试 学习路线 阿里巴巴 sql java 数据库
在数据库中,树形或层级结构的数据非常常见,如组织架构、分类目录、评论回复等。SQL提供了递归查询的能力,通过递归通用表表达式(CTE),可以高效地查询和处理树形数据。本文将通过实际案例详细讲解递归SQL的应用。一、递归SQL基本概念1.什么是递归SQL?递归SQL是指在SQL查询中,自我引用以遍历层级结构或处理递归关系的一种方式。MySQL8.0、PostgreSQL和SQLServer等数据库均
【Docker】Docker中的动态容器管理:利用Golang实现Docker容器动态重命名的高级策略与最佳实践
m0_74823239
面试 学习路线 阿里巴巴 docker golang 容器
【Docker】Docker中的动态容器管理:利用Golang实现Docker容器动态重命名的高级策略与最佳实践大家好我是寸铁??总结了一篇【Docker】Docker中的动态容器管理:利用Golang实现Docker容器动态重命名的高级策略与最佳实践喜欢的小伙伴可以点点关注??前言今天遇到一个新的需求,要动态改变运行中的容器名字。可以考虑先把容器删除再重新创建容器那这里要考虑一个问题:假设我容器
Spring Boot项目打包与部署指南
I~Lucky
spring boot 后端 java
在实际中开发,SpringBoot项目的部署是一个重要的环节。SpringBoot项目通常被打包为一个独立的JAR文件,包含所有依赖和资源,这使得部署过程变得非常简单。以下是详细的打包与部署步骤:####一、SpringBoot项目打包1.**添加打包插件**SpringBoot项目默认使用`spring-boot-maven-plugin`插件进行打包。确保在`pom.xml`中添加了以下配置:
SpringBoot学习路线总结(附思维导图)
m0_67402026
面试 学习路线 阿里巴巴 spring boot java 学习 python 开发语言
??作者简介:CSDN2021博客之星亚军??、新星计划导师、博客专家????哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师??关注公众号【哪吒编程】,回复1024,获取Java学习路线思维导图、大厂面试真题、加入万粉计划交流群、一起学习进步目录立志存高远,笃行践初心?一、SpringBoot学习路线思维导图?二、什么是SpringBoot三、使用SpringBoot有什么好处四
[Github推荐]CVPR2019录用论文下载及可视化论文网站
spearhead_cai
计算机视觉 深度学习 科研 论文 CVPR Github 计算机视觉 深度学习
简介CVPR是IEEEConferenceonComputerVisionandPatternRecognition的缩写,即IEEE国际计算机视觉与模式识别会议。该会议是由IEEE举办的计算机视觉和模式识别领域的顶级会议。它是IEEE一年一度的学术性会议,会议的主要内容是计算机视觉与模式识别技术。CVPR是世界顶级的计算机视觉会议(三大顶会之一,另外两个是ICCV和ECCV),本会议每年都会有固
ROS2软件调用架构和机制解析:Publisher创建
slam02∞
ros2 dds
术语DDS(DataDistributionService):用于实时系统的数据分发服务标准,是ROS2底层通信的基础RMW(ROSMiddleware):ROS中间件接口,提供与具体DDS实现无关的抽象APIQoS(QualityofService):服务质量策略,控制通信的可靠性、历史记录、耐久性等属性符号解析:动态库加载过程中,查找和绑定函数指针的机制1.架构概述ROS2采用分层设计,通过多
JVM内存模型详解:各个区域的作用与原理
isolusion
jvm
引言Java虚拟机(JVM)是Java程序运行的核心环境,它负责管理程序的内存、执行字节码以及提供跨平台的支持。理解JVM的内存模型对于编写高效、稳定的Java程序至关重要。本文将详细介绍JVM的内存模型,并深入探讨各个内存区域的作用和原理。JVM内存模型概述JVM内存模型主要分为以下几个区域:方法区(MethodArea)堆(Heap)栈(Stack)本地方法栈(NativeMethodStac
【C++】——精细化哈希表架构:理论与实践的综合分析
vip1024p
面试 学习路线 阿里巴巴 c++ 散列表 架构
先找出你的能力在哪里,然后再决定你是谁。——塔拉·韦斯特弗《你当像鸟飞往你的山》目录1.C++与哈希表:核心概念与引入2.哈希表的底层机制:原理与挑战2.1核心功能解析:效率与灵活性的平衡2.2哈希冲突的本质:问题与应对策略2.3开散列与闭散列:两大解决方案的比较3.闭散列的精确实现:从设计到优化3.1整体框架设计:面向扩展的架构3.2仿函数的灵活性:高效哈希的关键3.3插入操作:冲突检测与位置分
萤石云RTC技术优势详解与开放服务
做萤石二次开发的哈哈
实时音视频 RTC webrtc
春节假期结束,又有一批一批的人踏上了外出工作的奋斗之路,空间上的阻隔,降低了部分留在家乡的“老小组合”与打拼者之间的交流。萤石S10带屏摄像机的出现,解决了数码产品操作与网络要求更为复杂的问题,为消费者大大降低使用门槛,进一步促进亲情沟通的便利。萤石S10双向视频通话摄像机操作便捷,支持4G无线流量,同时支持微信接听视频呼叫的功能,其采用ERTC(萤石实时音视频)技术,弱网下也能流畅通话。更多优化
Maven
Array_06
eclipse jdk maven
Maven
Maven是基于项目对象模型(POM), 信息来管理项目的构建,报告和文档的软件项目管理工具。
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司
ibatis的queyrForList和queryForMap区别
bijian1013
java ibatis
一.说明
iBatis的返回值参数类型也有种:resultMap与resultClass,这两种类型的选择可以用两句话说明之:
1.当结果集列名和类的属性名完全相对应的时候,则可直接用resultClass直接指定查询结果类
LeetCode[位运算] - #191 计算汉明权重
Cwind
java 位运算 LeetCode Algorithm 题解
原题链接:#191 Number of 1 Bits
要求:
写一个函数,以一个无符号整数为参数,返回其汉明权重。例如,‘11’的二进制表示为'00000000000000000000000000001011', 故函数应当返回3。
汉明权重:指一个字符串中非零字符的个数;对于二进制串,即其中‘1’的个数。
难度:简单
分析:
将十进制参数转换为二进制,然后计算其中1的个数即可。
“
浅谈java类与对象
15700786134
java
java是一门面向对象的编程语言,类与对象是其最基本的概念。所谓对象,就是一个个具体的物体,一个人,一台电脑,都是对象。而类,就是对象的一种抽象,是多个对象具有的共性的一种集合,其中包含了属性与方法,就是属于该类的对象所具有的共性。当一个类创建了对象,这个对象就拥有了该类全部的属性,方法。相比于结构化的编程思路,面向对象更适用于人的思维
linux下双网卡同一个IP
被触发
linux
转自:
http://q2482696735.blog.163.com/blog/static/250606077201569029441/
由于需要一台机器有两个网卡,开始时设置在同一个网段的IP,发现数据总是从一个网卡发出,而另一个网卡上没有数据流动。网上找了下,发现相同的问题不少:
一、
关于双网卡设置同一网段IP然后连接交换机的时候出现的奇怪现象。当时没有怎么思考、以为是生成树
安卓按主页键隐藏程序之后无法再次打开
肆无忌惮_
安卓
遇到一个奇怪的问题,当SplashActivity跳转到MainActivity之后,按主页键,再去打开程序,程序没法再打开(闪一下),结束任务再开也是这样,只能卸载了再重装。而且每次在Log里都打印了这句话"进入主程序"。后来发现是必须跳转之后再finish掉SplashActivity
本来代码:
// 销毁这个Activity
fin
通过cookie保存并读取用户登录信息实例
知了ing
JavaScript html
通过cookie的getCookies()方法可获取所有cookie对象的集合;通过getName()方法可以获取指定的名称的cookie;通过getValue()方法获取到cookie对象的值。另外,将一个cookie对象发送到客户端,使用response对象的addCookie()方法。
下面通过cookie保存并读取用户登录信息的例子加深一下理解。
(1)创建index.jsp文件。在改
JAVA 对象池
矮蛋蛋
java ObjectPool
原文地址:
http://www.blogjava.net/baoyaer/articles/218460.html
Jakarta对象池
☆为什么使用对象池
恰当地使用对象池化技术,可以有效地减少对象生成和初始化时的消耗,提高系统的运行效率。Jakarta Commons Pool组件提供了一整套用于实现对象池化
ArrayList根据条件+for循环批量删除的方法
alleni123
java
场景如下:
ArrayList<Obj> list
Obj-> createTime, sid.
现在要根据obj的createTime来进行定期清理。(释放内存)
-------------------------
首先想到的方法就是
for(Obj o:list){
if(o.createTime-currentT>xxx){
阿里巴巴“耕地宝”大战各种宝
百合不是茶
平台战略
“耕地保”平台是阿里巴巴和安徽农民共同推出的一个 “首个互联网定制私人农场”,“耕地宝”由阿里巴巴投入一亿 ,主要是用来进行农业方面,将农民手中的散地集中起来 不仅加大农民集体在土地上面的话语权,还增加了土地的流通与 利用率,提高了土地的产量,有利于大规模的产业化的高科技农业的 发展,阿里在农业上的探索将会引起新一轮的产业调整,但是集体化之后农民的个体的话语权 将更少,国家应出台相应的法律法规保护
Spring注入有继承关系的类(1)
bijian1013
java spring
一个类一个类的注入
1.AClass类
package com.bijian.spring.test2;
public class AClass {
String a;
String b;
public String getA() {
return a;
}
public void setA(Strin
30岁转型期你能否成为成功人士
bijian1013
成功
很多人由于年轻时走了弯路,到了30岁一事无成,这样的例子大有人在。但同样也有一些人,整个职业生涯都发展得很优秀,到了30岁已经成为职场的精英阶层。由于做猎头的原因,我们接触很多30岁左右的经理人,发现他们在职业发展道路上往往有很多致命的问题。在30岁之前,他们的职业生涯表现很优秀,但从30岁到40岁这一段,很多人
[Velocity三]基于Servlet+Velocity的web应用
bit1129
velocity
什么是VelocityViewServlet
使用org.apache.velocity.tools.view.VelocityViewServlet可以将Velocity集成到基于Servlet的web应用中,以Servlet+Velocity的方式实现web应用
Servlet + Velocity的一般步骤
1.自定义Servlet,实现VelocityViewServl
【Kafka十二】关于Kafka是一个Commit Log Service
bit1129
service
Kafka is a distributed, partitioned, replicated commit log service.这里的commit log如何理解?
A message is considered "committed" when all in sync replicas for that partition have applied i
NGINX + LUA实现复杂的控制
ronin47
lua nginx 控制
安装lua_nginx_module 模块
lua_nginx_module 可以一步步的安装,也可以直接用淘宝的OpenResty
Centos和debian的安装就简单了。。
这里说下freebsd的安装:
fetch http://www.lua.org/ftp/lua-5.1.4.tar.gz
tar zxvf lua-5.1.4.tar.gz
cd lua-5.1.4
ma
java-14.输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字
bylijinnan
java
public class TwoElementEqualSum {
/**
* 第 14 题:
题目:输入一个已经按升序排序过的数组和一个数字,
在数组中查找两个数,使得它们的和正好是输入的那个数字。
要求时间复杂度是 O(n) 。如果有多对数字的和等于输入的数字,输出任意一对即可。
例如输入数组 1 、 2 、 4 、 7 、 11 、 15 和数字 15 。由于
Netty源码学习-HttpChunkAggregator-HttpRequestEncoder-HttpResponseDecoder
bylijinnan
java netty
今天看Netty如何实现一个Http Server
org.jboss.netty.example.http.file.HttpStaticFileServerPipelineFactory:
pipeline.addLast("decoder", new HttpRequestDecoder());
pipeline.addLast(&quo
java敏感词过虑-基于多叉树原理
cngolon
违禁词过虑 替换违禁词 敏感词过虑 多叉树
基于多叉树的敏感词、关键词过滤的工具包,用于java中的敏感词过滤
1、工具包自带敏感词词库,第一次调用时读入词库,故第一次调用时间可能较长,在类加载后普通pc机上html过滤5000字在80毫秒左右,纯文本35毫秒左右。
2、如需自定义词库,将jar包考入WEB-INF工程的lib目录,在WEB-INF/classes目录下建一个
utf-8的words.dict文本文件,
多线程知识
cuishikuan
多线程
T1,T2,T3三个线程工作顺序,按照T1,T2,T3依次进行
public class T1 implements Runnable{
@Override
spring整合activemq
dalan_123
java spring jms
整合spring和activemq需要搞清楚如下的东东1、ConnectionFactory分: a、spring管理连接到activemq服务器的管理ConnectionFactory也即是所谓产生到jms服务器的链接 b、真正产生到JMS服务器链接的ConnectionFactory还得
MySQL时间字段究竟使用INT还是DateTime?
dcj3sjt126com
mysql
环境:Windows XPPHP Version 5.2.9MySQL Server 5.1
第一步、创建一个表date_test(非定长、int时间)
CREATE TABLE `test`.`date_test` (`id` INT NOT NULL AUTO_INCREMENT ,`start_time` INT NOT NULL ,`some_content`
Parcel: unable to marshal value
dcj3sjt126com
marshal
在两个activity直接传递List<xxInfo>时,出现Parcel: unable to marshal value异常。 在MainActivity页面(MainActivity页面向NextActivity页面传递一个List<xxInfo>): Intent intent = new Intent(this, Next
linux进程的查看上(ps)
eksliang
linux ps linux ps -l linux ps aux
ps:将某个时间点的进程运行情况选取下来
转载请出自出处:http://eksliang.iteye.com/admin/blogs/2119469
http://eksliang.iteye.com
ps 这个命令的man page 不是很好查阅,因为很多不同的Unix都使用这儿ps来查阅进程的状态,为了要符合不同版本的需求,所以这个
为什么第三方应用能早于System的app启动
gqdy365
System
Android应用的启动顺序网上有一大堆资料可以查阅了,这里就不细述了,这里不阐述ROM启动还有bootloader,软件启动的大致流程应该是启动kernel -> 运行servicemanager 把一些native的服务用命令启动起来(包括wifi, power, rild, surfaceflinger, mediaserver等等)-> 启动Dalivk中的第一个进程Zygot
App Framework发送JSONP请求(3)
hw1287789687
jsonp 跨域请求 发送jsonp ajax请求 越狱请求
App Framework 中如何发送JSONP请求呢?
使用jsonp,详情请参考:http://json-p.org/
如何发送Ajax请求呢?
(1)登录
/***
* 会员登录
* @param username
* @param password
*/
var user_login=function(username,password){
// aler
发福利,整理了一份关于“资源汇总”的汇总
justjavac
资源
觉得有用的话,可以去github关注:https://github.com/justjavac/awesome-awesomeness-zh_CN 通用
free-programming-books-zh_CN 免费的计算机编程类中文书籍
精彩博客集合 hacke2/hacke2.github.io#2
ResumeSample 程序员简历
用 Java 技术创建 RESTful Web 服务
macroli
java 编程 Web REST
转载:http://www.ibm.com/developerworks/cn/web/wa-jaxrs/
JAX-RS (JSR-311) 【 Java API for RESTful Web Services 】是一种 Java™ API,可使 Java Restful 服务的开发变得迅速而轻松。这个 API 提供了一种基于注释的模型来描述分布式资源。注释被用来提供资源的位
CentOS6.5-x86_64位下oracle11g的安装详细步骤及注意事项
超声波
oracle linux
前言:
这两天项目要上线了,由我负责往服务器部署整个项目,因此首先要往服务器安装oracle,服务器本身是CentOS6.5的64位系统,安装的数据库版本是11g,在整个的安装过程中碰到很多的坑,不过最后还是通过各种途径解决并成功装上了。转别写篇博客来记录完整的安装过程以及在整个过程中的注意事项。希望对以后那些刚刚接触的菜鸟们能起到一定的帮助作用。
安装过程中可能遇到的问题(注
HttpClient 4.3 设置keeplive 和 timeout 的方法
supben
httpclient
ConnectionKeepAliveStrategy kaStrategy = new DefaultConnectionKeepAliveStrategy() {
@Override
public long getKeepAliveDuration(HttpResponse response, HttpContext context) {
long keepAlive
Spring 4.2新特性-@Import注解的升级
wiselyman
spring 4
3.1 @Import
@Import注解在4.2之前只支持导入配置类
在4.2,@Import注解支持导入普通的java类,并将其声明成一个bean
3.2 示例
演示java类
package com.wisely.spring4_2.imp;
public class DemoService {
public void doSomethin