- orcle数据库第一天学习 注意点
dwwl
索引会提高查询效率,但是会降低增删改效率,truncat会将表的索引先删除掉,所以效率比较高delete可以回滚,truncate不能回滚创建sequence时,如果使用缓存,可能出现断层,(先从文件取出来值放在内存中,取出来没用重启后,按照文件中的值接着增长)日期变换时,注意yyyy-mm--dd不区分大小写//日期转换函数较为常用null值和数字相加时,还是为null,nvl()空值函数cou
- 使用 cleos 命令行领取空投
永远游泳的鱼
目前EOS空投很多需要申领,一般可以使用scatter,或佳能的离线工具。这里我把我用的命令行工具申领方法贴上来,供大家使用。#POORcleos-uhttps://mainnet.genereos.iopushactionpoormantokensignup'{"owner":"帐号","quantity":"0.0000POOR"}'-p帐号@active#WIZZcleos-uhttps:/
- 18个JavaScript技巧:编写简洁高效的代码
本文翻译自18JavaScriptTips:YouShouldKnowforCleanandEfficientCode,作者:Shefali,略有删改。在这篇文章中,我将分享18个JavaScript技巧,以及一些你应该知道的示例代码,以编写简洁高效的代码。让我们开始吧!箭头函数可以使用箭头函数来简化函数声明。functionadd(a,b){returna+b;}//Arrowfunctionc
- orcle分析函数之listagg()within group()
喜羊羊love红太狼
数据库
[主要功能]将多行合并成一行多行数据实例:将多行数据合并成一行如果想要在显示一列(如下错误写法)【解决方法】没有分组条件,创建分组条件。【去重】
- 基于Go-Kit的Golang整洁架构实践
俞凡 DeepNoMind
程序人生
如何用Golang实现简洁架构?本文介绍了基于Go-Kit实现简洁架构的尝试,通过示例介绍了简洁架构的具体实现。原文:WhyisGo-KitPerfectForCleanArchitectureinGolang?简介Go是整洁架构(CleanArchitecture)的完美选择。整洁架构本身只是一种方法,并没有告诉我们如何构建源代码,在尝试用新语言实现时,认识到这点非常重要。自从我有了使用Ruby
- orcle数据库存储过程和函数的标准写法demo
Harbor Lau
数据库oracle
CREATEORREPLACEFUNCTION"dad"(namevarchar2)returnvarchar2asResultvarchar2(300);BEGINselect'1'intoResultfromdual;returnResult;END;CREATEORREPLACEPROCEDURE"dadd"(nameINVARCHAR2,numoutVARCHAR2)ASBEGINnum:
- orcle数据库生成随机数字
Harbor Lau
数据库
CREATEORREPLACEfunctiongetEAC001returnvarchar2is/*生成EAC001,规则:大写字母c+当前注册时间到秒20170804112040加6位随机数字码*/Resultvarchar2(32);inumber(10):=0;beginResult:='C'||to_char(sysdate,'yyyyMMddHH24miss');whilei<6loop
- 【book 58】《The Little Blue Thinking Book》
毛英勇
【book58】《TheLittleBlueThinkingBook》——50powerfulprinciplesforclearandeffectivethinking.一本关于逻辑思维的书。书中提出了50个原则,有利于清醒思考和高效思考。值得一读。正在阅读。
- C++连接数据库(DataBase)之加载外部依赖项
默示MoS
玩转C++QtC++初学者c++数据库
文章目录在VS中进行配置一、先找到VS的解决方案资源管理器:二、找到“属性”,进行附加项配置三、移植libmysql.dll目录在VSCode中进行配置依赖文件的移动库文件的移动可能遇到的问题重点!!!!!!!(必看!!!!)C++在语言层面上没有提供数据库操作,我们需要使用Orcle公司对MySQL提供的接口对其进行操作,这就需要使用外部依赖项,因此我们需要进行一些配置。在VS中进行配置一、先找
- UIButton中文字和图片
iOS乐乐
UIButton*button=[UIButtonbuttonWithType:UIButtonTypeCustom];button.frame=CGRectMake(ScreenWidth-135*PIX,20*PIX,105*PIX,88*PIX);button.backgroundColor=[UIColorclearColor];//设置button正常状态下的图片[buttonsetIm
- Centos7安装Oracle-xe
笑疯子
Orcle-XE即Oracle11g速成版,部署快,轻量。Oracle数据库下载地址:https://www.oracle.com/downloads/index.html#database准备工作:oraclexe安装包:oracle-xe-11.2.0-1.0.x86_64.rpm.zip安装依赖yuminstalllibaiobcflex上传oraclexe的安装包解压zip包unzipor
- loadView内部实现逻辑
丹丹十个胆小鬼
1loadView方法作用创建控制器的view第一次使用控制器View的时候调用,在控制器View的get方法中调用(使用的是懒加载)当外界第一个使用当前控制器的View时,会调用当前一个方法loadView,创建控制器的View,控制器的View是懒加载的,什么时候使用,什么时候才去创建,如果已经创建,就不会再创建了。默认控制器View背景颜色是[UIColorclearColor]2loadV
- 对象提前释放的发现和处理2019-08-27
雪里的懒猪
(void)viewDidLoad{[superviewDidLoad];self.view.backgroundColor=[UIColorclearColor];[selfinitView];SetRootViewControllerHandle*handle=[[SetRootViewControllerHandlealloc]init];[handlesetRootViewControll
- expdp(impdp)中的特殊字符转义
foxytale
服务器expdpparfile转义
密码转义expdpaa/"""abcdf$@#$Q41"""@orclexpdp'ultranms/"Ultra@Nms"'expdp"/assysdba"expdp\'\/assysdba\''expdp'/assysdba'这些都是针对密码的转义query转义query=DH.IERP_WO_SN_USER:\"wherecreation_date\>"'23-SEP-15'"\",DH.WI
- 【Oracle】PL/SQL语法、存储过程,触发器
想当运维的程序猿
oracle数据库
一、Oracle数据类型Orcle数据类型说明类比MySQL数据类型字符型CHAR固定长度的字符类型CHAR字符型VARCHAR2可变长度的字符类型VARCHAR字符型LONG大文本类型,最大2G数值型NUMBER数值类型,整数小数都可以,number(5)表示长度5的整数,number(5,2)表示共5位,含2位小数INT存整数,FLOAT、DOUBLE存小数日期型DATE日期时间型,精确到秒日
- sql查询结果跟in传入参数顺序一致
见未见过的风景
#sqlsql数据库
Orcle、postgresql、td-sql中可以使用如下语句selectnamefromtbl_user_infowhereidin(4,3,1)orderbyinstr('4,3,1',id);查询结果:
- Oracle与Redis Enterprise协同,作为企业缓存解决方案
虹科电子科技
云科技缓存oracleredis数据库
来源:虹科云科技虹科干货丨Oracle与RedisEnterprise协同,作为企业缓存解决方案欢迎关注虹科,为您提供最新资讯!单独使用Oracle作为企业缓存数据库时,会出现哪些问题呢?使用RedisEnterprise与Oracle共同用作企业级缓存或副本数据库,会出现哪些喜人的提升呢?Orcle配合使用RedisEnterprise,为什么能够打造更快、更高效、更具成本效益的现代企业数据库呢
- Oracle数据库自动备份脚本linux
尘尘程程
1.脚本内容:#!/bin/shecho"备份脚本开始启动..."#打印备份进度echo"设置系统环境变量..."#系统环境变量exportORACLE_SID=orclexportORACLE_HOME=/home/oracle/oracleexportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/lib:/usr/lib:/usr/loc
- 【Kingbase FlySync】命令模式:部署双轨并行,并实现切换同步
DBA圈小圈
KingbaseFlySync金仓数据库KingbaseESOracle命令模式linuxoracleetl数据库
【KingbaseFlySync】命令模式:安装部署同步软件,实现Oracle到KES实现同步双轨并行方案说明一.准备工作二.环境说明三.目标实操(1).准备安装环境Orcle服务器(Oracle40)1.上传所有工具包2.操作系统配置a.增加flysync用户、设置密码b.配置环境变量c.调整limits.confd.hosts文件e.配置hostnamef.授权flysync访问redog.安
- “CleaningStaffServices“ app Tech Support(URL)
weixin_42782982
前端
hisisasoftwarethatprovidesdoor-to-doorcleaningservicesforSingaporeanChinese,wherecleaningpersonnelarescheduledthroughtheappandpaidoffline.Ifyouhaveanyquestions,youcaneitherleaveamessageorsendthequesti
- 找不到Oracle所有服务,请问安装完orcle后在window服务里找不到OracleService服务?
PeterPan(fake)
找不到Oracle所有服务
Oracle新手最经常碰到的6个错误及解决方案没有人会否认ORACLE是全球最有影响的数据库产品之一;不过好的东西似乎总不是那么好用(初看起来如此),甚至有些无情--总会给layman们一个个无情的错误号。下面是我个人的总结,条条有用,希望能给初学者一点启示。关于“好的东西似乎总不是那么好用(初看起来如此)”的一个笑话:在参加IBMDB2512、513培训前,在校园网上下载到了安装程序,不过任凭我
- iOS webView 底部出现黑条
OneStepAway
self.hidesBottomBarWhenPushed=YES;对,没错加这一句就好了.web.opaque=NO;web.backgroundColor=[UIColorclearColor];也可以但是问题解决的并不彻底
- iOS 透明tabbar _UIBarBackground透明化
Flawless_00
在自定义的tabbar的.m文件中[selfsetBackgroundImage:[UIImageimageWithColor:[UIColorclearColor]size:CGSizeMake(SCREEN_WIDTH,TabBarHeight)]];//背景颜色处理self.backgroundColor=[UIColorwhiteColor];UIImage的分类中的颜色转图片的方法+(U
- 黑马旅游网_项目学习_1_orcle数据库建表
追寻梦想的蜗牛
黑马旅游网数据库学习oracle
用户表tab_user建表语句:createtabletab_user(uridnumber(10),usernamevarchar2(100),passwordvarchar2(32),namevarchar2(100),birthdaydate,sexvarchar2(1),telephonevarchar2(11),emailvarchar2(100),statusvarchar2(1),c
- 伊卡莱姆的ScalersTalk第四轮新概念朗读持续力训练Day216L54-2 20190511
伊卡莱姆
练习材料:L54-2:Instinctorcleverness?Weenjoyreadingaboutthem,especiallywhenwefindthat,liketheprayingmantis,theyleadperfectlyhorriblelives.Weenjoystaringatthem,entrancedastheygoabouttheirbusiness,unaware(we
- linux输文件名字快捷键,linux笔记(一)——基本命令和快捷键
steaven lee
linux输文件名字快捷键
linux笔记(一)1.常用BASH快捷键编辑命令快捷键作用Ctrl+a移到命令行首Ctrl+e移到命令行尾Ctrl+xx在命令行首和光标之间移动Ctrl+u从光标处删除至命令行首Ctrl+k从光标处删除至命令行尾重新执行命令快捷键作用Ctrl+r逆向搜索命令历史Ctrl+g从历史搜索模式退出控制命令快捷键作用Ctrl+lorclear清屏Ctrl+s阻止屏幕输出Ctrl+q允许屏幕输出Ctrl+
- oracle sql developer 执行sql语句,如何使用SQL Developer执行SQL语句(上)
weixin_39859988
oraclesqldeveloper执行sql语句
本章摘自Murach的《OrcleSQL和PL/SQL》一书,描述了如何使用OracleSQLDeveloper以及其它工具。在这一部分,我们将会学习如何使用SQLDeveloper来输入并执行SQL语句及脚本。如何使用摘录窗口,解决常见的语法错误等内容。在你回顾数据库设计的同时,SQLDeveloper还是一个很好的可输入并运行SQL语句的工具。在接下来的部分你将学习到。如何输入并执行一条SQL
- Effective Java 读书笔记(二)
ChaosAlaska
ForCleanCode为笔者读书总结,出于自身理解目的总结!JoshBloch.jpg一丶用私有构造期或者枚举强化Singleton属性。1丶单列:仅仅被实例化一次的类。在JAVA1.5之前实现单列有两种常见方式:1.第一种方式:公有域。/***Createdbyzhaoyuanchaoon2018/5/11.*1丶私有化构造器*2丶唯一得静态成员INSTANCE确保访问了唯一实例*/publi
- oculus go_如何在Oculus Go上查看或清除浏览器历史记录
culun797375
javapythonlinuxhtml5运维
oculusgoWell,you’vereallydoneitthistime.Yousearchedforsomethingembarrassing—like“Linux”—onyourOculus,andnowit’sinyoursearchhistory.Whatareyougoingtodo?Luckily,we’vegottheinstructionsforclearingyourbro
- ORCLE中ALTER、MODIFY和UPDATE的区别
氵苦小瓜
ORCLE中ALTER、MODIFY和UPDATE的区别1、modify是修改字段类型和长度的(即修改字段的属性)。2、alter是修改表的数据结构(modify是alter的一种用法)。sql:altertabletablenamemodify(namevarchar2(20));解释:修改tablename表中name字段的长度为20个字符3、update是修改数据内容的。sql:update
- 安装数据库首次应用
Array_06
javaoraclesql
可是为什么再一次失败之后就变成直接跳过那个要求
enter full pathname of java.exe的界面
这个java.exe是你的Oracle 11g安装目录中例如:【F:\app\chen\product\11.2.0\dbhome_1\jdk\jre\bin】下的java.exe 。不是你的电脑安装的java jdk下的java.exe!
注意第一次,使用SQL D
- Weblogic Server Console密码修改和遗忘解决方法
bijian1013
Welogic
在工作中一同事将Weblogic的console的密码忘记了,通过网上查询资料解决,实践整理了一下。
一.修改Console密码
打开weblogic控制台,安全领域 --> myrealm -->&n
- IllegalStateException: Cannot forward a response that is already committed
Cwind
javaServlets
对于初学者来说,一个常见的误解是:当调用 forward() 或者 sendRedirect() 时控制流将会自动跳出原函数。标题所示错误通常是基于此误解而引起的。 示例代码:
protected void doPost() {
if (someCondition) {
sendRedirect();
}
forward(); // Thi
- 基于流的装饰设计模式
木zi_鸣
设计模式
当想要对已有类的对象进行功能增强时,可以定义一个类,将已有对象传入,基于已有的功能,并提供加强功能。
自定义的类成为装饰类
模仿BufferedReader,对Reader进行包装,体现装饰设计模式
装饰类通常会通过构造方法接受被装饰的对象,并基于被装饰的对象功能,提供更强的功能。
装饰模式比继承灵活,避免继承臃肿,降低了类与类之间的关系
装饰类因为增强已有对象,具备的功能该
- Linux中的uniq命令
被触发
linux
Linux命令uniq的作用是过滤重复部分显示文件内容,这个命令读取输入文件,并比较相邻的行。在正常情 况下,第二个及以后更多个重复行将被删去,行比较是根据所用字符集的排序序列进行的。该命令加工后的结果写到输出文件中。输入文件和输出文件必须不同。如 果输入文件用“- ”表示,则从标准输入读取。
AD:
uniq [选项] 文件
说明:这个命令读取输入文件,并比较相邻的行。在正常情况下,第二个
- 正则表达式Pattern
肆无忌惮_
Pattern
正则表达式是符合一定规则的表达式,用来专门操作字符串,对字符创进行匹配,切割,替换,获取。
例如,我们需要对QQ号码格式进行检验
规则是长度6~12位 不能0开头 只能是数字,我们可以一位一位进行比较,利用parseLong进行判断,或者是用正则表达式来匹配[1-9][0-9]{4,14} 或者 [1-9]\d{4,14}
&nbs
- Oracle高级查询之OVER (PARTITION BY ..)
知了ing
oraclesql
一、rank()/dense_rank() over(partition by ...order by ...)
现在客户有这样一个需求,查询每个部门工资最高的雇员的信息,相信有一定oracle应用知识的同学都能写出下面的SQL语句:
select e.ename, e.job, e.sal, e.deptno
from scott.emp e,
(se
- Python调试
矮蛋蛋
pythonpdb
原文地址:
http://blog.csdn.net/xuyuefei1988/article/details/19399137
1、下面网上收罗的资料初学者应该够用了,但对比IBM的Python 代码调试技巧:
IBM:包括 pdb 模块、利用 PyDev 和 Eclipse 集成进行调试、PyCharm 以及 Debug 日志进行调试:
http://www.ibm.com/d
- webservice传递自定义对象时函数为空,以及boolean不对应的问题
alleni123
webservice
今天在客户端调用方法
NodeStatus status=iservice.getNodeStatus().
结果NodeStatus的属性都是null。
进行debug之后,发现服务器端返回的确实是有值的对象。
后来发现原来是因为在客户端,NodeStatus的setter全部被我删除了。
本来是因为逻辑上不需要在客户端使用setter, 结果改了之后竟然不能获取带属性值的
- java如何干掉指针,又如何巧妙的通过引用来操作指针————>说的就是java指针
百合不是茶
C语言的强大在于可以直接操作指针的地址,通过改变指针的地址指向来达到更改地址的目的,又是由于c语言的指针过于强大,初学者很难掌握, java的出现解决了c,c++中指针的问题 java将指针封装在底层,开发人员是不能够去操作指针的地址,但是可以通过引用来间接的操作:
定义一个指针p来指向a的地址(&是地址符号):
- Eclipse打不开,提示“An error has occurred.See the log file ***/.log”
bijian1013
eclipse
打开eclipse工作目录的\.metadata\.log文件,发现如下错误:
!ENTRY org.eclipse.osgi 4 0 2012-09-10 09:28:57.139
!MESSAGE Application error
!STACK 1
java.lang.NoClassDefFoundError: org/eclipse/core/resources/IContai
- spring aop实例annotation方法实现
bijian1013
javaspringAOPannotation
在spring aop实例中我们通过配置xml文件来实现AOP,这里学习使用annotation来实现,使用annotation其实就是指明具体的aspect,pointcut和advice。1.申明一个切面(用一个类来实现)在这个切面里,包括了advice和pointcut
AdviceMethods.jav
- [Velocity一]Velocity语法基础入门
bit1129
velocity
用户和开发人员参考文档
http://velocity.apache.org/engine/releases/velocity-1.7/developer-guide.html
注释
1.行级注释##
2.多行注释#* *#
变量定义
使用$开头的字符串是变量定义,例如$var1, $var2,
赋值
使用#set为变量赋值,例
- 【Kafka十一】关于Kafka的副本管理
bit1129
kafka
1. 关于request.required.acks
request.required.acks控制者Producer写请求的什么时候可以确认写成功,默认是0,
0表示即不进行确认即返回。
1表示Leader写成功即返回,此时还没有进行写数据同步到其它Follower Partition中
-1表示根据指定的最少Partition确认后才返回,这个在
Th
- lua统计nginx内部变量数据
ronin47
lua nginx 统计
server {
listen 80;
server_name photo.domain.com;
location /{set $str $uri;
content_by_lua '
local url = ngx.var.uri
local res = ngx.location.capture(
- java-11.二叉树中节点的最大距离
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
public class MaxLenInBinTree {
/*
a. 1
/ \
2 3
/ \ / \
4 5 6 7
max=4 pass "root"
- Netty源码学习-ReadTimeoutHandler
bylijinnan
javanetty
ReadTimeoutHandler的实现思路:
开启一个定时任务,如果在指定时间内没有接收到消息,则抛出ReadTimeoutException
这个异常的捕获,在开发中,交给跟在ReadTimeoutHandler后面的ChannelHandler,例如
private final ChannelHandler timeoutHandler =
new ReadTim
- jquery验证上传文件样式及大小(好用)
cngolon
文件上传jquery验证
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="jquery1.8/jquery-1.8.0.
- 浏览器兼容【转】
cuishikuan
css浏览器IE
浏览器兼容问题一:不同浏览器的标签默认的外补丁和内补丁不同
问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大。
碰到频率:100%
解决方案:CSS里 *{margin:0;padding:0;}
备注:这个是最常见的也是最易解决的一个浏览器兼容性问题,几乎所有的CSS文件开头都会用通配符*来设
- Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
daizj
shell$#$?特殊变量
前面已经讲到,变量名只能包含数字、字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。例如,$ 表示当前Shell进程的ID,即pid,看下面的代码:
$echo $$
运行结果
29949
特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个
- 程序设计KISS 原则-------KEEP IT SIMPLE, STUPID!
dcj3sjt126com
unix
翻到一本书,讲到编程一般原则是kiss:Keep It Simple, Stupid.对这个原则深有体会,其实不仅编程如此,而且系统架构也是如此。
KEEP IT SIMPLE, STUPID! 编写只做一件事情,并且要做好的程序;编写可以在一起工作的程序,编写处理文本流的程序,因为这是通用的接口。这就是UNIX哲学.所有的哲学真 正的浓缩为一个铁一样的定律,高明的工程师的神圣的“KISS 原
- android Activity间List传值
dcj3sjt126com
Activity
第一个Activity:
import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import a
- tomcat 设置java虚拟机内存
eksliang
tomcat 内存设置
转载请出自出处:http://eksliang.iteye.com/blog/2117772
http://eksliang.iteye.com/
常见的内存溢出有以下两种:
java.lang.OutOfMemoryError: PermGen space
java.lang.OutOfMemoryError: Java heap space
------------
- Android 数据库事务处理
gqdy365
android
使用SQLiteDatabase的beginTransaction()方法可以开启一个事务,程序执行到endTransaction() 方法时会检查事务的标志是否为成功,如果程序执行到endTransaction()之前调用了setTransactionSuccessful() 方法设置事务的标志为成功则提交事务,如果没有调用setTransactionSuccessful() 方法则回滚事务。事
- Java 打开浏览器
hw1287789687
打开网址open浏览器open browser打开url打开浏览器
使用java 语言如何打开浏览器呢?
我们先研究下在cmd窗口中,如何打开网址
使用IE 打开
D:\software\bin>cmd /c start iexplore http://hw1287789687.iteye.com/blog/2153709
使用火狐打开
D:\software\bin>cmd /c start firefox http://hw1287789
- ReplaceGoogleCDN:将 Google CDN 替换为国内的 Chrome 插件
justjavac
chromeGooglegoogle apichrome插件
Chrome Web Store 安装地址: https://chrome.google.com/webstore/detail/replace-google-cdn/kpampjmfiopfpkkepbllemkibefkiice
由于众所周知的原因,只需替换一个域名就可以继续使用Google提供的前端公共库了。 同样,通过script标记引用这些资源,让网站访问速度瞬间提速吧
- 进程VS.线程
m635674608
线程
资料来源:
http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001397567993007df355a3394da48f0bf14960f0c78753f000 1、Apache最早就是采用多进程模式 2、IIS服务器默认采用多线程模式 3、多进程优缺点 优点:
多进程模式最大
- Linux下安装MemCached
字符串
memcached
前提准备:1. MemCached目前最新版本为:1.4.22,可以从官网下载到。2. MemCached依赖libevent,因此在安装MemCached之前需要先安装libevent。2.1 运行下面命令,查看系统是否已安装libevent。[root@SecurityCheck ~]# rpm -qa|grep libevent libevent-headers-1.4.13-4.el6.n
- java设计模式之--jdk动态代理(实现aop编程)
Supanccy2013
javaDAO设计模式AOP
与静态代理类对照的是动态代理类,动态代理类的字节码在程序运行时由Java反射机制动态生成,无需程序员手工编写它的源代码。动态代理类不仅简化了编程工作,而且提高了软件系统的可扩展性,因为Java 反射机制可以生成任意类型的动态代理类。java.lang.reflect 包中的Proxy类和InvocationHandler 接口提供了生成动态代理类的能力。
&
- Spring 4.2新特性-对java8默认方法(default method)定义Bean的支持
wiselyman
spring 4
2.1 默认方法(default method)
java8引入了一个default medthod;
用来扩展已有的接口,在对已有接口的使用不产生任何影响的情况下,添加扩展
使用default关键字
Spring 4.2支持加载在默认方法里声明的bean
2.2
将要被声明成bean的类
public class DemoService {