实体类

初识MyBatis

匿名 (未验证) 提交于 2019-12-02 21:53:52
MyBatis是一个半自动ORM框架,优势如下:   1.不用考虑公共问题,框架帮我们完成。   2.可以专心于业务逻辑,保证核心业务逻辑的开发质量   3.结构统一,便与学习。 框架的概念:   框架(Framework)是一个提供可重用的公共结构半成品。它为我们构建新的应用程序提供了极大的便利。 如何搭建MyBatis:   1.下载需要的jar文件:(http://mybatis.org)   2.将jar文件放到项目下面的lib文件夹中并部署(如没有lib文件夹可创建一个Folder)   3.将MyBatis的核心配置文件放到源码文件夹中(source Folder)中,并进行配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration>  <!--配置数据库连接--> <properties resource="mybatis.properties" /> <settings> <setting name="autoMappingBehavior" value="FULL"/> <

你真的了解java序列化吗

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

grpc proto文件生成java、.net实体类以及客户端代码

匿名 (未验证) 提交于 2019-12-02 21:52:03
背景 工作中对接对方服务是GRPC,对方只提供了proto契约文件,需要自己生成对应的实体类以及客户端代码,故记录下操作流程。 实体类: 通过 protoc 插件生成实体类 在 https://github.com/protocolbuffers/protobuf/releases 下载对应版本的protoc工具解压,我这边用的是3.1.0版本的 proto文件拷贝至protoc同目录,执行如下命令: protoc --java_out=./java/ hello.proto 对应生成的文件: maven pom引用: <dependencies> <dependency> <groupId> io.grpc </groupId> <artifactId> grpc-protobuf </artifactId> <version> 1.17.1 </version> </dependency> <dependency> <groupId> io.grpc </groupId> <artifactId> grpc-stub </artifactId> <version> 1.17.1 </version> </dependency> <dependency> <groupId> io.grpc </groupId> <artifactId> grpc-auth <

MVC模式实现分页案例(java)

匿名 (未验证) 提交于 2019-12-02 21:52:03
必须掌握分页案例 Ŀ¼ 必须掌握分页案例 1.分页概述 2.分页实现思路 3.分页步骤 4.分页代码实现 4.1 创建工程,并导入相关jar包 4.2数据库配置文件druid.properties 4.3创建工具类和实体类 4.4Dao层接口和实现类 4.5Service层接口和实现类 4.6web层代码 4.7JSP代码 1.分页概述 分页是web应用程序非常重要的一个技术。数据库中的数据可能是成千上万的,不可能把这么多的数据一次显示在浏览器上面。一般根据每行数据在页面上所占的空间每页显示若干行,比如一般20行是一个比较理想的显示状态。 2.分页实现思路 分页的思路 对于海量的数据查询,需要多少就取多少,显然是最佳的解决方法,假如某个表中有200万条记录,第一页取前20条,第二页取21~40条记录。 select * from 表名 order by id limit 0,20 ; select * from 表名 order by id limit 20,20; select * from 表名 order by id limit 40,20; 3.分页步骤 步骤: 1.确定每页显示的数据数量 2.确定分页显示所需的总页数 3.编写SQL查询语句,实现数据查询 4.在JSP页面中进行分页显示设置 4.分页代码实现 4.1 创建工程,并导入相关jar包

Integer和int踩过的坑

匿名 (未验证) 提交于 2019-12-02 21:52:03
在做SSM项目时发现一个有趣的bug,在这里记录一下。 数据库表如下: 实体类:grade字段初始设定为int类型 在用mybatis对第三条数据进行修改时,希望赋值的更改,未赋值的不更改,测试运行 修改后发现数据库中的grade字段变成了0,这不是我想要的,(按照正常需求应该是原来的数字5) 查看了一下日志,发现了猫腻: 仔细想想Integer和int 的区别,integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况, 我又把之前实体类中的grade 类型改为了Integer成功实现了自己想要的。 总结:在实体类中尽量使用Integer修饰,Integer可以区分出未赋值和值为0的区别,我们大部分做判断都是以“”null“”去判断的,特在此做个笔记。 文章来源: https://www.cnblogs.com/ly-520/p/11241080.html

hibernate框架

╄→гoц情女王★ 提交于 2019-12-02 21:49:33
1、什么是框架: 框架是一个半成品,已经对一些功能进行了封装并提供了相应的API。 好处:(1)提高了开发效率。 (2)一些功能只需要调用不需要再去手动实现。 2、hibernate(冬眠)框架: (1)是一款orm框架(采用元数据来描述对象与关系映射的细节,元数据一般采用XML格式,并且存放在专门的对象一映射文件中)。即配置对象与表的映射关系。 (2)操作数据库的时候可以利用面向对象的思想去实现,hibernate已经对jdbc进行了封装。不需要写复杂的jdbc代码和sql语句。 (3)减少了代码的重复率,减少了内存消耗,提高了运行效率。 (4)可扩展性强。 (5)开源的、轻量级(不需要依赖于其他东西,导入的jar包较少) 3、框架与三层架构的关系: 4、hibernate5.x目录结构: 5、orm(object relational mapping)对象关系映射思想: (1)一一对应:让实体类和数据库表、实体类属性和表中的字段一一对应(需要通过配置文件的方式实现一一对应)。 (2)不需要直接操作数据库,直接操作表对应的实体类对象即可。 来源: https://www.cnblogs.com/zhai1997/p/11763837.html

IDEA添加Lombok插件

匿名 (未验证) 提交于 2019-12-02 21:40:30
背景:   最近老大给了一个项目,是个雏。一看实体类就懵逼了,没有getter、setter和构造方法,导致service和controller全报红线,私有属性也没有注释。按规矩,心里先把这位前辈骂10遍,然后一看@author xx。这不是我老大嘛?然后试着启动项目,卧槽,居然能启动,又去查看编译后的实体类一看,各种构造器和getter、setter等等都全部生成好了,又蒙蔽了。Google一查,原来是Lombok这个东西在搞鬼。   来看一下官网上怎么说的:Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.翻译下来就是:Lombok是一个java库,可以自动插入编辑器并构建工具,为您的java增添色彩。永远不要再写另一个getter或equals方法,使用一个注释