加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

学习日报2023年5月19日

(2023-05-19 21:43:06)
标签:

it

教育

分类: 两年成长日记


今日完成:

时间:6:35-7:00
内容:英语百词斩打卡+英语单词复习

时间:8:00-8:10
内容:元宇宙项目组晨会


时间:8:23-9:23
内容:Spring AOP(xml、注解)博客总结
总结:9:53完成博客总结,过程中新增了JDK动态代理和CGLIB动态代理的内容。

时间:10:17-10:42
内容:SSH框架——
hibernate——如何支持悲观锁
总结:完成计划

时间:10:52-11:17
内容:SSH框架——hibernate——如何支持乐观锁+回顾内容
总结:完成计划


时间:11:27-11:50
内容:SSH框架——
hibernate——缓存介绍

总结:完成计划


时间:13:30-14:10
内容:英语口语练习

时间:14:35:15:00
内容:明确为什么要设计内部类,以及如何访问private修饰的内部类
总结:未完成,15:25 

为什么要设计内部类:
1.封装性:内部类与相关的类组织在一起,提供更高的封装性,如果一个类只在另一个类内部使用,将其声明为内部类可以将其隐藏起来,避免暴露。
2.非静态内部类,持有对外部类实例的引用,使得内部类能够秦松的访问和操作外部类的属性和方法。

3.实现细节隐藏:内部类可以用于隐藏复杂的实现细节。通过将某些功能实现为内部类,可以将其细节隐藏在外部类之内,从而简化外部类的接口和实现。

业务上:1. 是为了体现每个学生都有操作活动颗粒的能力,所以将操作这些颗粒的能力视为了内部类(属性和方法)。对于外部类而言简化了外部了IDE结构和实现。

由于内部类的访问修饰符为private,


将私有内部类提升为公共内部类:如果可行的话,将私有内部类更改为公共内部类。这样,它将对外部类以及其他类可见,可以在方法参数中直接使用私有内部类的类型。

将私有内部类提取到单独的类文件中:如果你需要在多个类中使用私有内部类,可以将私有内部类提取到单独的类文件中,使其成为一个独立的类。然后在需要使用私有内部类的类中,将其实例作为方法参数进行操作。

使用数据传输对象(DTO):创建一个公共的数据传输对象(DTO),该对象包含与私有内部类相匹配的字段和属性。在前端调用方法时,使用DTO作为参数类型传递数据结构,并在方法内部将DTO转换为私有内部类对象。
  
使用反射:使用反射来访问私有内部类,并在方法参数中使用私有内部类类型。我之前提供的关于使用反射的方法可以帮助你实现这个需求。


时间:15:35-16:00
内容:先假设已经能够拿到内部类的类型了,梳理实现使用JPA如何插入用户的签到信息的NS图
总结:

问题一:JPA的接口通常是用于对实体类进行持久化操作的,需要实体类被标记为
@Entity才能与数据库进行映射和交互。
问题二:灵活设置那些实体类能够被映射成表,那些实体类不能被映射成表吗?
考虑使用其他的ORM框架或持久化解决方案,如MyBatis或Hibernate的XML映射配置。这些框架提供了更灵活的映射配置方式,允许你选择性地指定实体类与表之间的映射关系。


如果你希望自己创建表,而不是由JPA自动创建表,并且仍然想使用JPA的增删改查接口,可以采取以下步骤:
在实体类上使用
@Entity注解:确保你的实体类上仍然标记了@Entity注解,这样JPA仍然能够识别该类作为实体类进行映射。
禁用自动创建表:在配置文件(如
persistence.xml或application.properties)中,禁用JPA的自动创建表功能。具体的配置方法取决于你所使用的持久化提供程序(如Hibernate、EclipseLink等)。通常,你需要将自动创建表的选项设置为false。
使用
@Table注解指定表名:在实体类上使用@Table注解,显式地指定你所创建的表的表名。



时间:16:00-16:25
内容:整理目前的问题以及现有的解决思路


问题一:
由于为私有的内部类,controller层的方法的参数无法声明为私有内部类类型的形参。 使用反射获取似乎也不可行。

问题二:
背景:了解到使用JPA的接口需要实体类被标记为@Entity才能与数据库进行映射和交互。
如果我们想要使用JPA的接口,让JPA来做ORM映射的话,我们的内部类需要添加@Entity注解。
添加@Entity注解之后默认JPA自动会将其创建成表,但是我们的内部类们是我们自己创建的。
JPA提供了相应的配置,禁用JPA的自动创建表功能,但是无法做到指定那些类能够创建为类,
哪些类不将其创建为表。
问题:
那么由于我们的Actor类是使用jpa自动创建表的,如果我们禁用JPA自动创建表的话,
那么Actor类我们需要自己去创建,当然由于Actor类使用@Entity注解它依然能够使用JPA的接口。

问题三:
由于我们创建的表名是我们自己定义的表名,并不是实体名或者指定好的表名。所以当进行使用JPA进行ORM的时候,JPA是用实体类类名或者指定表名进行相应的CRUD
,我们可能需要使用自定义查询。








时间:16:30-16:55-17:12
内容:领导沟通会+请教马总问题+找梓龙了解登陆模块+再次请教马总问题
总结:先将梓龙负责的部分进行梳理,绘制NS图
梓龙负责模块的现状:1.通过模板生成对应学生参与颗粒的controller,生成的学生参与颗粒controller中的方法的参数类型为对应的颗粒参与类型
2.现在的ORM是通过反射拼接的SQL然后交给JPA中的Query执行相应的操作



时间:17;35-18:00
内容:绘制宏观的登陆模块的NS图
总结:完成计划


时间:19:00-19:10
内容:英语单词学习



时间:19:31-19:56
内容:绘制学生生成类和表的NS图预计完成50%
总结:完成计划


时间:19:58-20:23
内容:继续绘制学生生成类和表的NS图预计完成50%
总结:未完成,剩余20%

时间:20:30-20:55
内容:继续绘制学生生成类和表的NS图完成剩余20%
总结:未完成,21:28完成计划


明日计划:
SSH架构——Hibernate——视频4个番茄
宏观整理Hibernate相关知识点两个番茄
已在禅道建立对应的开发任务







0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有