实体类

你真的了解java序列化吗

孤街醉人 提交于 2019-12-03 04:09:11
问: 可是我这个实体类,没有实现序列化那个接口,也能存到数据库,这是为什么呢? 想不通!我是用的注解和hibernate框架弄的! 难道说不实现序列化接口也能保存数据?不应该啊。 @Entity public class Person { @Id @GeneratedValue private Integer id; private String name; private Integer age; } 答: 你用habernate保存数据,只要XML文件配置好了,实体类DAO层都没错,调用SAVE方法 然后COMMIT就可以保存数据。 序列化主要就是把你要保存的数据,转换成字节码的形式,反序列化就是把字节码变成数据。 你直接把数据通过本机服务器提交给硬盘,确实不需要序列化。 但是你在网络传输的时候就不行了,你传给别人一个东西,它接收了所有的字节码之后,却不知道你原本传的是什么对象,也就没法把这个东西按照原始去解析。 你序列化之后,在传给对方,他接收到的时候会按照序列化特定的模式,给反序列化出来,也就是说你传了什么,对方接收的也是什么,解析成功,可以正确使用方法以及属性。 追问: 你没明白我的意思,我不是问什么叫序列化 我问你我没实现序列化接口Serializable 为什么还可以保存对象到数据库呢? 追答: 本来就是可以保存的啊。你想想最开始学习数据库和JAVA的时候

MyBatis学习总结(五)——实现关联表查询

匆匆过客 提交于 2019-12-03 03:57:55
一、一对一关联 1.1、提出需求   根据班级id查询班级信息(带老师的信息) 1.2、创建表和数据   创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关系。 CREATE TABLE teacher( t_id INT PRIMARY KEY AUTO_INCREMENT, t_name VARCHAR(20) ); CREATE TABLE class( c_id INT PRIMARY KEY AUTO_INCREMENT, c_name VARCHAR(20), teacher_id INT ); ALTER TABLE class ADD CONSTRAINT fk_teacher_id FOREIGN KEY (teacher_id) REFERENCES teacher(t_id); INSERT INTO teacher(t_name) VALUES('teacher1'); INSERT INTO teacher(t_name) VALUES('teacher2'); INSERT INTO class(c_name, teacher_id) VALUES('class_a', 1); INSERT INTO class(c_name, teacher_id) VALUES('class_b', 2);

MyBatis学习总结(五)——实现关联表查询

允我心安 提交于 2019-12-03 03:57:44
一、一对一关联 1.1、提出需求   根据班级id查询班级信息(带老师的信息) 1.2、创建表和数据   创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关系。 CREATE TABLE teacher( t_id INT PRIMARY KEY AUTO_INCREMENT, t_name VARCHAR(20) ); CREATE TABLE class( c_id INT PRIMARY KEY AUTO_INCREMENT, c_name VARCHAR(20), teacher_id INT ); ALTER TABLE class ADD CONSTRAINT fk_teacher_id FOREIGN KEY (teacher_id) REFERENCES teacher(t_id); INSERT INTO teacher(t_name) VALUES('teacher1'); INSERT INTO teacher(t_name) VALUES('teacher2'); INSERT INTO class(c_name, teacher_id) VALUES('class_a', 1); INSERT INTO class(c_name, teacher_id) VALUES('class_b', 2);

Newtonsoft—Json.NET常用方法简述

