sqlhelper

构建NetCore应用框架之实战篇(五):BitAdminCore框架1.0登录功能设计实现及源码

廉价感情. 提交于 2021-02-14 13:45:03
本篇承接上篇内容,如果你不小心点击进来,建议从第一篇开始完整阅读,文章内容继承性连贯性。 构建NetCore应用框架之实战篇系列 一、设计原则 1、继承前面框架架构思维,设计以可读性作为首要目标。 2、技术架构上共分四层,分html层、controller层、helper层、db层,另外还有ef。 3、所有业务逻辑均在controller层实现,helper只做一些与业务无关的技术封装。 二、模块设计 1、html层:包括login,html,index.html两个页面。 2、controller层:AccountController封装所有与登录权限有关的方法。 3、helper层:LogHelper,SqlHelper,EncryptHelper,SSOClient,VerificationCode,HttpContext等方法。 大致分层架构 三、函数设计 1、重点讲一下SSOClient,封装登录过程相关信息。 2、SSOClient主要函数有IsLogin,Validate,SignIn,SignOut 3、SSOClient主要属性有UserId,User,Department,Roles 把登录过程封装,是为了提升扩展性,把登录抽象为一般较验、用户较验、登录三个环节,可以轻易接入外部登录。 当需要使用第三方登录时,只需要重写Validate即可。 4

form表单中隐藏类型input的使用

