首页 > 编程语言 >[CSDN话题挑战赛第2期]:[一起学Java]

[CSDN话题挑战赛第2期]:[一起学Java]

时间:2022-10-11 18:36:21浏览次数:46  
标签:shop cityRes Java mchBrandShop CSDN user new Oracle 挑战赛


伙伴们,Java一直以来都是一门非常热门的编程语言,本话题以分享学习Java知识为例,带领大家从0到1学习Java。
你可以从以下几个方面着手(不强制),或者根据自己对话题主题的理解创作,参考如下:

一、批量添加品牌信息到数据表

一、业务实现类实现

@Override
public void batch(List<MchBrandShopEntityReq> reqList, MchUser user) {
if (CollectionUtil.isEmpty(reqList)) {
throw new SaasNetworkException(SaasExceptionCode.REQUEST_PARAM_IS_NULL);
}
Date now = DateUtils.getNow();
List<MchBrandShop> shopList = new ArrayList<>();
reqList.forEach(sopEntityReq -> {
MchBrandShop mchBrandShop = new MchBrandShop();
BeanUtils.copyProperties(sopEntityReq, mchBrandShop);
CityRes cityRes = getCityRes(sopEntityReq.getLng(), sopEntityReq.getLat());
if (null != cityRes) {
mchBrandShop.setProvince(cityRes.getProvinceName());
mchBrandShop.setProvinceCode(cityRes.getProvinceCode());
mchBrandShop.setCity(cityRes.getCityName());
mchBrandShop.setCityCode(cityRes.getCityCode());
mchBrandShop.setRegion(cityRes.getRegionName());
mchBrandShop.setRegionCode(cityRes.getRegionCode());
mchBrandShop.setMerchantId(user.getBelongId());
mchBrandShop.setGmtCreate(now);
mchBrandShop.setGmtCreateBy(user.getTelphone());
mchBrandShop.setGmtCreateUid(user.getId());
mchBrandShop.setGmtModifiedUid(user.getId());
mchBrandShop.setGmtModified(now);
mchBrandShop.setGmtModifiedBy(user.getTelphone());
shopList.add(mchBrandShop);
}
});
if (CollectionUtil.isNotEmpty(shopList)) {
brandShopDaoMapper.bSave(shopList);
}
}

二、批量保存-mybatis

<insert id="bSave">
insert into mch_brand_shop (
merchant_id, brand_id, shop_name, province, city,
region, address, lng, lat, min_area, max_area, day_income,
min_day_income, max_day_income, open_time, floor, rent_month_amount,
rent_time,
gmt_create, gmt_create_uid, gmt_create_by, gmt_modified_uid, gmt_modified_by,
gmt_modified
) values
<foreach collection="list" item="shop" separator="," index="index">
(
#{shop.merchantId}, #{shop.brandId}, #{shop.shopName}, #{shop.province}, #{shop.city},
#{shop.region}, #{shop.address}, #{shop.lng}, #{shop.lat}, #{shop.minArea}, #{shop.maxArea}, #{shop.dayIncome},
#{shop.minDayIncome}, #{shop.maxDayIncome}, #{shop.openTime}, #{shop.floor}, #{shop.rentMonthAmount},
#{shop.rentTime},
#{shop.gmtCreate}, #{shop.gmtCreateUid}, #{shop.gmtCreateBy}, #{shop.gmtModifiedUid}, #{shop.gmtModifiedBy},
#{shop.gmtModified}
)
</foreach>
</insert>

二、反射的理解及如何通过反射获取和设置对象私有字段的值

下面代码实现反射通过反射获取和设置对象私有字段的值

public class Teste {
public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
String str = "are you ok";
Method method = str.getClass().getMethod("toUpperCase");
System.out.println(method.invoke(str));
//ARE YOU OK

}
}

回顾反射的定义

视为Java动态语言的关键,本身Java是偏静态的。

1、反射的三种方式

Class a = String.class;

Class b = person.getClass();

Class c = Class.forName(String classPath);//常用—》体现反射的动态性

2、创建类的对象的方式

1 new + 构造器

2 要创建Xxx类的对象,可以考虑:Xxx、Xxxs、XxxFactory、XxxBuilder类中查看是否有静态方法的存在。可以调用它的静态方法,创建Xxx对象。(其实把new + 构造器封装了)

3 反射

3、反射的应用:动态代理

动态代理与AOP

AOP代理的方法 动态代理增加的通用方法

回调目标对象的方法,动态代理增加的通用方法

三、堆、栈、方法区(2.0)

1、String a=new String(“fdsdfs”);

堆 存放的是new出来的对象 jvm中只有一个堆区 被所有的线程共享

栈 是变量a 每个栈中的数据私有的 其他栈不能访问。栈中分配的是基本类型和自定义对象的引用。

方法区 是“fdsdfs”;被所有的线程共享,方法区包含所有的class static变量。
方法区存放的是类信息和static变量。

2、也可以这么理解:堆是用来存放对象的,栈是用来运行程序的。
堆:java的垃圾回收器会自动的回收这些不用的数据。缺点是由于要动态的分配内存,存储效率会比较的慢。