这一生的挚爱 提交于 2019-12-03 02:54:41
Json.NET常用方法汇总(可解决日常百分之90的需求) 0.Json.NET基础用法   首先去 官网 下载最新的Newtonsoft.Json.dll(也可以使用VS自带的NuGet搜索Json.NET下载(下载下图第二个))并引用至项目。    (1)序列化实体类(将实体类对象序列化为Json字符串) using System; using Newtonsoft.Json; namespace Json_NET_Test { /// <summary> /// 定义一个实体类 /// </summary> public class Student { public string Name; public int Age; public string Class; } class Program { static void Main(string[] args) { //创建实体类对象 Student stu = new Student { Name = "老王", Age = 99, Class = "三班" }; //开始序列化 string jsonStr = JsonConvert.SerializeObject(stu, Formatting.Indented); Console.WriteLine(jsonStr); } } }   结果:    (2)反序列化

在ASP.NET Core中使用AutoMapper

你。 提交于 2019-12-03 02:39:19
普通的模型映射 现在有两个类,实体类Student和返回展示的 View类StudentView 两个实体类字段还基本可以,不是很多,假如字段非常非常多,还需要手动去赋值的话,简直太痛苦了。 想了想这才是一个方法,一般的系统都会少则几十,多则上百个这样的方法,这还不算,大家肯定遇到过一个情况,如果有一天要在页面多显示一个字段,噗!不是吧,首先要存在数据库,然后在该实体类就应该多一个,然后再在每一个赋值的地方增加一个,而且也没有更好的办法不是,一不小心就少了一个,然后被产品测试说咱们不细心,心塞哟,别慌!神器来了,一招搞定。 先来引入DTO讲解 我们已经知道了ORM(Object Relational Mapping)映射,是一种对象关系的映射,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。 而Automapper是一种实体转换关系的模型,AutoMapper是一个.NET的对象映射工具。主要作用是进行领域对象与模型(DTO)之间的转换、数据库查询结果映射至实体对象。 引入AutoMapper的包 在Services层中引用Nuget包,AutoMapper 和 AutoMapper.Extensions.Microsoft.DependencyInjection AutoMapper.Extensions.Microsoft

C#解析数组形式的json数据

匿名 (未验证) 提交于 2019-12-03 00:39:02
在学习时遇到把解析json数据的问题,网上也搜了很多资料才得以实现,记录下来以便翻阅。 1. 下载开源的类库Newtonsoft.Json(下载地址 http://json.codeplex.com/ , 也可以在 这里 下载) 2. vs 添加dll引用 (1). 我是将.dll文件放在了bin/debug文件下 (2). c#项目名称上右键->添加->引用->浏览->选择.dll所在文件位置->确定 (3). 添加引用: using Newtonsoft.Json; 3. 生成json字符串对应的c#实体类 json生成实体类工具: http://tool.chinaz.com/tools/json2entity.aspx (注:在生成json格式数据对应的实体类时,每对参数之间用逗号隔开) 要解析的json格式的数据: [ { " ItemNumber " : " 022 " , " ItemName " : " cap " }, { " ItemNumber " : " 023 " , " ItemName " : " golve " } ] 自动生成的实体类: class Item { /// <summary> /// 编号 /// </summary> public string ItemNumber { get ; set ; } /// <summary> ///

Mybatis通用Mapper介绍与使用

匿名 (未验证) 提交于 2019-12-03 00:37:01
前言 使用过jpa后再使用mybatis就会反感重复写xml文件里面的简单增删改查sql,一些复杂的特殊的业务逻辑sql当然是不可避免的,但是 大量结构类似的增删改查SQL就是大大影响程序员的开发效率。而且,当数据库表结构改动时,对应的所有SQL以及实体类都需要更改。这时,通用Mapper便应运而生…… 什么是通用Mapper 通用Mapper就是为了解决单表增删改查,基于Mybatis的插件。开发人员不需要编写SQL,不需要在DAO中增加方法,只要写好实体类,就能支持相应的增删改查方法。 Maven依赖 <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>3.3.7</version> <exclusions> <exclusion> <artifactId>persistence-api</artifactId> <groupId>javax.persistence</groupId> </exclusion> </exclusions> </dependency> 因为这个项目已经集成了jpa,javax.persistence的依赖已存在,故需要移除。如果项目没有这个jar,需要添加进来。 javax.persistence在实体类中会引用到其中的注解。

C#三层架构

匿名 (未验证) 提交于 2019-12-03 00:33:02
C#三层架构 三层架构分为:表现层(UI(User Interface))、业务逻辑层 创建三层架构: 1.在解决方案中分别创建MySchool.DAL、 MySchool.BLL、 MySchool.UI、 MySchool.Model的类库,并把类库中的class.cs文件删除 2.在 MySchool.Model层创建实体类,Grade类 3.在 MySchool.DAL层创建SQLHelper工具类连接SQLServer数据库 更改命名空间,换成在Myschool.DAL 在MySchool.UI层中的App.config中创建连接数据库的字符串 并在MySchool.DAL层中创建的GradeDAL,在创建的类中创建查询所有信息的方法,(引用=添加引用=引入 MySchool.Model) 在MySchool.BLL层中创建GradeBLL类,在类中先new出MySchool.DAL层中的GradeDAL类,然后创建方法返回GradeDAL的方法 引用 MySchool.DAL和 MySchool.Model 在MySchool.UI层,创建窗体应用程序,在窗体中拖入一个DataGridView,在form.cs中,创建GradeBLL的实例,用GradeBLL对象点出查询所有信息的方法,绑定到DataGridView里面 引入 MySchool.DAL、

GreenDao3.0的简单使用

匿名 (未验证) 提交于 2019-12-03 00:30:01
首先配置grendao 1、导入相应的包 [java] view plain copy compile 'org.greenrobot:greendao:3.0.1' compile 'org.greenrobot:greendao-generator:3.0.0' 2、配置项目的Gradle 'org.greenrobot:greendao-gradle-plugin:3.0.0' 3、配置app的Gradle [java] view plain copy 'org.greenrobot.greendao' 1 'com.example.anonymous.greendao.gen' 'src/main/java' 3.编写实体类(对应的是数据库的每张表) [java] view plain copy @Entity public class @Id private private @Entity:将我们的java普通类变为一个能够被greenDAO识别的数据库类型的实体类 @Id:通过这个注解标记的字段必须是Long类型的,这个字段在数据库中表示它就是主键,并且它默认就是自增的 就这么简单含有两个字段的实体类 然后点击这个按钮 builder完之后会有两个地方发生了变化 这是GreenDao自动为你生成的,路径就是你在gradle中配置的路径 现在只有一个User表