实体类

自定义实体类支持多字段排序的排序器

假装没事ソ 提交于 2019-11-28 07:15:34
前言 对于基本类型的集合排序,可以直接借助java提供的排序器进行比较排序,而对于集合中的实体类,想要实现排序需要自定义排序器,常见的有两种方式: 一、实体类实现Comparator接口的compare方法进行排序 二、将比较器抽离出来,生成一个通用的比较器(比较常用) 记录一下第二种的用法 构建一个反射工具,用于根据传入的字段名的字符串解析出想要进行的排序的字段 public class ReflexUtil { static Logger logger = LoggerFactory.getLogger(ReflexUtil.class); //getMethod static public Object invokeMethod(String propertiesName, Object object) { try { if(object==null) return null; //如果传入的字段名不包含. 说明是一个单纯的字段,直接返回get方法执行的结果 if (!propertiesName.contains(".")) { String methodName = "get"+getMethodName(propertiesName); Method method = object.getClass().getMethod(methodName); return

idea 2018 配置lombok插件及使用lombok设置实体类的getter和setter

旧时模样 提交于 2019-11-28 06:11:54
内容简介 本文主要介绍Idea 2018中安装lombok插件,以及lombok的简单使用(生成实体类的getter和setter)。 lombok插件配置方法 Step 1: 打开Settings窗口(快捷键:Ctrl + Alt + S),左侧选择Plugins,上方选择Marketplace,然后在输入框中输入lombok进行搜索,下面即可看到lombok插件,如下图: 要说明的是,我这里是已经安装过了,没有安装的情况下,lombok插件下方会显示绿色框框的Install,点击安装,完成后右侧会显示RestartIDE,不要重启(点击),还要进行下面的步骤。 Step 2: 还是在Settings窗口,左侧菜单中依次选择Build, Execution, Deployment -> Compliter -> Annotation Processors,在右侧将Enable annotation processing选择项选中,如下图: 点击下方的OK按钮,重启idea(全部的idea窗口都要关闭哦)。 lombok使用方法 Step 1: 在pom文件中引入lombok <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.20<

List实体类、DataTable与xml互转

两盒软妹~` 提交于 2019-11-28 05:54:06
一、建立/XML序列化公共处理类 /// <summary> /// XML序列化公共处理类 /// </summary> public static class XmlSerializeHelper { /// <summary> /// 将实体对象转换成XML /// </summary> /// <typeparam name="T">实体类型</typeparam> /// <param name="obj">实体对象</param> public static string XmlSerialize<T>(T obj) { try { using (StringWriter sw = new StringWriter()) { Type t = obj.GetType(); XmlSerializer serializer = new XmlSerializer(obj.GetType()); serializer.Serialize(sw, obj); sw.Close(); return sw.ToString(); } } catch (Exception ex) { throw new Exception("将实体对象转换成XML异常", ex); } } /// <summary> /// 将XML转换成实体对象 /// </summary> ///

Mybatis通用Mapper介绍与使用

让人想犯罪 __ 提交于 2019-11-28 05:51:04
前言 使用Mybatis的开发者,大多数都会遇到一个问题,就是要写大量的SQL在xml文件中, 除了特殊的业务逻辑SQL之外,还有大量结构类似的增删改查SQL 。而且,当数据库表结构改动时,对应的所有SQL以及实体类都需要更改。这工作量和效率的影响或许就是区别增删改查程序员和真正程序员的屏障。这时,通用Mapper便应运而生…… 什么是通用Mapper 通用Mapper就是 为了解决单表增删改查 ,基于Mybatis的插件。开发人员不需要编写SQL, 不需要在DAO中增加方法,只要写好实体类,就能支持相应的增删改查方法 。 如何使用 以MySQL为例,假设存在这样一张表: CREATE TABLE `test_table` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT '', `create_time` datetime DEFAULT NULL, `create_user_id` varchar(32) DEFAULT NULL, `update_time` datetime DEFAULT NULL, `update_user_id` varchar(32) DEFAULT NULL, `is_delete` int(8) DEFAULT NULL, PRIMARY KEY (`id

springData表关系:一对多

社会主义新天地 提交于 2019-11-28 05:45:53
一、编写实体类进行表关联 1、在一张表的关联属性上添加@OneToMany注解(关联属性用来记录多的一方的信息,是个集合,一般用set) 2、在另一个实体类的关联属性上添加@ManyToOne注解和 @JoinColumn(name="custid",referencedColumnName = "cust_id")注解 二、编写dao:两个dao都继承JpaRepository<实体类名,主键属性> 三、编写测试类(用法) package cn.lijun.jpa; import cn.lijun.jpa.dao.CustomerDao2; import cn.lijun.jpa.dao.LinkManDao; import cn.lijun.jpa.entity.Customer2; import cn.lijun.jpa.entity.LinkMan; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.annotation.Commit; import org.springframework.test.context

springData表关系:一对一

只愿长相守 提交于 2019-11-28 05:44:20
一、编写两个实体类 1、一对一关系实现:a:使用外键关联  b:使用主键关联,两个表的主键相同 2、外键方案:配置关联关系:两个实体类互相关联, 并且在关联的属性上添加一个@OneToOne代表一个对一个的关系;               在属性上添加@JoinColumn  nme 存储外键的字段名称  referencedColumnNmae 对方表的字段名称 (可以省略) 3、级联操作:  需要再@OneToOne 注解中添加一个属性 casecade        CascadeType.PERSIST : 级联添加’  CascadeType.MEGGE : 级联更新’  CascadeType.REMOVE : 级联删除’  CascadeType.ALL : 增删改都用级联操作’ 4、主键关联方案:不在使用@JoinColumn注解;使用@PrimaryKeyJoinColumn 注解不需要配置属性;两个实体类关联属性上都要添加 实体类一、@Entity @Table(name = "cst_customer") public class Customer { // 配置主键自增的策略 @GeneratedValue(strategy = GenerationType.IDENTITY) @Id @Column(name="cust_id") private

Hibernate报错:org.hibernate.ObjectNotFoundException: No row with the given identifier exists 解决办法

对着背影说爱祢 提交于 2019-11-28 05:41:34
报错信息: org.hibernate.event.internal.DefaultLoadEventListener onLoad INFO: HHH000327: Error performing load command : org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.weixin.db.model.Adminusers#4] 报错分析:   Hibernate的映射文件,表A里关联了表B的主键,当查询表A时,在B表里找不到对应记录时就会报错,如果只是逻辑删除不会报这种错误,只有当表B里测试没有id为4的这条数据了才会报错(已实际测试过);上面报错信息实体类后面【#4】表示实体类对应表id=15的记录找不到。也就是存在垃圾数据,可能是因为没有连带删除。 解决办法:   第一种:     修改配置文件加上 not-found="ignore" ”     即: <many-to-one name="powermethod" class="com.java.model.BaseFThermalPowerMethod" fetch="select" lazy="false" not-found="ignore">   第二种:     在B表中新增id

自制CRUD处理类

一笑奈何 提交于 2019-11-28 02:57:38
public class DBHelper:IDisposable { /// <summary> /// 连接字符串 /// </summary> private string connString { get; set; } public DBHelper() { this.connString = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; } public DBHelper(string connectionString) { this.connString = connectionString; } /// <summary> /// 得到一个连接 /// </summary> public SqlConnection GetConn() { SqlConnection conn = new SqlConnection(this.connString); conn.Open(); return conn; } /// <summary> /// 获取一个DataReader /// </summary> /// <param name="sql">sql语句</param> /// <returns></returns>

DncZeus添加MVC业务逻辑顺序

牧云@^-^@ 提交于 2019-11-28 01:29:10
DncZeus添加MVC业务逻辑顺序 添加Model实体类和数据库表 1、Entities包添加实体类, 这里的类属性和数据库对应 2、在DncZeusDbContext类,添加public DbSet<实体类名> 实体类名{ get; set; } 3、生成数据库创建表语句,程序包管理控制台输入 add-migration 实体类名 4、更新数据库,程序包管理控制台输入 update-database -Verbose 添加Controller业务逻辑接口 1、Controllers包添加实体类对应的Controller类,编写增删改查等业务逻辑 2、MappingProfile建立View Model到Model的映射 来源: https://blog.csdn.net/bluecat333/article/details/99882474

实体类 @TableName&@TableField&@Version

只谈情不闲聊 提交于 2019-11-28 00:46:01
//指向表table_biao @TableName("table_biao)public class UserThirdLogin extends Model<UserThirdLogin>{ private static final long serialVersionUID = 1L; //指向表中的id @TableId(value = "id", type = IdType.AUTO) private Integer id; /** * 用户的id */ //指向表中user_id字段,点表中的字段与所使用的字段不一样时使用,比如user_id(表)和userId(用) @TableField("user_id") private Integer userId; /** * 昵称 */ @TableField(value="create_date", fill = FieldFill.INSERT) protected Date createDate @TableName("p_user_bill") public class UserBill extends Model<UserBill> { //关于serialVersionUID的解释 //serialVersionUID作用: 序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。 /