实体类

Mybatis通用Mapper介绍与使用

泄露秘密 提交于 2019-12-05 17:53:18
前言 使用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

Spring boot+Mysql+Spring data JPA一个Web的Demo

痞子三分冷 提交于 2019-12-05 15:46:07
1.概述 因为要用spring boot,最近刚刚学习.这是一个web项目的配合mysq+Hibernate+tomcat的简单示例demo,很容易在此基础上扩展成自己的项目. 2.创建初始spring demo 作者用的IDE是IDEA,新建一个工程,选择Spring Initalizer. 下一步的话由于作者需要部署到服务器上面,选择了war.不需要的话可以选择jar. 选择spring web+spring Data JPA+Mysql Driver. 然后完成即可,首次运行的话配置依赖需要一点时间,请耐心等待. 3.配置数据源 配置数据源分为两部分,一部分是建表与建用户,另一部分是在application.properties中配置的. (1)建库 create database test; 注意这里不用创建表了,因为Hibernate从实体类自动创建一个同名的表. (2)建用户 create user 'db'@'%' identified by 'xxxxx'; (3)用户授权 grant all on test.* to 'db'@'%'; 这里建议授权all,因为后面Hibernate会用到建表权限,不能仅仅授权增删查改. (4)配置application.properties 配置四个属性: spring.jpa.hibernate.ddl-auto=

在idea中使用lombook插件

荒凉一梦 提交于 2019-12-05 14:23:45
这个插件的好处在于可以让我们的代码更简洁,减少一些重复的工作,最常用的就是@Data注解,比如在实体类上使用@Data注解,实体类的各个属性就不需要书写get和set方法。 使用方法:   安装完毕后,就可以直接以注解的形式使用。比如使用@Data注解,新建一个User实体类,然后直接在类的前面加上@Data注解,这样一来,这个实体类中的属性就不需要get和set方法了,如下图: 还有一些比较常用的注解,比如: @AllArgsConstructor 加在类上,可以生成含实体类全参数的构造方法。 @NoArgsConstructor 加在类上,可以生成无参构造方法。 @RequiredArgsConstructor 加在类上,配合@NonNull注解使用,生成指定参数的构造方法。比如在age属性前面加@NonNull注解,则User生成需要age参数的构造方法。 @Getter 加在类上,可以生成实体类所有属性的getter方法。 @Setter 加在类上,可以生成实体类所有属性的setter方法。 @ToString 加在类上,调用toString()方法,可以输出实体类中所有属性的值。 使用前提 1.在idea中添加lombook插件 File→Settings→Plugins,输入mybatis plugin,本地没搜到,就可以点击Search in repositories

.Net Core 实体生成器

瘦欲@ 提交于 2019-12-05 11:46:59
功能介绍:   在.net core开发环境下,我们可以使用efcore这个orm来根据数据库中的表来自动生成实体类,而使用其它orm的时候,一般情况下都需要我们自己对照数据库中的表和字段,一个个添加实体类和类中的属性。因此本文中的实体生成器的功能就是自动将数据库中的表以及字段 转化成我们 高级编程语言中的实体类,以此来减少我们重复劳动的工作量,让我们把更多的时间花在业务处理上。 环境准备:   数据库:Mysql数据库   开发工具:VS2019 项目类型:控制台应用程序 Nuget包安装:   Dapper   Mysql.Data   Microsoft.Extensions.Configuration   Microsoft.Extensions.Configuration.Json   Microsoft.Extensions.Configuration.Abstractions   Microsoft.Extensions.Configuration.EnvironmentVariables 逻辑实现:   使用dapper这个功能,获取对应数据库中有哪些表。   根据表获取这张表中的对应字段。   根据字段,进行内容拼接。   将拼接的内容保存到我们的项目目录中。    来源: https://www.cnblogs.com/chenhaoblog/p

#MybatisPuls基础入门:

喜你入骨 提交于 2019-12-05 07:34:41
MybatisPuls基础入门: 介绍:使用maven搭建 一、环境搭建---配置文件(存放在resources 文件夹下) 1).applicationConetext.xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring" xsi:schemaLocation="http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd http://www.springframework.org/schema/beans http://www

高质量App的架构设计与思考!

