实体类

ssh(sturts2_spring_hibernate) 框架搭建之JPA代替hibernate

£可爱£侵袭症+ 提交于 2020-01-31 00:15:29
一、JPA用来替代hibernate     ⒈JPA的全称是JAVA Persistence API。指的是JPA通过注解或者是XML描述对象—关系表的映射关系,并且将运行的实体对象持久化数据库中。    ⒉JPA是一种规范,hibernate是一种实现。同样的mybatis也是jpa中的一种实现。   二、构建步骤:     ⒈创建persistence.xml文件:      ⑴、首先在你的项目中的src目录下新建一个MATA-INF文件夹,文件夹的名字不可以是任意,必须是MATA-INF:      ⑵、新建一个xml文件,命名为persistence.xml:      ⑶、接下来,在persistence.xml文件中进行相关的配置,如下: <?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1

Hibernate JPA实体继承的映射(一) 概述

本小妞迷上赌 提交于 2020-01-31 00:02:16
注:文章中据说的实体指的是被@Entity注解的类。 JPA中对象关系映射通常情况下是一个实体对应一个表,两个实体之间没有任何关系。如果两个实体之间是继承关系,那么该如何映射呢? JPA中的实体支持继承映射,多态关联,多态查询。抽象类和具体的类都可以是实体,且都可以使用@Entity来注解,映射成实体,并查询封装成一个实体。实体类可以继承非实体类,非实体类也可以继承实体类。 JPA的继承映射有如下几种情况: 一、实体类继承抽象(具体)实体类 抽象类可以指定成为一个实体,抽象实体和具体实体的唯一区别只是抽象实体不能够被直接实例化。抽象实体能够被映射成一个实体并能够作为查询目标。 抽象实体类使用@Entity注解或在XML描述符表示成一个实体。 这种映射相对复杂,后面会专门写一篇文章来举例说明。这里就不再多说。 二、实体类继承映射超类(Mapped Superclasses) 实体可以继承自一个超类,这个超类提供了持久化实体状态(即属性或字段)和映射信息,但它本身不是一个实体。通常情况下,这种超类映射的的目的是定义多个实体共有的状态和映射信息。 映射超类和实体不一样,它不能够被查询,所以不能作为参数传递给EntityManager或Query 接口进行操作。映射超类定义的持久化关系必须是单向的。 抽象类或具体的类都可以作为映射超类,使用@MappedSuperclass注解

【教程】Mybatis 使用 -- Day 02【基本操作】

