当前位置: 首页 > news >正文

设计公司的网站自己做抽奖网站违法吗

设计公司的网站,自己做抽奖网站违法吗,网站流量统计平台,wordpress能注册本片文章我们主要介绍spring-boot如何进行JPA的配置以及如何进行实体间的一对多配置。 依赖准备 要在spring-boot使用jpa需要在项目中有进入相关的依赖#xff0c;pom文件里加入下面内容 dependencygroupIdorg.springframework.boot/groupIdartif…本片文章我们主要介绍spring-boot如何进行JPA的配置以及如何进行实体间的一对多配置。 依赖准备 要在spring-boot使用jpa需要在项目中有进入相关的依赖pom文件里加入下面内容 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jpa/artifactId /dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-jdbc/artifactId /dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdscoperuntime/scope /dependency 项目的配置文件中需要对数据库链接以及jpa进行配置 spring:datasource:url: jdbc:mysql://localhost:3306/missyou?characterEncodingutf-8serverTimezoneGMT%2B8username: rootpassword: 12345678jpa:hibernate:ddl-auto: update # 只针对新增的entity创建表properties:hibernate:show_sql: true # 在对数据库进行操作的时候打印出sql方便在生产环境排查问题format_sql: true # 打印sql的时候进行格式化看起来方便 jpa实战 一对多关系先定义两个实体类Banner和BannerItem一个Banner可以对应多个BannerItem属于典型的一对多的关系 Entity public class Banner {IdGeneratedValue(strategy GenerationType.IDENTITY)private long id;Column(length 16)private String name;Transient // 表明这个字段不会映射到表中的字段private String description;private String img;private String title;OneToManyprivate ListBannerItem items; // 关联属性导航属性} Entity public class BannerItem {IdGeneratedValue(strategy GenerationType.IDENTITY)private Long id;private String img;private String keyword;private Short type;private String name; } 先对上面代码中的一些注解进行说明 Entity标记当前类为一个实体对应数据库中的一张表用来表示这张表信息类名默认就是表名jpa会根据命名规则自动小写并加下划线比如BannerItem实体生成的表名就是banner_item Id表名标记的字段将作为主键 GeneratedValue(strategy GenerationType.IDENTITY) 设置id为自增长 Column(length 16) 设置字段的属性比如长度、是否为空、是否唯一等 OneToMany可以使用两个实体建立一对多的关系也就是一个Banner可以包含多个BannerItem Transient注解表示被标记的当前字段不会映射到数据库表的字段也就是说生成的表中不会包含这个字段 此时运行程序就会在数据库中创建对应的表 这里生成了三张表banner表和banner_item表我们知道是对应的Banner实体和BannerItem实体那banner_items这张表是怎么回事呢 在解释这张表之前我们先来看一下这个表的结构 表里只有两个字段banner_id和items_id分别是banner的id和banner_item的id这就是说这张表相当于一张关系表在多对多的时候我们才需要一张关系表而现在只是一对多为什么会产生这张表呢 这是因为在上面的实体定义的时候我们只是给这两个实体建立了关系并没有任何一个字段来表明哪一个BannerItem属于哪一个Banner那JPA看到你没有做那就我来做他会自动帮你创建这样一张关系表来维护这种归属关系。那有没有办法去掉这张表呢当然有。 这个时候就需要新增一个外键字段了来表明一个banner_item到底是归属于哪一个banner我们来修改一下上面的实体定义 Banner实体里做如下修改 OneToMany JoinColumn(name bannerId) private ListBannerItem items; JoinColumn注解指定外键 BannerItem实体增加一个字段bannerId private Long bannerId; 删除之前的表重新运行程序 这个时候生成的表就只有两个了在banner_item表里会新增一个外键字段。 下面我们通过一个程序实例来验证上面的内容 1、构造数据 表结构已经构造好了现在我们填充一些数据来使用JPA进行数据查询 INSERT INTO missyou.banner (id, img, name, title) VALUES (1, http://sss.jpg, 顶部banner, 顶部banner); INSERT INTO missyou.banner (id, img, name, title) VALUES (2, http://aaa.jpg, 顶部banner2, 顶部banner2);INSERT INTO missyou.banner_item (id, banner_id, img, keyword, name, type) VALUES (1, 1, http://www.jpj, 衣服, 阿迪促销, 1); INSERT INTO missyou.banner_item (id, banner_id, img, keyword, name, type) VALUES (2, 1, http://www.jpj, 鞋, 阿迪促销, 1);2、新建Controllerservicerepository BannerRepository仓储层,主要负责读取数据库 Repository public interface BannerRepository extends JpaRepositoryBanner, Long {Banner findOneById(Long id);Banner findOneByName(String name); } sevice层具体的业务逻辑 Service public class BannerServiceImpl implements BannerService{Autowiredprivate BannerRepository bannerRepository;Overridepublic Banner getByName(String name) {return bannerRepository.findOneByName(name);} } controller层负责接收客户端请求返回数据 GetMapping(/banner/name/{name}) public Banner getBannerByName(PathVariable String name){return bannerService.getByName(name); } 请求接口 可以看到数据已经查询出来了。 双向一对多上面的示例是根据banner_id去查关联的一组banner_item但是有些场景我们可能需要通过某个item_id去查是属于哪个banner那这就是一种的反向的一对多接下来我们看一下这总反向的一对多如何配置。 我们之前配置了一个items属性 OneToMany JoinColumn(name bannerId) private ListBannerItem items; 这个属性就可以帮我们定位到某个banenr关联的一组bannerItem可以叫做导航属性那么反过来如何从一个item定位到一个Banner怎么设置导航属性 首先需要在BannerItem实体类里面增加一个banner属性并使用如下注解进行标记 ManyToOne JoinColumn(name bannerId) private Banner banner; 修改Banner实体 OneToMany(mappedBy banner) private ListBannerItem items; 这里其实就是把JoinColumn(name bannerId)移动到BannerItem里面。并且在BanenrItem里要删除掉之前定义的外键字段bannerId。 这是因为在设置双向一对多的关系时会默认在banner_item表里生成一个外键如果自己再写一个就会造成重复程序就会报错。 那如果自己很想指定也可以进行如下配置 ManyToOne JoinColumn(insertable false, updatable false, name bannerId) private Banner banner; 总结 以上就是我们介绍的关于在spring-boot中如何进行实体间的单向一对多和双向一对多的配置关于要在实际项目如何使用哪一种方式还是要结合自己的业务一般不需要进行双向的配置而且一般都不会去设置物理外键后面我们再讨论如何进行多对多的配置以及如何去除物理外键。 欢迎大家去 我的博客 瞅瞅里面有更多关于测试实战的内容哦
http://wiki.neutronadmin.com/news/422472/

