首先考虑的肯定是BEAN实体类,也就是面向对象编程,面向对象 *** 作数据库了.
但是弊困考虑到关联关系的时候,情况就复杂些了.
比如一对多的情况:
拿博客系统来说吧
一篇文章BLOG,肯定有一个BLOGID,这个BLOGID肯定是唯一的
BLOG(BLOGID,USERID,TITLE,CONTENT,MSGS)(博客ID,用户ID,标题,内容,评论)
现在有人对这个BLOG进行评论
评论MSG(MSGID,USERID,BLOG,MESSAGE)(评论ID,用户ID,博客,评论内容)
这有两个实体类,BLOG和MSG是一对多双向关联关系.
也就是说,根据这个BLOG可以知道这个BLOG下面所有的评论.
而某个MSG,肯定是对某一个BLOG进行评论的.
BLOG里面保存着评论的信息MSGS,MSGS肯定是个集合.
其中MSG里面保存着BLOG的信息.
实体类大概是上面那样.
下面就要建立关联关系的映射了.
一对多的关联关系的映射,主要体现在多的这一端,而多的这一端在数据库中体现就是外键.
也就是说,BLOG类中的MSGS是帖MSG来决定的,而数据库中,BLOG表肯定是没有MSG的任何字段信息.
但是MSG中肯定有BLOG实体类BLOGID.
有时候多个表也可以设配腔计成一个BEAN.看情况设计喽.
建立楼主去研究下HIBERNATE里面的关联关系及其映射,
看实体类和数据库中表的详细情况.
在做项目的时候需要使用代码实现读取properties文件内容,使用@value(name="xxx")去读取,但是当参数变多的时候,通过@value *** 作就显得臃肿。springboot提供了更加简单的 *** 作:那就是通过@ConfigurationProperties一次性读取并映射到javabean。
注意:1:此注解只适合项目有一个属性文件,如果大型项目用到了多个属性文件,咐缓需要另做处理,需指定@ConfigurationProperties读取的属性文件!
@ConfigurationProperties(prefix = "dolphin", locations = "classpath:dolphin.properties")
2:默认读取的是properties文件,可能有的项目配置的yml格式,所以要注意符合的变化点要编程冒号!
@ConfigurationProperties(ignoreUnknownFields = false, prefix = "ftp:client")
最近在项目中做一个ftp自动上传下载文件的功能,学习之余就用到了@ConfigurationProerties。首先在properties文件中加入如下配置信息
然后写一个实体类,用于存储映射的信息,并加上注解@ConfigurationProerties和@Component,当然也可以通过@Bean注入的。
参数一:value:
前缀,用于识别properties文件里需要映射的内容,如果拿ftp地址例子来讲,就是映射的属性host加上前缀ftp.client后即是ftp.client.host的内容
参衡游模数二:prefix:
前缀,用于识别properties文件里需要映射的内容,如果拿ftp地址例子来讲,就是映射的属性host加上前缀磨团ftp.client后即是ftp.client.host的内容
参数三:ignoreUnknownFields:
映射properties的字段中如果夹杂着未知的字段,将被忽略。例如:当配置文件中有一个或多个属性未绑定到实体类时或属性名字出错或已被删除了,这时候对于实体类,properties里的属性是未知的。这种情况我们希望程序启动失败,这时候就将此参数设置为false即可
参数四:ignoreInvalidFields:
指示绑定到此对象时应忽略无效字段。根据所使用的活页夹,Invalid表示无效,通常这表示无效类型错误的字段(或不能强制转换为正确类型的字段)。(默认为false):如properties的数字属性绑定到实体类字符类型的变量上。这时候我们期望程序启动失败,设置false即可!
参数五:ignoreNestedProperties:
标记当绑定到这个对象字段的名字中带有句号(即".")时应该被忽略。默认false。就可以理解为properties属性里有多余的字符.
参数六:exceptionIfInvalid:
该类用{@link Validated @Validated}注释,验证失败,则应引发异常,如果设置为false,验证错误将被吞噬。它们会被记录下来,但是没有传播到调用者。(默认为true)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)