
后端开发
在大多数应用中,非用户接口代码比用户接口代码多得多。复杂系统是在后台发生的各种使其工作的逻辑。
戴翔的技术博客
高校教师,研究生在读,前端开发工程师,中国计算机学会教育专业委员会委员,优快云程序员研修院讲师,优快云博客专家,创业公司项目经理。江苏省第四届“互联网+”大学生创新创业大赛二等奖获得者,第二届、第三届微信小程序应用开发大赛全国三等奖、华东赛区二等奖项目作者,青年大学习数据分析系统、防艾检测云平台“快乐速检”、锋火云疫情病原体检测移动登记系统、自助提货平台“我要提货”项目负责人。
展开
-
【算法】Java实现选择排序
从0索引开始,拿着每一个索引上的元素跟后面元素进行比较,大的放在后面。原创 2023-02-26 21:09:58 · 413 阅读 · 0 评论 -
【算法】Java实现冒泡排序
数组arr = {10, 2, 5, 3, 8};相邻两个数据进行比较,大的放在最后。原创 2023-02-26 20:55:56 · 397 阅读 · 0 评论 -
使用Java完成石头迷阵游戏
【代码】使用Java完成石头迷阵游戏。原创 2023-02-26 13:40:36 · 1308 阅读 · 3 评论 -
Java版学生信息管理系统的实现
使用Java编写一个简单的通过控制台交互的学生信息管理系统,这是学习Java编程的一个简单综合案例。原创 2023-02-25 19:39:19 · 284 阅读 · 0 评论 -
表单的单项处理与批量处理操作
单项处理单项(单行)处理时,只需将数据行的主键id值作为入参传入处理函数即可。需要注意的是,添加c:if判断以避免重复处理。<td class="center"> <c:if test="${item.approvalStatus == 'INITIAL'}"> <a class="btn btn-xs btn-success review" title="审核" οnclick="review('${item.id}');"> <i class=.原创 2021-04-20 21:41:18 · 557 阅读 · 0 评论 -
jsp页面日期格式化
< fmt:formatDate value="" pattern="">value: 要显示的日期,pattern: 自定义格式模式。<fmt:formatDate value="${item.taskTime}" pattern="yyyy-MM-dd HH:mm:ss"/>原创 2021-04-20 10:12:16 · 1145 阅读 · 2 评论 -
jsp状态选择下拉框
jsp页码<td style="vertical-align:top;padding-left:2px;"> <select class="" name="status" id="status" data-placeholder="审核状态" style=""> <option value=""></option> <option value="">全部</option> <option <c:if tes.原创 2021-04-15 17:43:00 · 10242 阅读 · 0 评论 -
jsp返回上一页
history.back(-1) // 直接返回当前页的上一页,表单数据全部消失,是个新页面history.go(-1) // 返回当前页的上一页,不过表单里的数据全部还在<td style="text-align: center;" colspan="10"> <a class="btn btn-mini btn-primary" οnclick="save();">提交</a> <a class="btn btn-mini btn-d.原创 2021-04-15 17:36:39 · 1911 阅读 · 0 评论 -
MyBatis 使用 example 类
Example example = new Example(CtcAsyncExportTask.class); Example.Criteria criteria = example.createCriteria();MyBatis的逆向工程中会生成实例及实例对应的example,example用于添加条件,相当where后面的部分。example.setOrderByClause("字段名 ASC"); // 添加升序排列条件,DESC为降序example.setDi.原创 2021-04-12 21:16:01 · 667 阅读 · 0 评论 -
简单的Git命令
1. Git命令1.1 从远程仓库拉代码到本地一般从develop分支拉代码到本地仓库。git pull origin developFrom http://gitlab.idcs.vip/example/crm * branch develop -> FETCH_HEADAlready up to date.1.2 创建并切换项目分支创建项目分支并切换到分支feature_20210409_data_security。git checkout -原创 2021-04-12 21:13:49 · 565 阅读 · 0 评论 -
控制Spring工厂创建对象的次数
0. 如何控制简单对象的创建次数利用scope属性,控制简单对象的创建次数。scope属性的属性值有两种:sigleton和prototype。sigleton(默认值):只会创建一次简单对象prototype:每一次都会创建新的对象<bean id="account" scope="singleton|prototype" class="xxxx.Account"/>1. 如何控制复杂对象的创建次数如没有isSingleton方法 还是通过scope属性 进行对象创建次数的控制。原创 2021-01-08 17:36:51 · 237 阅读 · 0 评论 -
Spring工厂创建复杂对象的3种方式
0. 什么是复杂对象复杂对象:指的就是不能直接通过new构造方法创建的对象,如:Connection、SqlSessionFactory。1. FactoryBean接口见文章:《Spring FactoryBean的实现及简单原理》(点击阅读)2. 实例工厂避免Spring框架的侵入整合遗留系统ConnectionFactory.javapublic class ConnectionFactory { public Connection getConnection(){原创 2021-01-08 17:25:54 · 311 阅读 · 0 评论 -
反转控制与依赖注入
1. 反转控制(Inverse of Control,IOC)控制:对于成员变量赋值的控制权反转控制:把对于成员变量赋值的控制权,从代码中反转(转移)到Spring工厂和配置文件中完成。好处:解耦合底层实现:工厂设计模式2. 依赖注入 (Dependency Injection,DI)注入:通过Spring的工厂及配置文件,为对象(bean,组件)的成员变量赋值。依赖注入:当一个类需要另一个类时,就意味着依赖,一旦出现依赖,就可以把另一个类作为本类的成员变量,最终通过Spring配置文件进行原创 2021-01-08 15:57:14 · 151 阅读 · 0 评论 -
Spring FactoryBean的实现及简单原理
1. 开发步骤实现FactoryBean接口public class ConnectionFactoryBean implements FactoryBean<Connection> { private String driverClassName; private String url; private String userName; private String password; public String getDriverClass原创 2020-12-24 20:33:47 · 429 阅读 · 1 评论 -
Spring的注入方式
1. 什么是注入?注入:通过Spring的配置文件,为成员变量赋值。2. 有哪些注入方式?构造注入:Spring调用构造方法,通过配置文件为成员变量赋值。Set注入:Spring调用Set方法,通过配置文件为成员变量赋值。3. 构造注入3.1 开发步骤提供有参构造方法 public class Customer implements Serializable { private String name; private int age; p原创 2020-12-24 16:39:50 · 210 阅读 · 1 评论 -
Spring Set方法注入及简化方法
Tips:针对于不同类型的成员变量,在< property >标签内,需要嵌套其他标签:<property> xxxxx</property>1. JDK内置类型1.1 String+8种基本类型 <property name="id"> <value>2</value> </property>1.2 数组 <!-- 数组注入--> <pro原创 2020-12-24 14:28:15 · 550 阅读 · 0 评论 -
Spring工厂的底层实现原理(简易版)
1.通过ClassPathApplicationContext工厂读取配置文件applicationContext.xml2.获得bean标签的相关信息id的值:personclass的值:com.daixiang.basic.Person通过反射创建对象:Class clazz = Class.forName(class的值);id的值 = clazz.newInstance();...原创 2020-12-24 13:10:29 · 361 阅读 · 0 评论 -
Spring5.x与日志框架log4j整合
Spring与日志框架进行整合,日志框架就可以在控制台中,输出Spring框架运行过程中的一些重要的信息,便于了解Spring框架的运行过程,利于程序的调试。Spring默认的日志框架Spring1/2/3早期都是commons-logging.jarSpring5.x默认整合的日志框架 logback、log4j2Spring如何与日志框架log4j整合引入log4j jar包pom.xml <dependency> <groupId>org原创 2020-12-24 12:38:12 · 836 阅读 · 1 评论 -
Java文件移动
/** * @author: Daixiang * @date: 2020/12/7 0007 14:34 * @description: 文件移动 */import java.io.*;public class IOExample { public static void main(String[] args){ File oldFile = new File("H:\\1207\\demo.txt"); // 原文件 File folder = n原创 2020-12-22 20:35:02 · 305 阅读 · 0 评论 -
简单Java工厂的实现
1. 创建对象的方式对象的创建方式:直接调用方法,创建对象:UserService userService = new UserServiceImpl();通过反射的形式,创建对象,解耦合:Class clazz = Class.forName("com.daixiang.basic.UserserviceImpl");UserService userservice = (UserService)clazz.newInstance();2. 什么是工厂设计模式概念:通过工厂类,原创 2020-12-22 16:20:38 · 467 阅读 · 0 评论 -
Linq多表左外连接left join查询
左外连接会检索出LEFT JOIN左表中的所有行,而不管右表是否有匹配项。今天的一个项目中,需要将classlist表与其他3张表进行连接查询,且classlist表中某列为空的数据也需要查询出来,这就需要进行LEFT JOIN(左外连接查询),且项目使用的是Entity Framework框架,因此,可以使用Linq语句进行左外连接查询。通过左连接4张表(klc_classlist、klc_object 、klc_student 、klc_license )进行查询,语句如下:// linq语句多表原创 2020-12-14 16:38:22 · 6699 阅读 · 1 评论 -
C# 遍历列表循环写入MySQL
问题再现之前的一个项目,需求是:根据输入的日期、开始时间、结束时间、项目、项目时长、连续发布天数生成项目数据。前端截图如图1所示。图1. 前端截图之前是使用PHP做的,核心代码如下所示:for ($i = 0; $i < count($list); $i++) { $date = $list[$i]; while ($startTime < $endTime) { $Time_1 = date("H:i", $startTime); $T原创 2020-12-14 12:03:01 · 915 阅读 · 0 评论 -
lambda表达式查询多列
使用Lambda表达式查询表中的多列市,查询语句如下:var classlist = dc.klc_user.Where(u => u.openid == openid).Select(u=> new { u.nick,u.sex,u.identity_id});原创 2020-11-28 17:42:11 · 1151 阅读 · 0 评论 -
全面的C#编码规范整理
要作为一名合格的开发者,最基本的素质就是要做到编码规范,从小我们就接受教导“字如其人”,而写代码亦是如此,良好的代码风格,彰显了个人的工作素养。而良好的代码规范,能够帮助我们进行更好的团队协作,它能方便代码的交流和维护;不会影响编码的效率,不与大众习惯冲突;使代码更美观、阅读更方便;使代码的逻辑更清晰、更易于理解。 那为什么要整理这个规范呢? 最近社区群里有在讨论C#的编码规范,而网络上也没有一些全面的规范文档,所以我就结合微软官方、Resharper和stylecop的规范,以及.转载 2020-11-25 21:10:06 · 3409 阅读 · 3 评论 -
@Html.DropDownList不更新回传原数据更新则回传新数据
通过@Html.DropDownList非强类型进行BookType的选择,初始显示原来的BookType 值,通过点选下拉列表再点击“更新”按钮进行数据的更新,即“不更新回传原数据、更新则回传新数据”。bookindex.cshtml 部分代码:@foreach (var item in Model) { <tr> <td> @Html.DropDownList("detail.booktype", db.bll.listHelp原创 2020-11-19 17:06:11 · 320 阅读 · 0 评论 -
.NET MVC Request中值的大小写问题
.NET MVC的Request中的值默认不区分大小写。如下图所示,写成 Request[“booktag”] 依旧可以被识别。原创 2020-11-11 09:17:37 · 669 阅读 · 0 评论 -
.Net WebAPI中的POST值传递
GET请求的参数是通过URL来传递的,而POST请求则是通过HTTP的请求体中传过来的,.Net WebAPI的POST请求也需要从HTTP的请求体里面去取参数。传输单个值时,可以通过URL参数或者FromBody来传输接收,那么传输多个值时怎么处理呢?前端前端需要发起 HTTPS网络请求,将code、nick等数据通过api传输到后端。此时,先通过JSON.stringify()方法将对象序列化。wx.request({ url : globalRootDomain + "api/Log转载 2020-11-08 19:05:45 · 1356 阅读 · 0 评论 -
阿里巴巴MySQL数据库设计规范
(一) 建表规约【强制】表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是unsignedtinyint( 1表示是,0表示否),此规则同样适用于odps建表。说明:任何字段如果为非负数,必须是unsigned。【强制】表名、字段名必须使用小写字母或数字;禁止出现数字开头,禁止两个下划线中间只出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。正例:getter_admin,task_config,level3_name反例:GetterAdmin,原创 2020-11-08 09:51:26 · 2342 阅读 · 0 评论 -
.NetWebAPI发布报错:未能找到路径“..\App_Data\XmlDocument.xml”的一部分
.NetWebAPI项目发布后,通过浏览器访问报错:未能找到路径“…\App_Data\XmlDocument.xml”的一部分。截图如下:在VisualStudio的解决方案资源管理器中,点击“”显示所有文件按钮,即可显示刚才未显示在App_Data文件夹中的xml文件。在该xml文件上右键,点击“发布…xml”,即可将该文件发布到项目文件夹。此时,程序即可正常访问。...原创 2020-11-07 19:15:24 · 1572 阅读 · 0 评论 -
Git基础命令
切换到基础分支,如mastergit checkout master创建并切换到新分支git checkout -b 01新分支git branch可以看到已经在 “01新分支” 分支上更新分支代码并提交git add . //选中所有文件git commit -m "更新描述" //添加更新描述git push origin 01新分支 //推送到“01新分支”其他命令git remote.原创 2020-10-31 16:25:38 · 173 阅读 · 0 评论 -
普通sql语句和Linq语句简单查询的写法
普通sql语句写法SELECT cFROM db.CustommerWHERE c.CNO > 10普通Linq语句写法from c in db.Custommerwhere c.CNO > 10select c;Lambda表达式写法db.Customer.Where(u => u.CNO > 10);原创 2020-10-24 07:18:11 · 749 阅读 · 2 评论 -
.NET、ASP.NET、C#三者之间的关系
.NET是微软公司下的一个开发平台,.NET核心就是.NET Framwork(.NET框架)是.NET程序开发和运行的环境,在这个平台下可以用不同的语言进行开发,因为.NET是跨语言的一个平台,语言可以是C#,F#,VB等。JAVA和.NET不同的一点是java是跨平台的,不跨语言的。.NET跨平台仅限于Android系统和IOS系统。转载 2020-10-19 10:10:56 · 1600 阅读 · 0 评论 -
简单实现C#中的委托
示例代码:namespace ConsoleApp1{ public delegate void GreetingDelegate(string name); class Program { //定义委托,它定义了可以代表的方法的类型 public static void GreetPeople(string name, GreetingDelegate MakeGreeting) { MakeGreetin原创 2020-10-17 21:37:45 · 553 阅读 · 0 评论 -
为ASP.Net WebAPI 添加HelpPage页面
创建ASP.NET WebAPI项目;为函数添加注释;在项目上右键-属性点击“生成”,对输出内容进行设置,勾选“XML文档文件”,并且设置内容为“App_Data\XmlDocument.xml”打开文件 /Areas/HelpPage/App_Start/HelpPageConfig.cs,将第37行注释去掉;右键项目-“生成”,访问Help页面即可看到在程序中写的注释信息。...原创 2020-10-10 20:02:04 · 695 阅读 · 0 评论 -
asp.net FormView控件中如何获取其他控件
笔者在做系统设置页面时,添加了一些控件,打算使用UploadFile控件做图片上传,可是在aspx.cs文件中写前台的控件ID时,却被VisualStudio2019 提示“ASP.NET:当前上下文中不存在XX”,然后发现控件未注册。删除该页面,新建了一个页面,再次拖入控件,还是如此提示。项目中的其他页面控件注册正常。在网上查找了大概5个小时,问题依然未解决。今天早上再次打开电脑,换了个思考方向,会不会是FormView控件的问题呢?于是就将FormView控件删除,再次添加其他控件,发现这次在asp原创 2020-05-27 09:10:02 · 666 阅读 · 0 评论 -
asp.net有验证控件时的重置按钮处理
在使用asp.net技术开发网站时,会用到一些验证控件,比如在修改密码场景下,需要验证密码的长度以及两次输入的密码是否一致等。但是,该页面也需要重置按钮实现清空TextBox的效果,如果直接写后台清空代码如:TextBox1.Text = “”; 点击重置按钮后会触发验证事件。避免此类情况发生的一个最好的方法就是设置每个控件的 ValidationGroup 值,将需要验证的一组控件设置相同的 ValidationGroup 值,重置按钮不设值或设置不同的值即可。作者:戴翔电子邮箱:daixia原创 2020-05-26 21:46:12 · 1545 阅读 · 0 评论 -
WindowsFormApplication超市商品信息管理系统
说明:本次作业采用EntityFramework框架完成,连接字符串的存放位置:Exam001\Exam001\App.congif登录界面输入用户名:daixiang,密码:123456,点击登录按钮登录进入主界面,账户名密码错误会提示“用户名或密码错误”,代码调用存储过程实现登录。主界面主界面可以直接进行数据的“删除”与“查询”操作。删除数据:在数据行上右键“删除”或选中记录行点击“删除”按钮,可进行数据的删除操作。查询数据:查询时,“货物代码”、“商品名称”不是必填,“商品类型”原创 2020-05-20 22:28:24 · 2080 阅读 · 2 评论 -
本地IIS启动后网页HTTP 错误 404.3 - Not Found解决方案
本地启动IIS后访问自己刚刚写的网站会出现 HTTP 错误 404.3 - Not Found 如下图所示的报错代码,一般出现这种情况是由于IIS中的 应用程序开发功能 未打开,只需要将其打卡即可。解决方案:控制面板→程序和功能→打开或关闭Windwos功能在此窗口中依次展开Internet信息服务→万维网服务→应用程序开发功能,将需要的功能选项前面的勾上,确定安装即可,具体如下图所示:...原创 2020-02-25 08:41:07 · 4577 阅读 · 2 评论 -
PCI DSS不合规的处理方法
将SSL证书部署到网站之后,我们常常会使用检测工具对网站进行检测与评级,MySSL就是一个比较知名的检测网站,其是由亚洲诚信( TrustAsia )提供证书支持和技术支持的网站。通常,使用MySSL进行检测时后会出现如下图所示的检测概述,显示 PCI DSS不合规 。PCI DSS,全称Payment Card Industry Data Security Standard,第三方支付行业...原创 2020-02-11 19:06:27 · 7484 阅读 · 0 评论 -
LayUI数据表格查询与重载
查询功能模块的工作流程是:在输入框中输入关键字,点击查询按钮,数据传输到服务端。服务端接收到数据,进行查询后将数据拼接成前端框架所需要的json类型。服务端返回查询结果,前端数据表格方法级渲染的重载。如果未输入数据点击查询按钮,弹窗提示用户输入数据。前端数据展示与重载编写输入框与查询按钮,监听按钮点击事件。<div class="layui-inline layui-sho...原创 2020-02-10 15:14:41 · 5625 阅读 · 2 评论