十年热恋 提交于 2021-02-02 02:57:28
< form action ="PersonSave.ashx" method ="post" > < input type ="hidden" name ="action" value ="{action}" /> < input type ="hidden" name ="id" value ="{id}" /> 姓名: < input type ="text" name ="name" value ="{name}" /> 年龄: < input type ="text" name ="age" value ="{age}" /> 性别:(选上就是男的) < input type ="checkbox" name ="gender" {gender} /> < input type ="submit" value ="保存" /> </ form > 表单保存时,若action为edit,那么后台则需要一个id来具体update哪条数据        if (action== " edit " ) { int id = Convert.ToInt32(context.Request[ " id " ]); SqlHelper.ExecuteNonQuery( " update T_Persons set Name=@Name,Age=@Age,Gender=@Gender

基于django的校园信息管理系统

荒凉一梦 提交于 2021-01-09 10:34:49
本项目基于django,前端使用了新url和模态对话框两种方式,使用了jquery和ajax技术,后端使用了MySQL,将数据存入数据库,进行增删改查等操作。 本项目可以实现教师管理、班级管理、学生管理,在后台管理页面上,可以方便地进入每一个模块进行管理。 url部分 1 """ database_do URL Configuration 2 3 The `urlpatterns` list routes URLs to views. For more information please see: 4 https://docs.djangoproject.com/en/2.2/topics/http/urls/ 5 Examples: 6 Function views 7 1. Add an import: from my_app import views 8 2. Add a URL to urlpatterns: path('', views.home, name='home') 9 Class-based views 10 1. Add an import: from other_app.views import Home 11 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') 12

阿里精选:Java 代码精简之道

烈酒焚心 提交于 2020-11-08 20:21:51
Photo @ Priscilla Du Preez 文 | 常意 前言 古语有云: 道为术之灵,术为道之体;以道统术,以术得道。 其中:“道”指“规律、道理、理论”,“术”指“方法、技巧、技术”。意思是:“道”是“术”的灵魂,“术”是“道”的肉体;可以用“道”来统管“术”,也可以从“术”中获得“道”。 在拜读大佬“孤尽”的文章 《Code Review是苦涩但有意思的修行》 时,感受最深的一句话就是:“优质的代码一定是少即是多的精兵原则”,这就是大佬的代码精简之“道”。 工匠追求“术”到极致,其实就是在寻“道”,且离悟“道”也就不远了,亦或是已经得道,这就是“工匠精神”——一种追求“以术得道”的精神。如果一个工匠只满足于“术”,不能追求“术”到极致去悟“道”,那只是一个靠“术”养家糊口的工匠而已。作者根据多年来的实践探索,总结了大量的 Java 代码精简之“术”,试图阐述出心中的 Java 代码精简之“道”。 1.利用语法 1.1.利用三元表达式 普通: String title;if (isMember(phone)) { title = "会员";} else { title = "游客";} 精简: String title = isMember(phone) ? "会员" : "游客"; 注意:对于包装类型的算术计算,需要注意避免拆包时的空指针问题。 1.2.利用 for

Java 代码精简之道

最后都变了- 提交于 2020-11-08 14:58:50
文 | 常意 前言 古语有云: 道为术之灵,术为道之体;以道统术,以术得道。 其中:“道”指“规律、道理、理论”,“术”指“方法、技巧、技术”。意思是:“道”是“术”的灵魂,“术”是“道”的肉体;可以用“道”来统管“术”,也可以从“术”中获得“道”。 工匠追求“术”到极致,其实就是在寻“道”,且离悟“道”也就不远了,亦或是已经得道,这就是“工匠精神”——一种追求“以术得道”的精神。如果一个工匠只满足于“术”,不能追求“术”到极致去悟“道”,那只是一个靠“术”养家糊口的工匠而已。作者根据多年来的实践探索,总结了大量的 Java 代码精简之“术”,试图阐述出心中的 Java 代码精简之“道”。 1.利用语法 1.1.利用三元表达式 普通: String title; if (isMember(phone)) { title = "会员"; } else { title = "游客"; } 精简: String title = isMember(phone) ? "会员" : "游客"; 注意:对于包装类型的算术计算,需要注意避免拆包时的空指针问题。 1.2.利用 for-each 语句 从 Java 5 起,提供了 for-each 循环,简化了数组和集合的循环遍历。 for-each 循环允许你无需保持传统 for 循环中的索引就可以遍历数组,或在使用迭代器时无需在 while

springboot 集成mybatis3.4.5 mapper tk.mybatis

时光毁灭记忆、已成空白 提交于 2020-08-17 20:10:49
本篇主要介绍的是springboot如何集成mybatis,以及一些常用的mapper编写,与顶层tk.mybatis的mapper结合集成,看懂之后即可快速的开发 1、配置sqlSessionFactory import com.gta.train.platform.persis.page.plugin.PageInterceptor; import lombok.RequiredArgsConstructor; import org.apache.ibatis.plugin.Interceptor; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.SqlSessionTemplate; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.support.PathMatchingResourcePatternResolver;

Java代码精简之道

痴心易碎 提交于 2020-08-13 09:37:06
前言 古语有云: 道为术之灵,术为道之体;以道统术,以术得道。 其中:“道”指“规律、道理、理论”,“术”指“方法、技巧、技术”。意思是:“道”是“术”的灵魂,“术”是“道”的肉体;可以用“道”来统管“术”,也可以从“术”中获得“道”。 在拜读大佬“孤尽”的文章《 Code Review是苦涩但有意思的修行 》时,感受最深的一句话就是:“优质的代码一定是 少即是多 的精兵原则”,这就是大佬的代码精简之“道”。 工匠追求“术”到极致,其实就是在寻“道”,且离悟“道”也就不远了,亦或是已经得道,这就是“工匠精神”——一种追求“以术得道”的精神。 如果一个工匠只满足于“术”,不能追求“术”到极致去悟“道”,那只是一个靠“术”养家糊口的工匠而已。作者根据多年来的实践探索,总结了大量的Java代码精简之“术”,试图阐述出心中的Java代码精简之“道”。 1.利用语法 1.1.利用三元表达式 普通: String title; if (isMember(phone)) { title = "会员"; } else { title = "游客"; } 精简: String title = isMember(phone) ? "会员" : "游客"; 注意:对于包装类型的算术计算,需要注意避免拆包时的空指针问题。 1.2.利用for-each语句 从Java 5起,提供了for-each循环

存储过程——C#中调用存储过程的简单示例

强颜欢笑 提交于 2020-08-13 06:15:35
目录 0. 简介 1. 语法细节 2. 示例1:模拟转账 3. 示例2:测试返回DataTable 4. 源代码下载 shanzm-2020年5月3日 23:23:44 0. 简介 【定义】: 存储过程(Stored Procedure) 是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 【优缺点】:存储过程优缺点都非常的明显!几乎每一篇讨论存储过程的文字,都是会说其他优点是balabala,缺点是balabala,然而最后作者的结论都是: “我不推荐使用存储过程” 。 具体的存储过程的优缺点这里就不详述了! 公司旧项目使用存储过程实现业务逻辑,没办法只能研究了一下 🙃! 闲言碎语不要讲,书归正传,下面就开始存储过程! 1. 语法细节 变量与变量之间使用逗号隔开,语句结尾无标点符号 声明变量: declare @variate_name variate_type ,例如声明并赋值: declare @name nvarchar(50) ='shanzm' 变量赋值: set @variate_name =value 打印变量: print @variate_name begin……end 之间的SQL语句称之为一个代码块 可以使用 if……else 实现逻辑判断

Visual中SqlHelper的书写(*)

微笑、不失礼 提交于 2020-08-12 00:14:25
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Configuration; 6 using System.Data; 7 using System.Data.SqlClient; 插入引用 private static string strconn = ConfigurationManager.ConnectionStrings[ " DigitalProductShopConnectionString " ].ConnectionString; 获取连接 1 public static DataTable ChaXun( string sql) 2 { 3 using (DataTable dt= new DataTable()) 4 { 5 using (SqlDataAdapter sda= new SqlDataAdapter(sql,strconn)) 6 { 7 sda.Fill(dt); 8 } 9 10 return dt; 11 } 12 } 查询方法 1 public static int FeiChaXun( string sql) 2 { 3 int i = 0 ; 4 using

在C#中调用SQL Server中存储过程

为君一笑 提交于 2020-05-09 11:29:56
关于SQL Server中存储过程在C#中调用的简单示例 目录 0. 简介 1. 语法细节 2. 示例1:模拟转账 3. 示例2:测试返回DataTable 4. 源代码下载 shanzm-2020年5月3日 23:23:44 0. 简介 【定义】: 存储过程(Stored Procedure) 是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 【优缺点】:存储过程优缺点都非常的明显!几乎每一篇讨论存储过程的文字,都是会说其他优点是balabala,缺点是balabala,然而最后作者的结论都是: “我不推荐使用存储过程” 。 具体的存储过程的优缺点这里就不详述了! 公司旧项目使用存储过程实现业务逻辑,没办法只能研究了一下 🙃! 闲言碎语不要讲,书归正传,下面就开始存储过程! 1. 语法细节 变量与变量之间使用逗号隔开,语句结尾无标点符号 声明变量: declare @variate_name variate_type ,例如声明并赋值: declare @name nvarchar(50) ='shanzm' 变量赋值: set @variate_name =value 打印变量: print @variate_name begin……end