一笑奈何 提交于 2019-12-05 06:55:06
最近在做一功能不大、业务也不复杂的小众App,以往做App是发现自己从来没有考虑过一些架构方面的问题,只是按照自己以往的习惯去写代码,忽略了App的设计。本次分享主要包含一些开发App的小经验和技巧,来一次App开发与设计的分享。 先和分享下一下 实体类的设计与组织形式 实体类的组织 在做App开发的时候有很多的实体类,项目越复杂实体类就会越多,经过我的一番思考大致这可以将实体分为以下几大数: 面向数据库的 服务端返回的数据实体 用于渲染View的实体(使用Databinding) 一般情况下实体类的操作会经过以下步骤: App请求服务器获取数据 将数据存入数据库(可选) 渲染页面展示数据 现在的实体的产生只用在请求服务器数据的时候才需要新建,后续的数据库、页面渲染其实是可以使用一套实体: 先不说这样做的行不行,首先三个地方使用同一实体就会引起字段歧义比如服务器数据有Id、本地数据也有Id,那两个id字段就有冲突了不得不改字段名。 另一种情况渲染和数据本身并不会一一对应,有时候后端数据给的是一个纯数字而前端页面显示的是字符串两个都对应不上,强行放在一起会起来更多的问题。 所为实体类的的正确组织形式应该是: 相互隔离、互不干扰 : 数据实体的在渲染之前都需要准备好,比如在ViewModel中将int型的数据转换成文本型的数据然后再使用Databinding+页面渲染实体来渲染页面。

高质量App的架构设计与思考!

余生长醉 提交于 2019-12-05 06:54:33
最近在做一功能不大、业务也不复杂的小众App,以往做App是发现自己从来没有考虑过一些架构方面的问题,只是按照自己以往的习惯去写代码,忽略了App的设计。本次分享主要包含一些开发App的小经验和技巧,来一次App开发与设计的分享。 先和分享下一下**实体类的设计与组织形式** ### 实体类的组织 在做App开发的时候有很多的实体类,项目越复杂实体类就会越多,经过我的一番思考大致这可以将实体分为以下几大数: * 面向数据库的 * 服务端返回的数据实体 * 用于渲染View的实体(使用Databinding) 一般情况下实体类的操作会经过以下步骤: 1. App请求服务器获取数据 2. 将数据存入数据库(可选) 3. 渲染页面展示数据 ![21](https://img2018.cnblogs.com/blog/585087/201911/585087-20191122153944223-1662304384.png) 现在的实体的产生只用在请求服务器数据的时候才需要新建,后续的数据库、页面渲染其实是可以使用一套实体: ![22](https://img2018.cnblogs.com/blog/585087/201911/585087-20191122153944408-1718550849.png) 先不说这样做的行不行

Java POI读取Excel数据到实体类

喜你入骨 提交于 2019-12-05 04:39:03
1、引入依赖 在pom.xml文件中添加POI相关依赖: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.14</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.14</version> </dependency> 注:此处使用的3.14版本,如果使用4以上版本可能会不兼容。 2、ExcelUtil工具类 1 package com.payb.hsp.bjproj.common.util; 2 3 import lombok.extern.slf4j.Slf4j; 4 import org.apache.commons.lang3.time.DateFormatUtils; 5 import org.apache.poi.hssf.usermodel.HSSFDateUtil; 6 import org.apache.poi.hssf.usermodel.HSSFWorkbook; 7 import org.apache.poi.ss.usermodel.Cell; 8

Java解析JSON的四种方式

坚强是说给别人听的谎言 提交于 2019-12-05 04:20:16
一、什么是JSON JSON是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于阅读和编写,同时也易于解析和生成,并有效地提升网络传输效率。 二、JSON 语法 (1)数据在名称/值对中 (2)数据由逗号分隔 (3)大括号保存对象 (4)中括号保存数组 三、Java中JSON的生成与解析的四种方式(简单的Demo): 一个实体类:用于与JSON数据进行相互转换 public class Person { private String name; private String sex; private int age; public Person(String name, String sex, int age) { this.name = name; this.sex = sex; this.age = age; } public String getName() { return name; } public String getSex() { return sex; } public int getAge() { return age; } @Override public String toString() { return "Person{name='" + name + '\''

Spring Data Jpa的四种查询方式

自作多情 提交于 2019-12-05 01:44:04
一、调用接口的方式 1.基本介绍 通过调用接口里的方法查询,需要我们自定义的接口继承Spring Data Jpa规定的接口 public interface UserDao extends JpaRepository<User, Integer>, JpaSpecificationExecutor<User> 使用这几种方法的前提是你定义的实体类必须标注上相应的注解 @Entity //标注这是一个实体类 @Table(name = "tbl_user") //建立实体类与表的映射关系 public class User { @Id //声明此属性为主键 @GeneratedValue(strategy = GenerationType.IDENTITY) //主键生成策略,自增 @Column(name = "user_id")//指定属性对应数据库表的列名 private Integer userId; @Column(name = "user_name") private String userName; @Column(name = "user_address") private String userAddress; @Column(name = "user_salary") private Double userSalary; //...getter setter