相关文章:

  • 阜阳网站开发公司电子商务网站开发
  • 网站设计做微信发现界面网站开发实训指导书
  • 做淘宝客怎么建网站恒通建设集团有限公司网站
  • 杭州建设行业网站免费个人网站
  • 麓谷网站建设公司懒人免费建站模板
  • 广西做网站丽江网站开发
  • 火车站网站建设方案一千元做网站
  • 静态网站如何共用一个头部和尾部app网站开发的特点
  • 网站开发服务流程界面网站的风格
  • c 做网站教程响应式个人网站psd
  • 网站建设的主机自己建立网站怎么搞
  • 成都网站建设桔子平台维护工作内容
  • 江苏省建设信息网站wordpress 地图创建
  • iis 网站目录权限做公司网站 找谁做
  • 帝国cms做投资网站源码制作一个公司网站多少
  • 企业网站首页开发网站更换域名seo
  • 百度网站地图制作怎么给网站做链接
  • 网站搭建平台有哪些长春火车站在哪个街道
  • 深圳罗湖企业网站建设报价重庆公司专业建站
  • 网站如何备案要关站吗erp系统推荐
  • 连锁店 网站建设 中企动力小满crm
  • 榆林尚呈高端网站建设万网创始人为什么封停慧聪网
  • 溧阳建设工程监理网站网页制作软件大全
  • 企业网站改版新闻京东云擎 wordpress
  • 给自己的网站做镜像网站免费短网址生成
  • 计算机网络网站建设的实训总结安阳+网站建设
  • 百度站长平台验证网站免费查企业信息软件
  • 做系统进化树的网站提供网站制作公司哪家好
  • 网站文件夹权限php网站开发职责
  • 域名交易网站建设大同百度做网站多少钱