第二天、用户管理模型
1. 用户管理模型
1.1 模型分析
业务是什么?业务就是用户需求。
用户角色:卫生局、卫生院、卫生室、供货商、系统管理员
用户:
登陆系统进行业务操作。
实体分析:
系统用户表SYSUSER:
记录系统中所有用户
Id:主键
USERID 账号
USERNAME 名称
GROUPID:用户类别 0:系统管理员,1:卫生局 2:卫生院 3:卫生室 4:供货商
SYSID:系统用户所属的单位
根据GROUPID判断,所对应的单位
监督单位表USERJD: Id:主键 MC: 单位名称: DQ:管理区域
医院单位表USERYY: Id:主键 MC: 单位名称: DQ:所属区域
供货商单位表USERGYS: Id:主键 Mc:单位名称:
基础表: 行政区域表BSS_SYS_AREA: 市(一级)、县/乡/镇(二级)、村(三级) 树型结构。 区域id规则:XX.XX.XX. 使用规则方便: 比如查询某个镇的区域: select * from BSS_SYS_AREA t where areaid like '1.1.%' and t.arealevel='3'
管理关系:
市卫生局管理本市所有卫生院
卫生院管理本辖区的卫生室
通过在监督单位 和医院单位表中添加DQ(地区)字段,实现行政管理关系。
比如:查询某镇下的医院
select * from USERYY t where t.dq like ‘1.1.%’
供货关系: 指定供货商供货的区域 供货商供货区表USERGYSAREA:
USERGYSID:供货商id(外键,指向供货商单位表) AREAID:区域id(外键,指定区域表BSS_SYS_AREA)
注意:业务表(比如采购单表),要和单位表关联,记录某单位所采购的药品,而不是记录某个用户所采购药品。 用户登陆系统如何用户所属的单位? 根据用户账号查询用户表,得到sysid(单位id)
1.2 表结构
2. 用户查询列表
关于原型:
美工主要做CSS(样式),将某一类页面做一个样式页面(html),程序员在表现层,将html(静态页面)改为动态jsp。
常见javaEE系统页面原型:
首页框架:由UI的人员实现
表单:程序员主要实现表单
查询列表:程序员主要实现查询列表
如果美工没有提供静态页面,就可以上网参考现成的页面,加以修改,创新实现!!!!
2.1 需求
根据自定义查询,查询用户信息
内容包括:
账号
名称
用户类型
所属单位
状态
用户添加:
2.2 分析开发
2.2.1 Dao:
使用mybatis查询用户列表。
是使用逆向生成代码,还是自定义?
需要多表查询,需要自定义mapper
Sql语句:
属于多表查询,有的字段需要从其他表查到
主查询表:SYSUSER
关联查询表:userjd(监督单位表),useryy(医院表)
如果主查询表的字段通过关联查询表能查到(且只能查询一条),可以使用内链接
如果用户是系统管理员,就不能从单位表查询到,所以要外链接
—子查询方法
select * from (select SYSUSER.id,SYSUSER.userid,SYSUSER.username,SYSUSER.groupid,SYSUSER.sysid,decode(SYSUSER.Groupid,'1',(select mc from userjd where id = sysuser.sysid),'2',(select mc from userjd where id = sysuser.sysid),'3',(select mc from useryy where id = sysuser.sysid),'4',(select mc from usergys where id = sysuser.sysid)) sysmcfrom SYSUSER)sysuser where sysuser.sysmc like '%卫生室%'
将用户管理模块的所有表逆向工程。
自定义mapper.xml:
自定义的mapper命名规则:XXXMapperCustom.xml
在yycg\base\pojo\vo:存储自定义pojo类
查询结果集统一采用resultType,需要扩展一个类
扩展类,命名规则:XXXXCustom.java ,用于提交信息、查询条件,原来生成po类不够用要使用扩展
通常自定义扩展类需要继承查询列较多的po类。
parameterType 输入参数类 统一采用包装类。
XXXQueryVo.java 用于页面向action传递参数,将参数传到mybatis。
SysuserMapperCustom.xml
<!-- 用户查询条件 通常情况,为了提高 sql片段可重用性,按单表创建sql片段 --><sql id="query_sysuser_where"><if test="sysuserCustom!=null"><if test="sysuserCustom.userid!=null and sysuserCustom.userid!=''">and sysuser.userid = #{sysuserCustom.userid}</if><if test="sysuserCustom.username!=null and sysuserCustom.username!=''">and sysuser.username = #{sysuserCustom.username}</if><if test="sysuserCustom.sysmc!=null and sysuserCustom.sysmc!=''">and sysuser.sysmc like '%${sysuserCustom.sysmc}%'</if><if test="sysuserCustom.groupid!=null and sysuserCustom.groupid!=''">and sysuser.groupid = #{sysuserCustom.groupid}</if></if></sql>
<select id="findSysuserList" parameterType="yycg.base.pojo.vo.SysuserQueryVo"resultType="yycg.base.pojo.vo.SysuserCustom">select * from (select SYSUSER.id,SYSUSER.userid,SYSUSER.username,SYSUSER.groupid,SYSUSER.sysid,decode(SYSUSER.Groupid,'1',(select mcfrom userjd where id = sysuser.sysid),'2',(select mc from userjd whereid = sysuser.sysid),'3',(select mc from useryy where id =sysuser.sysid),'4',(select mc from usergys where id = sysuser.sysid))Sysmc (语句起别名)from SYSUSER)sysuser<where><include refid="query_sysuser_where" /></where></select>
mapper.java接口:
2.2.2 service
接口功能:根据条件查询用户列表
接口参数:查询条件,接口参数尽量细化。
建议:Service接口参数尽量使用简单类型,不要使用Map集合类型。
注意:service开发系统核心
2.2.3 action
在页面上使用jquery easyui的datagrid显示数据列表。
数据查询列表,action就需要创建两个方法:
显示查询页面
Datagrid加载json结果集:
如何将java对象转成datagrid要求json结果集:
{
“total”:239,
“rows”:[
]
}
使用系统统一的一个结果类:DataGridResultInfo
此类有两个属性total和rows(list集合)
DataGridResultInfo经过@responseBody注解自动转json,格式就是:
Java对象的属性作为json的key,对list集合转json后就成了数组。
{ "total":239, "rows":[ ]
}
@responseBody内部使用两个jar包转json
2.2.4 页面
通过jquery easyui的datagrid加载数据列表。
第0步:确定页面布局
根据美工提供html静态页面,进行编写。
第一步:定义datagrid的列
第二步:定义datagrid的工具栏
第三步:加载datagrid
第四步:编写查询方法
点击查询按钮执行js方法
调用datagrid的load加载datagrid数据
datagrid的load方法需要传递参数类型是json(查询条件)
为了方便组织json查询条件,使用custom.box.main.js 将form表单数据提取出来,自动组成一个json
Jsp页面中
(将form表单的查询条件数据使用serializeJsaon( )方法转成Jason数据,然后加载查询)
2.3 数据列表的分页
使用oracle的分页实现。
2.3.1 dao
修改SysuserMapperCustom.xml中findSysuserList添加分页支持。
Oracle分页需要起始和结束下标,需要根据当前页码、每页显示数量、总条数(符合查询条件记录数)
使用PageQuery.java计算起始和结束的下标:
使用方法:
New构造pageQuery对象,调用setPageParams方法,传入总条数、每页显示数量、当前页码,该对象中的属性PageQuery_start和PageQuery_end计算出了起始和结束的下标。
将PageQuery对象传入mybatis,将此对象作为包装对象的属性。
Oracle分页sql:
分页mapper.xml
分页头和分页的尾。
<!-- 用户查询 --><select id="findSysuserList" parameterType="yycg.base.pojo.vo.SysuserQueryVo"resultType="yycg.base.pojo.vo.SysuserCustom"><!-- 分页头 --><if test="pageQuery!=null">select page_2.*from (select page_1.*, rownum page_numfrom (</if>select * from (select SYSUSER.id,SYSUSER.userid,SYSUSER.username,SYSUSER.groupid,sysuser.USERSTATE,SYSUSER.sysid,decode(SYSUSER.Groupid,'1',(select mcfrom userjd whereid = sysuser.sysid),'2',(select mc from userjd whereid =sysuser.sysid),'3',(select mc from useryy where id =sysuser.sysid),'4',(select mc from usergys where id = sysuser.sysid))sysmcfromSYSUSER)sysuser<where><include refid="query_sysuser_where" /></where><!-- 分页尾 --><if test="pageQuery!=null">) page_1<![CDATA[where rownum <= ${pageQuery.PageQuery_end}) page_2where page_2.page_num >= ${pageQuery.PageQuery_start}]]></if></select>
总条数:符合条件记录数
在mapper.xml中创建一个select,返回总条数
<!-- 查询列表的总记录数 --><select id="findSysuserCount" parameterType="yycg.base.pojo.vo.SysuserQueryVo"resultType="int">select count(*) from (select SYSUSER.id,SYSUSER.userid,SYSUSER.username,SYSUSER.groupid,sysuser.USERSTATE,SYSUSER.sysid,decode(SYSUSER.Groupid,'1',(select mcfrom userjd whereid = sysuser.sysid),'2',(select mc from userjd whereid =sysuser.sysid),'3',(select mc from useryy where id =sysuser.sysid),'4',(select mc from usergys where id = sysuser.sysid))sysmcfromSYSUSER)sysuser<where><include refid="query_sysuser_where" /></where></select>
2.3.2 service
2.3.3 action
调用service执行分页查询,准备PageQuery对象数据(包括起始和结束下标)。
先调用service查询出总数。
Datagrid加载数据列表时,固定向action方法传两个分页参数:
当前页码和每页显示个数
Action分页查询代码:
//用户查询页面的结果集//最终DataGridResultInfo通过@ResponseBody将java对象转成json@RequestMapping("/queryuser_result")public @ResponseBody DataGridResultInfo queryuser_result(SysuserQueryVo sysuserQueryVo,int page,//页码int rows//每页显示个数)throws Exception{//非空校验sysuserQueryVo = sysuserQueryVo!=null?sysuserQueryVo:new SysuserQueryVo();//查询列表的总数int total = userService.findSysuserCount(sysuserQueryVo);PageQuery pageQuery = new PageQuery();pageQuery.setPageParams(total, rows, page);sysuserQueryVo.setPageQuery(pageQuery);//分页查询,向sysuserQueryVo中传入pageQueryList<SysuserCustom> list = userService.findSysuserList(sysuserQueryVo);DataGridResultInfo dataGridResultInfo = new DataGridResultInfo();//填充 totaldataGridResultInfo.setTotal(total);//填充 rowsdataGridResultInfo.setRows(list);return dataGridResultInfo;}
3. 用户添加
3.1 需求
添加用户:
用户账号(输入)、用户名称(输入)、用户密码(输入)、用户类型(下拉)、用户单位名称(输入)、用户状态(单选)
用户类型:
前置条件(操作约束):
用户账号不允许重复
根据用户类型,输入单位名称必须存在对应的单位表
后置条件(数据库操作):
向sysuser表插入一条记录
3.2 分析开发
3.2.1 dao
向sysuser表插入一条记录
使用逆向工程生成的mapper实现
3.2.2 service
接口功能:添加系统用户
操作参数:用户信息,使用SysuserCustom
接口约束:
用户账号不允许重复
根据用户类型,输入单位名称必须存在对应的单位表
代码:
注意在service进行数据合法性校验。
遇到异常要抛出异常信息。
public void insertSysuser(SysuserCustom sysuserCustom) throws Exception {//参数校验//通用的参数合法校验,非空校验,长度校验//...使用一些工具类来完成//数据业务合法性校验//账号唯一性校验,查询数据库校验出来//思路:根据用户账号查询sysuser表,如果查询到说明 账号重复Sysuser sysuser = this.findSysuserByUserid(sysuserCustom.getUserid());if(sysuser!=null){//账号重复//抛出异常,可预知异常throw new Exception("账号重复");}//根据用户类型,输入单位名称必须存在对应的单位表String groupid = sysuserCustom.getGroupid();//用户类型String sysmc = sysuserCustom.getSysmc();//单位名称if(groupid.equals("1") || groupid.equals("2")){//监督单位//根据单位名称查询单位信息Userjd userjd = this.findUserjdByMc(sysmc);if(userjd==null){//抛出异常,可预知异常throw new Exception("单位名称输入错误");}}else if(groupid.equals("3")){//卫生室//根据单位名称查询单位信息Useryy useryy = this.findUseryyByMc(sysmc);if(useryy==null){//抛出异常,可预知异常throw new Exception("单位名称输入错误");}}else if(groupid.equals("4")){//供货商//根据单位名称查询单位信息Usergys usergys = this.findUsergysByMc(sysmc);if(usergys==null){//抛出异常,可预知异常throw new Exception("单位名称输入错误");}}//设置主键sysuserCustom.setId(UUIDBuild.getUUID());sysuserMapper.insert(sysuserCustom); }
3.2.3 action
添加用户,写两个方法:
进入添加页面方法
此方法准备数据在添加页面显示。
提交方法:
调用service类提交,将service返回的结果在页面展示,如果service抛出异常,在action中捕获异常。
Action方法中注意对异常处理,异常信息就是service抛出的异常。
//添加用户提交//提交 结果转json输出到页面//提交表单数据统一使用包装类@RequestMapping("/addsysusersubmit")public @ResponseBody Map<String,Object> addsysusersubmit(SysuserQueryVo sysuserQueryVo)throws Exception{//提示用户信息String message = "操作成功!!";int type=0;//成功try {//调用service执行用户添加userService.insertSysuser(sysuserQueryVo.getSysuserCustom());} catch (Exception e) {//输出异常信息e.printStackTrace();//对应异常信息进行解析message = e.getMessage();type=1;//失败}//将执行结果返回页面Map<String, Object> result_map = new HashMap<String, Object>();result_map.put("type", type);result_map.put("message", message);return result_map;}
3.2.4 页面
用户添加页面
在用户列表页面中,点击“添加”,打开添加页面。
使用如下方法打开一个新窗口:
//参数:窗口的title、宽、高、url地址
createmodalwindow(“添加用户信息”, 800, 250, ‘${baseurl}user/adduser.action’);
createmodalwindow:使用jquery easyui的window组件,里边拼接一个html串,串就是ifram,ifram的链接就是用户添加的url
用户添加提交
页面提交给服务端是key/value数据,服务端返回是json。
为什么服务要返回json?
Json作为接口交互通用格式越来越流行,在页面通过js解析json数据非常方便。
本系统采用post提交,使用jquery提供一个ajax的form提交组件。
封装一个js方法,用于提交form表单的数据,进行ajax提交,内部使用上边form提交的组件。
/*
*form提交(post方式)
*
*formId form Id
*callbackfn 回调函数名(要求函数必须有参数且不能多与两个,一个参数时参数为响应文本,两个参数时第一个参数为响应文本)
*param 回调函数参数(如果为null,那么调用一个参数的回调函数,否则调用两个参数的回调函数)
*dataType:预期服务器返回的 数据类型
*/
function jquerySubByFId(formId,callbackFn,param,dataType){var formObj = jQuery("#" + formId);var options = {dataType: ("undefined"!=dataType && null!=dataType)?dataType:"json",success: function(responseText) {if(param === null){callbackFn(responseText);}else{callbackFn(responseText,param);}}};formObj.ajaxSubmit(options);
}在用户添加页面上编写提交方法:function sysusersave(){//准备使用jquery 提供的ajax Form提交方式//将form的id传入,方法自动将form中的数据组成成key/value数据,通过ajax提交,提交方法类型为form中定义的method,//使用ajax form提交时,不用指定url,url就是form中定义的action//此种方式和原始的post方式差不多,只不过使用了ajax方式//第一个参数:form的id//第二个参数:sysusersave_callback是回调函数,sysusersave_callback当成一个方法的指针//第三个参数:传入的参数, 可以为空//第四个参数:dataType预期服务器返回的数据类型,这里action返回json//根据form的id找到该form的action地址jquerySubByFId('userform',sysusersave_callback,null,"json");}//编写提交回调方法function sysusersave_callback(data){alert(data.message);
}
在回调方法中,使用jqueryeasyui的提示方法。
4. 统一异常处理
4.1 统一异常结果类型
Java中进行异常处理:
一类是可预知的异常,程序员在编码时,主动抛出的异常,为了给用户操作提示,提前检查代码中可能存在异常。
通过开发中,采用自定义的异常类,每个异常类表示每一类异常信息。类需要继承Exception类。
本系统采用统一异常类,提供一个属性标识异常类。
另一类是不可预知异常,就是runtimeException异常,通过提高代码编写质量来避免此类异常,也可通过后期测试 人员进行系统功能测试对runtime异常进行避免。
如何使用异常类?
在service中要抛出此异常类。
在action中捕获系统自定义异常,解析系统自定义异常。
解析系统自定义异常过程:
如果抛出的ExceptionResultInfo系统自定义异常,直接获取该异常信息即可。
如果不是抛出的ExceptionResultInfo系统自定义异常,重新构造一个“未知错误异常!”。
将异常信息或成功信息返回到页面:
统一使用类SubmitResultInfo,提交类的方法统一使用该类型作为返回值类型。
由于action中所有的提交类方法统一返回SubmitResultInfo,所以在页面要统一使用一个方法解析json结果。
修改回调函数:
function sysusersave_callback(data){message_alert(data);
}
4.2 统一异常处理器
Springmvc提供统一处理器机制,springmvc的前端控制器在调用适配器,去调用action,过程中如果发生异常,前端控制器交给异常处理器进行异常处理。
前端控制器源代码:
4.2.1 自定义异常处理器流程(掌握)
对dao、service及action所抛出的异常进行统一处理,在action中就不需要添加try{}catch{}捕获的代码。
4.2.1 自定义异常处理器编写
自定义全局异常处理器,实现HandlerExceptionResolver接口
public class ExceptionResolverCustom implements HandlerExceptionResolver {// json转换器// 将异常信息转jsonprivate HttpMessageConverter<ExceptionResultInfo> jsonMessageConverter;// 前端控制器调用此方法执行异常处理// handler,执行的action类就包装了一个方法(对应url的方法)@Overridepublic ModelAndView resolveException(HttpServletRequest request,HttpServletResponse response, Object handler, Exception ex) {// 输出 异常信息ex.printStackTrace();// 转成springmvc底层对象(就是对action方法的封装对象,只有一个方法)HandlerMethod handlerMethod = (HandlerMethod) handler;// 取出方法Method method = handlerMethod.getMethod();// 判断方法是否返回json// 只要方法上有responsebody注解表示返回json// 查询method是否有responsebody注解ResponseBody responseBody = AnnotationUtils.findAnnotation(method,ResponseBody.class);if (responseBody != null) {// 将异常信息转json输出return this.resolveJsonException(request, response, handlerMethod,ex);}// 这里说明action返回的是jsp页面// 解析异常ExceptionResultInfo exceptionResultInfo = resolveExceptionCustom(ex);// 将异常信息在异常页面显示request.setAttribute("exceptionResultInfo",exceptionResultInfo.getResultInfo());// 转向错误页面ModelAndView modelAndView = new ModelAndView();modelAndView.addObject("exceptionResultInfo",exceptionResultInfo.getResultInfo());modelAndView.setViewName("/base/error");// 逻辑视图名return modelAndView;}// 异常信息解析方法private ExceptionResultInfo resolveExceptionCustom(Exception ex) {ResultInfo resultInfo = null;if (ex instanceof ExceptionResultInfo) {// 抛出的是系统自定义异常resultInfo = ((ExceptionResultInfo) ex).getResultInfo();} else {// 重新构造“未知错误”异常resultInfo = new ResultInfo();resultInfo.setType(ResultInfo.TYPE_RESULT_FAIL);resultInfo.setMessage("未知错误!");}return new ExceptionResultInfo(resultInfo);}// 将异常信息转json输出private ModelAndView resolveJsonException(HttpServletRequest request,HttpServletResponse response, Object handler, Exception ex) {// 解析异常ExceptionResultInfo exceptionResultInfo = resolveExceptionCustom(ex);HttpOutputMessage outputMessage = new ServletServerHttpResponse(response);try {//将exceptionResultInfo对象转成json输出jsonMessageConverter.write(exceptionResultInfo, MediaType.APPLICATION_JSON, outputMessage);} catch (HttpMessageNotWritableException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return new ModelAndView();}public HttpMessageConverter<ExceptionResultInfo> getJsonMessageConverter() {return jsonMessageConverter;}public void setJsonMessageConverter(HttpMessageConverter<ExceptionResultInfo> jsonMessageConverter) {this.jsonMessageConverter = jsonMessageConverter;}}
4.2.2 统一异常处理器配置
在springmvc.xml配置统一异常处理器。
在web.xml中配置:
前端控制器知道全局异常处理器id为handlerExceptionResolver
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/springmvc.xml</param-value></init-param><init-param><param-name>detectAllHandlerExceptionResolvers</param-name><param-value>false</param-value></init-param></servlet>
detectAllHandlerExceptionResolvers:
屏蔽自动注册异常处理器,固定使用bean的id为handlerExceptionResolver的异常处理器。
4.2.3 统一异常处理器使用
系统中所有异常由全局异常处理器处理。
Dao方法向外抛出系统自定义异常。
Service方法向外抛出系统自定义异常。
Action方法向外抛出系统自定义异常。
4.2.4 统一异常处理器测试
1、 在action的提交方法中发生异常,由全局异常处理器进行处理。
2、在action返回jsp方法中发生异常,由全局异常处理器进行处理。
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- OpenCV图像处理---获取图片性质
import cv2 img = cv2.imread(../0.jpg)# 图片性质#rows,cols,channels rows, cols, channels = img.shape # 返回(310, 310, 3) print(rows) # 宽310(rows) print(cols) # 长310(cols) print(channels) #…...
2024/4/28 4:20:16 - 实验2-1-6 计算华氏温度 (5分)
实验2-1-6 计算华氏温度 (5分) 本题要求编写程序,计算摄氏温度26C 对应的华氏温度。计算公式:F=9C/5+32,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。 输入格式: 本题目没有输入。 输出格式: 按照下列格式输出 celsius = 26, fahr = 对应的华氏温度整数值代码…...
2024/4/20 16:59:54 - 并发编程应该是Java 后端工程必备的技能
解释一下每种状态:New: 刚创建而未启动的线程就是这个状态。由于一个线程只能被启动一次,因此一个线程只可能有一次在这个状态。 Runnable:如上图,这个状态实际是个复合状态,包含二个子状态:Ready 和 Running。Ready是就绪状态,可以被JVM 线程调度器(Scheduler) 进行调度…...
2024/4/28 12:54:51 - Jmeter==HTTP信息头管理器的作用
HTTP信息头管理器在Jmeter的使用过程中起着很重要的作用,通常我们在通过Jmeter向服务器发送http请求(get或者post)的时候,往往后端需要一些验证信息,比如说web服务器需要带过去cookie给服务器进行验证,一般就是放在请求头(header)中,因为对于此类请求,在Jmeter中就可…...
2024/4/14 12:49:40 - MySQL:事务
事务 概念:事务就是一组原子性的操作,这些操作要么全部发生,要么全部不发生。事务把数据库从一种一致性状态转换成另一种一致性状态 事务的四大特性(也叫 ACID): (1)原子性 事务的操作必须是具有原子性的,要么都执行成功,要么都执行失败,不能只完成部分,通过恢复机…...
2024/4/14 12:49:18 - HttpWebRequest 出错时获取相应的Response信息
HttpWebResponse response;try{response = (HttpWebResponse)webReq.GetResponse();}catch (WebException ex){response = (HttpWebResponse)ex.Response;}//在这里对接收到的页面内容进行处理using (StreamReader sr = new StreamReader(response.GetResponseStream(), encodi…...
2024/4/15 15:28:36 - spring bean生命周期之初始化
通过实现接口BeanPostProcessor的postProcessAfterInitialization方法,应用于bean加载过程中执行顺序:postProcessBeforeInitialization---->实现接口BeanPostProcessor,初始化前执行、@PostConstruct注解的方法(构造方法执行后执行)afterPropertiesSet:实现Initializin…...
2024/4/28 11:56:26 - 互联网数据库架构分享
导语:本文从互联网行业常用数据库、深入MySQL体系结构及分支版本、互联网常用数据库架构设计、互联网数据库架构方案实例几个方面对互联网数据库架构相关内容进行分享。...
2024/4/27 22:08:16 - MMU的寄存器学习
文章目录1、PAR_EL1, Physical Address Register 1、PAR_EL1, Physical Address Register 寄存器:寄存器读写: MRS <Xt>, PAR_EL1 MSR PAR_EL1, <Xt>SH : Shareability attribute, for the returned output address. Permitted values are: 0b00 Non-shareable. 0…...
2024/4/27 23:58:50 - 面向对象设计-依赖倒置原则
依赖倒置原则(Dependency Inversion Principle,DIP)的表述是指抽象不应到依赖细节;细节应当依赖于抽象。即要面向接口编程,不要针对具体的实现编程,这样可以最大程度降低模块之间的耦合。深入理解具体在Java程序代码中,如何理解面向接口编程?其实,简单的讲,就是使用J…...
2024/4/4 19:48:46 - 百度网盘如何关闭限速?
闲话不多说上截图...
2024/4/28 7:34:03 - hexo博客搭建(基于matery主题)
简介:博客搭建初学,互相进步。 以下是我的博客:欢迎大家参观。 我的博客 文章目录简介:博客搭建初学,互相进步。下载配置切换主题`_config.yml` 文件的其它修改建议:新建分类 categories 页新建标签 tags 页新建关于我 about 页新建留言板 contact 页(可选的)新建友情链…...
2024/4/19 23:09:23 - 多线程的应用——单例模式
单例模式包括:饿汉模式 懒汉模式饿汉模式 **理解:**所谓饿汉模式,说就是将实例在一开始就初始化好,不管后面需不需要使用。 public class Test {private static Test test = new Test();public Test(){}public static Test getTest(){return test;} }懒汉模式 理解:所谓懒…...
2024/4/14 12:49:28 - 工作笔记Swagger和Restful
怎样用通俗的语言解释REST,以及RESTful Restful解释 Swagger简介 Swagger常用注解 利用WebMvcConfigurer添加自定义的Handler,Interceptor,ViewResolver,MessageConverter Springfox与swagger的整合使用与关系 Java web项目目录结构(基于idea)...
2024/4/28 12:11:15 - C 获取文件大小
int file_size(char* filename) {FILE *fp=fopen(filename,"r");if(!fp) return -1;fseek(fp,0L,SEEK_END);int size=ftell(fp);fclose(fp);return size; }返回值则是文件大小(单位:字节)...
2024/4/28 8:41:44 - Educational Codeforces Round 91 D. Berserk And Fireball
题目描述There are n warriors in a row. The power of the i-th warrior is ai. All powers are pairwise distinct. You have two types of spells which you may cast: Fireball: you spend x mana and destroy exactly k consecutive warriors; Berserk: you spend y mana,…...
2024/4/28 11:55:27 - 零伽壹链改深度解析 | 2023年区块链市场规模将突破160亿美元
据CB lnsights预测,到2023年,区块链解决方案方面上的支出有望达到160亿美元,该技术在58个行业中具有无限潜力。在过去几年里,包括三星、亚马逊、埃森哲、Facebook、IBM等主流企业都在开始涉足区块链行业。甚至是LG也进入该领域,使用了“结合人工智能和区块链的面部识别服务…...
2024/4/14 12:53:12 - 徐博鸿:7.13现货黄金行情走势分析及原油最新操作建议附指导策略
顺势时,市场造就你;逆势时,是市场教育你。别难过,市场的波动总有一段你看不懂,但是也总有一波你可以赚。你觉得今天没有赚钱,明天难道也一直亏损吗?你觉得今天抓不到的行情,永远都擦肩而过吗?交易当中或许有很多失望,但一定不能绝望,每天都是新的希望。金融市场博大…...
2024/4/27 23:09:42 - 2020高处安装、维护、拆除操作证考试及高处安装、维护、拆除模拟考试题库
题库来源:安全生产模拟考试一点通公众号小程序2020高处安装、维护、拆除操作证考试及高处安装、维护、拆除模拟考试题库,包含高处安装、维护、拆除操作证考试答案解析及高处安装、维护、拆除模拟考试题库练习。由安全生产模拟考试一点通公众号结合国家高处安装、维护、拆除考…...
2024/4/28 1:43:05 - 某垂直电商拍卖平台数仓架构及主题域划分
一、数仓架构1、贴源数据,添加时间戳 2、将ODS层经过质量检查、清洗、转换后,形成符合质量要求的公共数据中心。 统一表及字段命名规范 统一字段格式及度量 集成整合数据,使数据清晰明了 3、按主题及KPI指标对数据仓库层数据进行进一步转换,将指标与维度组成数据集市。这是…...
2024/4/18 11:56:09
最新文章
- 适用于Windows和Mac的十大误删除数据恢复软件
数据恢复是从辅助存储或可移动文件中找回丢失、删除或损坏的数据的过程。数据丢失的原因有很多。因此,有必要恢复已删除的数据。有各种可用的软件工具,使用户能够恢复任何类型的已删除数据。但是,任何数据恢复都有四个主要阶段。他们正在修复…...
2024/4/28 13:53:32 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - PHP+python高校教务处工作管理系统q535p
开发语言:php 后端框架:Thinkphp/Laravel 前端框架:vue.js 服务器:apache 数据库:mysql 运行环境:phpstudy/wamp/xammp等 系统根据现有的管理模块进行开发和扩展,采用面向对象的开发的思想和结构化的开发方…...
2024/4/26 8:31:01 - vue想要突破全局样式限制又不影响别的页面样式怎么办
<!-- 用scope盖不住全局,随意来个class匹配私定,搜索关键词:不要随便改,乱打class名 --> <style> .lkajsdfjkalsfhkljashkflhaskl .el-input.el-input--default.el-input--suffix { width: 160px !important; } …...
2024/4/28 8:37:11 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/4/28 13:52:11 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/4/28 3:28:32 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/26 23:05:52 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/4/28 13:51:37 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/27 17:58:04 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/27 14:22:49 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/28 1:28:33 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/27 9:01:45 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/27 17:59:30 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/4/25 18:39:16 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/28 1:34:08 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/26 19:03:37 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/28 1:22:35 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/25 18:39:14 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/4/26 23:04:58 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/27 23:24:42 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/28 5:48:52 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/26 19:46:12 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/4/27 11:43:08 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/27 8:32:30 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57