实体类

利用SQL生成模型实体类

笑着哭i 提交于 2019-11-27 22:08:42
declare @TableName sysname = 'TableName' declare @Result varchar(max) = 'public class ' + @TableName + ' {' select @Result = @Result + ' public ' + ColumnType + NullableSign + ' ' + ColumnName + ' { get; set; } ' from ( select replace(col.name, ' ', '_') ColumnName, column_id ColumnId, case typ.name when 'bigint' then 'long' when 'binary' then 'byte[]' when 'bit' then 'bool' when 'char' then 'string' when 'date' then 'DateTime' when 'datetime' then 'DateTime' when 'datetime2' then 'DateTime' when 'datetimeoffset' then 'DateTimeOffset' when 'decimal' then 'decimal' when 'float' then 'float'

实体类实现序列化

試著忘記壹切 提交于 2019-11-27 21:54:34
客户端访问了某个能开启会话功能的资源, web服务器就会创建一个与该客户端对应的HttpSession对象,每个HttpSession对象都要站用一定的内存空间。如果在某一时间段内访问站点的用户很多,web服务器内存中就会积累大量的HttpSession对象,消耗大量的服务器内存,即使用户已经离开或者关闭了浏览器,web服务器仍要保留与之对应的HttpSession对象,在他们超时之前,一直占用web服务器内存资源。 web服务器通常将那些暂时不活动但未超时的HttpSession对象转移到文件系统或数据库中保存,服务器要使用他们时再将他们从文件系统或数据库中装载入内存,这种技术称为Session的持久化。 将HttpSession对象保存到文件系统或数据库中,需要采用序列化的方式将HttpSession对象中的每个属性对象保存到文件系统或数据库中;将HttpSession对象从文件系统或数据库中装载进内存时,需要采用反序列化的方式,恢复HttpSession对象中的每个属性对象。所以存储在HttpSession对象中的每个属性对象必须实现Serializable接口 ———————————————— 转载:CSDN博主「wan23333」 https://blog.csdn.net/wan23333/article/details/83057488 来源: https://www

java面向对象下

折月煮酒 提交于 2019-11-27 18:14:01
1.1. java类是否可以多继承,怎么实现多继承? 答:java没有多继承,但可以通过接口的形式来达到多继承的目地。 重载(overload)和重写(overried,有的书也叫做“覆盖”)的区别? Overload的方法是否可以改变返回值的类型? 答:方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类 与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定 义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这 个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。如果在一个类中定 义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。 Overloaded的方法是可以改变返回值的类型 1.2. abstract class 和interface 有什么区别? 答:声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类, 并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型 是一个抽象类,并让它指向具体子类的一个实例

Spring Boot 2.0 常见问题总结(二)

时间秒杀一切 提交于 2019-11-27 17:00:00
使用 IDEA 生成 POJO 实体类 a. 使用 idea 连接上需要操作的数据库。 b. 选中要生成实体类的数据库表:右键 ---> Scripted Extensions ---> Generate POJOs.groovy。 c. 在弹出的窗口选择生成的位置即可。 application.properties 属性自动映射实体类配置 a. 在 application.properties 文件中定义的属性如下 wxpay.appid=wx5beac15ca207cdd40c wxpay.appsecret=5548012f33417fdsdsdd6f96b382fe548215e9 b.使用 @PropertySource(value = "classpath:application.properties") 即可。 @Getter @Setter @Configuration @PropertySource(value = "classpath:application.properties") public class WeChatConfig { @Value("${wxpay.appid}") private String appId; // 公众号 appid @Value("${wxpay.appsecret}") private String appsecret

09.MyBatis的逆向工程

流过昼夜 提交于 2019-11-27 13:35:08
逆向工程:(通过表自动生成实体类和映射文件) 1.导入mybatis-generator-core-1.3.2.jar的jar包 2.在 src 下创建并编写配置文件,如下, generator.xml 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE generatorConfiguration 3 PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" 4 "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> 5 <generatorConfiguration> 6 <context id="DB2Tables" targetRuntime="MyBatis3"> 7 <commentGenerator> 8 <!-- 9 suppressAllComments属性值: 10 true:自动生成实体类、SQL映射文件时没有注释 11 true:自动生成实体类、SQL映射文件,并附有注释 12 --> 13 <property name="suppressAllComments" value="true" /> 14 </commentGenerator> 15 <!--

hibernate插入实体类【数据库默认值】不生效的问题

时光总嘲笑我的痴心妄想 提交于 2019-11-27 13:24:04
第一个问题老生常谈 如果表结构设置默认值 数据库实体类不对该字段进行复制的情况下插入数据记录 字段直接以数据库设置的默认值进行插入 hibernate本身可以根据XML配置进行生效此配置 1 <hibernate-mapping 2 package="*.entity"> 3 <class name="ProEntity" table="PRODUCTINFO" dynamic-insert="true" dynamic-update="true" > 4 <id name="proID" column="ID"> 5 <generator class="assigned"></generator> 6 </id> 7 <property name="proCode" column="CODE"/> 8 <property name="proName" column="Name"/> 9 <property name="proDescription" column="DESCRIPTION" not-null="true"/> 10 <property name="proAmount" column="AMOUNT" not-null="true"/> 11 <property name="proManagerID" column="MANAGERID" not-null=

java里面Dto对象跟VO的区别

时光毁灭记忆、已成空白 提交于 2019-11-27 13:09:09
原文地址: https://ask.csdn.net/questions/692933?sort=id javaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自身机制发现和操作这些JavaBean 的属性。 VO即value object值对象 主要体现在视图的对象,对于一个WEB页面将整个页面的属性封装成一个对象。然后用一个VO对象在控制层与视图层进行传输交换。 DTO (经过处理后的PO,可能增加或者减少PO的属性): Data Transfer Object数据传输对象 主要用于远程调用等需要大量传输对象的地方。 比如我们一张表有100个字段,那么对应的PO就有100个属性。 但是我们界面上只要显示10个字段, 客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端, 这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO。 POJO(POJO是一种概念或者接口,身份及作用随环境变化而变化) : POJO有一些private的参数作为对象的属性

Asp.Net Core 轻松学系列-4玩转配置文件

ぐ巨炮叔叔 提交于 2019-11-27 12:42:15
目录 前言 另类方式使用 hosting.json 使程序运行于多个端口 结语 前言     在 .NET Core 项目中,配置文件有着举足轻重的地位;与.NetFramework 不同的是,.NET Core 的配置文件都以 .json 结尾,这表示一个标准的 json 格式的文件;一个标准的 Asp.Net Core MVC 项目,一定带着一个 appsettings.json 文件,该文件便是项目默认配置文件,这和基于 .NetFramework 创建的 Asp.Net Web Application (默认配置名称:App.config) 有着根本的不同,今天我们就学习如何添加自定义配置到文件中,并把该配置在程序中读取出来;然后再通过使用 host.json 这个配置文件使程序运行于多个端口。 1. appsettings.json 文件 1.1 appsettings.json 文件是一个标准的 json 结构的文件,这表示你只要按照 json 的结构写入该文件,无论什么内容,都能在程序中自动读取,当我们创建好 MVC 项目后,系统就自动帮我们创建好 appsettings.json 文件,其默认内容如下: { "Logging": { "LogLevel": { "Default": "Warning" } }, "AllowedHosts": "*" } 1.2

Mybatis-入门

戏子无情 提交于 2019-11-27 12:39:06
一、概述 mybatis是一个持久层框架,用java编写的。 它封装了jdbc操作的很多细节,使开发者只需要关注sql语句本身,而无需关注注册驱动,创建连接等繁杂过程 它使用了ORM思想实现了结果集的封装。 ORM: Object Relational Mappging 对象关系映射 简单的说: 就是把数据库表和实体类及实体类的属性对应起来 让我们可以操作实体类就实现操作数据库表。 二、mybatis的入门 mybatis的环境搭建 创建maven工程并导入坐标 创建实体类和dao的接口 创建Mybatis的主配置文件 SqlMapConifg.xml <?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"> <!--mybatis的主配置文件--> < configuration > <!--配置环境--> < environments default = " mysql " > <!--配置mysql的环境--> < environment id = " mysql " > < transactionManager type = "

Mybatis-Plus

佐手、 提交于 2019-11-27 10:42:22
什么是 Mybatis-Plus MyBatis-Plus (简称 MP )是一个 MyBatis 的增强工具,在 MyBatis 的基础上 只做增强不做改变(所以原有的mybatis框架的功能一样不少) ,为简化开发、提高效率而生。 为什么要学习 Mybatis-Plus 我们已经学习过 Mybatis 这个框架,我们只需要在 dao 层定义抽象接口,基于 Mybatis 零实现 的特性,就可以实现对数据库的 crud 操作。 如下两个接口: UserMapper 接口 public interface UserMapper { int deleteByPrimaryKey(Long id); int insert(User user); List<User> selectList(); User selectByPrimaryKey(Long id); } OrderMapper 接口 public interface OrderMapper { int deleteByPrimaryKey(Long id); int insert(Order order); List<Order> selectList(); User selectByPrimaryKey(Long id); } 在上面两个业务接口中,我们发现:它们定义了一组类似的 crud 方法。 在业务类型比较多的时候