混江龙づ霸主 提交于 2020-01-30 15:54:46
文中代码托管在码云平台,点击进入 文章目录 单表CRUD操作 实现流程 使用细节 mybatis 参数深入 传递简单类型 parameterType 传入参数类型 传递pojo对象 输出结果封装 resultType mybatis Dao编写 实现流程 mybatis 的配置(SqlMapConfig.xml) 单表CRUD操作 实现流程 在Dao接口类中定义操作方法 在Dao接口类的对应映射配置文件中的相应标签内添加并写入对应的 sql 语句 在使用类中调用Dao接口类的方法使用(https://gitee.com/RaceK/Learn) IUserDao.java 接口类 /** * 查询所有操作 * @return 返回user列表 **/ List < User > findAll ( ) ; IUserDao.xml 映射配置文件 < mapper namespace = " com.learn.dao.IUserDao " > <!-- 配置查询所有 --> <!-- resultType 表示指定返回的是哪一种对象 --> < select id = " findAll " resultType = " com.learn.domain.User " > select * from user; </ select > test.java 测试类 /** *

SpringMVC接收复杂参数的处理方法

柔情痞子 提交于 2020-01-29 04:23:04
情景描述 页面上有两个列表,列表中的每条数据都需要评审通过还是不通过,我需要在前台页面点击提交的时候把 两个列表 中的所有数据以及 几个独立的参数 传递到后台. 一个一个零散的传递肯定是行不通的,所以直接才有了这篇文章. 解决方法 1. 先把接收参数封装成一个dto实体类. dto是入参实体类的后缀,vo是出参实体类的后缀. dto实体类文件如下: @Data public class ReviewDto { /** * 报名id */ private String enterId; /** * 专家id */ private String expertId; /** * 询价目录评审结果 */ private Integer inquiryResult; /** * 资格证明文件评审结果 */ private List<QualificationDto> qualificationDtoList; /** * 响应条件评审结果 */ private List<RespondDto> respondDtoList; /** * 备注及附件评审结果 */ private Integer remarkResult; } 2. js页面方法 var param = []; var reviewDto = { enterId:$("#enterId").val(),

JAVA第二阶段 GJP项目

痞子三分冷 提交于 2020-01-29 04:16:47
GJP项目 三层架构 1.View层:视图 (控制台) 2.Service:业务逻辑层 3.Dao层:数据库层 一般存储jar包的文件夹 1.实体类的包:com.offcn.gjp.entity 2.数据库的包:com.offcn.gjp.dao 3.逻辑的包:com.offcn.gjp.service 4.工具包:com.offcn.gjp.utils 5.视图包:com.offcn.gjp.view 6.需要导入的jar包和文件 来源: CSDN 作者: Adam3716 链接: https://blog.csdn.net/Adam3716/article/details/103588319

C# Dictionary转对象

筅森魡賤 提交于 2020-01-29 03:16:40
C# 利用泛型和反射灵活接收数据 private void button1_Click(object sender, EventArgs e) { //dic是获取到的数据列表,这里假设成有这三种 Dictionary<string, object> dic = new Dictionary<string, object>(); dic.Add("UserId",1); dic.Add("Username", "zty"); dic.Add("Password", "123456"); dic.Add("Phone", "18888888888"); dic.Add("Address", "BeiJing"); //User是实体类,用来接收数据 User user = ConvertDic<User>(dic); Console.WriteLine("UserID:" + user.UserId + "\nUsername:" + user.Username + "\nPassword:" + user.Password); } public static T ConvertDic<T>(Dictionary<string,object> dic) { T model = Activator.CreateInstance<T>(); //泛型的初始化 PropertyInfo[]

TkMybatis 笔记

落花浮王杯 提交于 2020-01-28 22:30:09
目录 1.基本步骤 2.Java 实体类 3.集成Mapper 4.Mapper继承tkMabatis的Mapper接口 5.启动类Application或自定义Mybatis配置类上使用@MapperScan注解扫描Mapper接口 6.application.properties配置mapper.xml配置文件的扫描路径 7.常用注解 8.常用方法 1.基本步骤 1. 引入TkMybatis的Maven依赖 2. 实体类的相关配置,@Id,@Table 3. Mapper继承tkMabatis的Mapper接口 4. 启动类Application或自定义Mybatis配置类上使用@MapperScan注解扫描Mapper接口 5. 在application.properties配置文件中,配置mapper.xml文件指定的位置[可选] 6. 使用TkMybatis提供的sql执行方法 7. 如有需要,实现mapper.xml自定义sql语句 PS : 1. TkMybatis默认使用继承Mapper接口中传入的实体类对象去数据库寻找对应的表,因此如果表名与实体类名不满足对应规则时,会报错,这时使用@Table为实体类指定表。(这种对应规则为驼峰命名规则) 2. 使用TkMybatis可以无xml文件实现数据库操作,只需要继承tkMybatis的Mapper接口即可。 3.

hibernate整理

泪湿孤枕 提交于 2020-01-28 17:19:24
国外框架项目地址:http://websystique.com/springmvc/spring-mvc-4-angularjs-example/Angularjs文本输入框用ng-moduel,其他的用{{ }}放行用.*?Angularjs插件地址http://www.cnblogs.com/pilixiami/p/5634405.htmlUI班的教程:http://pan.baidu.com/share/link?shareid=4146906997&uk=866705889非严格读写是并发的概念Spring不支持多线程Flush()强制要求缓存与数据库一致Eache表连接,lazy子查询ORM: 编写程序时,以面向对象的方式处理数据 保存数据时是以关系型数据库的方式存储的Hibernate的数据持久化: New实例化对象时默认是瞬时的 Jdbc连接数据库时,持久化数据 将数据存入硬盘单向关联关系: 一个类单方向包含另一个类为属性,模拟数据库外键mysql数据库附加:String driver=com.mysql.jdbc.DriverString url=jdbc:mysql://localhost:3306/demohibernate注入: 实体类(1)这个表示一个实体类,Table表示对应数据库中的表名。@Entity@Table(name="t_emp")(2

SSM框架搭建中基本的注解及其作用

纵然是瞬间 提交于 2020-01-25 21:18:41
最近换了新东家,新的项目框架用的是SSM框架,以前用SpringBoot比较多,对于SSM框架的很多配置记不清了。SpringBoot是SSM框架的一种更直接更简便的操作方式,简单的用的多了,老一代经典框架倒忘了,简直是作为程序员的奇耻大辱,特此记录,警醒自己。 SSM架构一般都是实体类(entity)、工具类(utils)、以及三层架构(dao,service.controller 也就是model层,view层以及controller层),在这里记录一下每个层常用的基本注解。 1.实体类 实体类的注解有@Entity、@Table,最近又发现了一个@Data,觉得这个注解还是挺有趣的,介绍一下三者的异同: 相同点:三者都可以做对象与数据库的映射,将数据库中的表与实体类相对应。 不同点: @Entity表示的是该类是一个实体类,使用的是默认的ORM映射规则; @Table表示的是数据库与实体类之间更为精确的映射关系,可以与其搭配使用的还有@Id(映射主键id)、@TableFiled(映射数据库其他字段),可以将数据库中表的字段与实体类中的属性一一对应,更加准确; @Data:它是lombok插件中的,它使用起来会便捷一些。因为lombok在编译期间的时候就默认为@Data标注的实体类提供了get/set方法,不用我们自己去生成,而且减少了书面代码量,看起来比较规范。 2