栈:栈的优势是存取效率比较快,仅次于寄存器,栈数据可以共享。但缺点是栈中的数据大小和生存期的固定的,缺乏灵活性。

3、堆和栈的区别可以用如下的比喻来看出:(来自csdn/weixin_41254254)
使用栈就象我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就
走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自
由度小。
使用堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由
度大。

四、SpringCloud微服务再整理

1、什么是分布式?
不同模块部署在不同服务器上
作用解决高并发
解耦
让开发者更关注业务
等等
2、什么是集群?
多台服务器部署相同应用构成一个集群
作用:通过负载均衡设备共同对外提供服务

负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务

3、Restful
Restful是一种架构设计风格,提高设计原则和约束条件
但不是架构
而满足这些约束条件和原则的应用程序或设计就是 RESTful架构或服务。

4、什么是微服务
架构设计概念,各服务间隔离(分布式也是隔离),自治(分布式依赖整体组合)其它特性(单一职责,边界,异步通信,独立部署)是分布式概念的跟严格执行
SOA到微服务架构的演进过程
作用:各服务可独立应用,组合服务也可系统应用(巨石应用[monolith]的简化实现策略-平台思想)

五、Oracle和Mysql的区别

简述解释

MySQL比较小,而且免费,开源的缘故,现在也很健壮,若不是大型应用的话,MySQL足以应付一切。

oracle比较庞大,整个体系都很健全。
简单的说MySQL是实用很好用,oracle就是很好很强大

详细解释

1.Oracle是大型数据库,Mysql是中小型数据库

2.Oracle占有内存空间大,Mysql占有小

3.Oracle支持大并发访问量,是OLTP最好的工具,Mysql并发小,面对大访问量可以做分表分库优化

4.Oracle没有自动增长类型,Mysql一般使用自动增长类型

5.Oracle处理翻页的SQL语句就比较繁琐了。每个结果集只有一个ROWNUM字段标明它的位置,并且只能用ROWNUM<100,不能用ROWNUM>80,MYSQL处理翻页的SQL语句比较简单,用LIMIT开始位置,记录个数

6.MYSQL的非空字段有空的内容,ORACLE里定义了非空字段就不容许有空的内容。按MYSQL的NOT NULL来定义Oracle是is null

7.MYSQL里用 字段名 like ‘%字符串%’,ORACLE用 字段名like '%字符串%'但不能使用索引,速度不快。【like ‘%’开头 无法使用索引 不使用开头 可以使用索引】

8.Oracle实现了ANSII SQL中事务的隔离级别、传播特性等比Mysql强;


标签:shop,cityRes,Java,mchBrandShop,CSDN,user,new,Oracle,挑战赛
From: https://blog.51cto.com/u_14604401/5747614

相关文章

  • 【学习版】资料包-java
    @Autowired注解以及失效几个原因1、对象转stringprivatestaticfinalObjectMappermapper=newObjectMapper();Stringjson=mapper.writeValueAsString(user);2BigDecimal......
  • Java集合TreeMap红黑树一生只爱一次(三天彻底理解应用TreeMap)
    一、那么为什么需要树呢?仔细想一下TreeSet、TreeMap,为什么要用他们。HashSet速度快,TreeSet则方便排序。HashMap速度快,TreeMap方便排序。同时,在树中查找数据项的速度和在有......
  • Java培养兴趣高效提升
    一、培养学习Java的兴趣    俗话说“兴趣是最好的老师”,基本上在我们学习时,不管在学什么知识,只要你对它有兴趣,充满好奇心,那么在你学习的时候就会充分调动你的专注力,......
  • 初学Java 第一个程序Hello,world 和java的特点
    JAVA重要的特点1.java语言是面向对象的简称oop2.java语言是健壮的java的强类型机制,异常处理,垃圾的自动收集等都是java程序健壮性的重要保证。3.java是跨平台性的(一个编......
  • 【Java】接口、内部类、包装类、装箱拆箱详解!
    接口接口是一组常量和抽象方法、默认方法、静态方法的集合。实现接口的类必须覆盖接口中的所有抽象方法。声明接口:[访问修饰符]interface接口名[extends父接口1,父接......
  • java中如何生成UUID呢?
    转自:​​​  http://www.java265.com/JavaProblem/202110/1361.html​​下文笔者将讲述java代码生成UUID的方法分享,如下所示:UUID简介UUID(UniversallyUniqueIdentifie......
  • 基于SSM+Vue汽车租赁管理系统Java车辆出租系统(源码调试+讲解+文档)
    ......
  • javabean、xml、json、map之间的相互转换
    javabean转map利用cglib的BeanMap类实现转换importorg.springframework.cglib.beans.BeanMap;/****@Title:beanToMap*@Description:javabean转map*@parambean*......
  • Java集合操作
    1、集合转数组集合转数组建议采用以下写法://接口方法<T>T[]toArray(T[]a);List<String>strList=newArrayList<>();strList.add("str1");strList.add("str2");strList......
  • Java参数校验
    基本步骤引入pom依赖书写需要校验的实体书写实体校验工具类编写测试代码引入pom依赖<!--参数校验--><!--start--><dependency><gr......