看java发送邮件的简单实现代码,解出邮箱?

本文章的语言描述会比上篇多一些

  • 数据库名、表名不得超过30个字符,变量限制为29个
  • 必须只能包含A-Z,a-z,0-9,_等63个字符
  • 数据库名、表名、字段名等对象名中间不要包含空格
  • 同一个MySQL软件中,数据库不能同名;同一个库中,表不能重名;同一个表中,字段不能重名
  • 必须保证你的字段没有和保留字、数据库系统或常用方法冲突。如果坚持使用,请在SQL语句中使用`(着重号)引起来(不建议这么做)
  • 保持字段名和类型的一致性:在命名字段并为其指定数据类型的时候一定要保证一致性,假如数据类型在一个表里是整数,那在另一个表中可别变成其他类型了

创建数据库的方式有三种:


数据库是不能改名的,有些图形工具可以改名的原因是,底层创建了一个新数据库,然后把要修改的数据库数据全部复制到新数据库里,然后删除旧数据库,所以一般不要修改数据库名,数据表是可以修改的




修改表_重命名表_删除表_清空表


COMMIT表示提交,在数据库中是默认提交的,如果不是默认提交,则每次执行完数据库操作,如果不提交,则所有数据都会回滚,就像你写Word文档,但是没有保存,一旦没有保存,这些数据都会消失。


用来限制某个字段的值不能重复





需要使用DILIMITER的原因是,首先我们在存储过程里定义多条不同的SQL语句,并且这些语句也都是需要分号来结束的,但是如果我们没有设置分隔符的话,到了第一条SQL语句结束就直接结束存储过程了,就会直接报错,所以我们需要区分开SQL语句结束和存储过程结束




 
 
 
 


存储过程与存储函数的查看修改和删除









 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 



 
 
 
 
 
 
 
 
 
 
 
 



 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

分支结构CASE的使用


 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 

 
 
 

 



 
 
 
 
 
 


也就是在变量前加一个persist -> 持续 坚持的关键字即可




触发器的详细使用和MySQL8.0新特性就不写了,因为是企业级路线,这些东西一般用不到,用到了再现场学一下就行了

}

正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。

匹配[...]内所有字符
匹配除了 [...] 中字符的所有字符
[A-Z] 表示一个区间,匹配所有大写字母,[a-z] 表示所有小写字母。
匹配除换行符(\n、\r)之外的任何单个字符,类似\n\r
匹配所有。\s 是匹配所有空白符,包括换行,\S 非空白符,不包括换行。
匹配字母、数字、下划线。等价于 [A-Za-z0-9_]

非打印字符也可以是正则表达式的组成部分。下表列出了表示非打印字符的转义序列:

匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。
匹配一个换页符。等价于 \x0c 和 \cL。
匹配一个换行符。等价于 \x0a 和 \cJ。
匹配一个回车符。等价于 \x0d 和 \cM。
匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
匹配任何非空白字符。等价于 \f\n\r\t\v。
匹配一个制表符。等价于 \x09 和 \cI。
匹配一个垂直制表符。等价于 \x0b 和 \cK。

所谓特殊字符,就是一些有特殊含义的字符,如上面说的".txt"中的,简单的说就是表示任何字符串的意思。如果要查找文件名中有的文件,则需要对进行转义,即在其前加一个\。ls *.txt。

许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符 () 放在它们前面。下表列出了正则表达式中的特殊字符:

匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 $。
标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 ( 和 )。
匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。
匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +。
匹配除换行符 \n之外的任何单字符。要匹配 .,请使用 \。
标记一个中括号表达式的开始。要匹配 [,请使用 [。
匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。
将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\' 匹配 "",而 '(' 则匹配 "("。
匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^。
标记限定符表达式的开始。要匹配 {,请使用 {。
指明两项之间的一个选择。要匹配 |,请使用 |。

限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有*或+或?或{n}或{n,}或{n,m}共6种。

正则表达式的限定符有:

匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。
匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。
n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。

定位符使您能够将正则表达式固定到行首或行尾。它们还使您能够创建这样的正则表达式,这些正则表达式出现在一个单词内、在一个单词的开头或者一个单词的结尾。

定位符用来描述字符串或单词的边界,^和$分别指字符串的开始与结束,\b描述单词的前或后边界,\B表示非单词边界。

正则表达式的限定符有:

匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与 \n 或 \r 之后的位置匹配。
匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与 \n 或 \r 之前的位置匹配。
匹配一个字边界,即字与空格间的位置。

用户名/密码正则表达式

用户名/密码正则表达式

 @Validation 是一套帮助我们继续对传输的参数进行数据校验的注解,通过配置Validation可以很轻松的完成对数据的约束。 作用在类、方法和参数上
BindingResult 用在实体类校验信息返回结果绑定 

注意:在实体类使用校验注解时,controller一定要使用bindingResult处理校验结果,且实体类作为查询参数时,避免被其他方法使用,不然的地方需要限制,有的没有,不需要限制的方法会报错。

后端效验的另一个controller层做jsr验证的写法

数据校验分为前端校验和后台校验,前端校验类似于后台校验的子级,在逻辑和安全方面没有后台校验的要求高。为什么使用了后台校验还要在页面上加入前端校验呢?

后台校验考虑的是数据安全,前台校验则考虑的是用户体验(花里胡哨)。

jQuery效验手机号|身份证|邮箱|金钱|日期|单选框|下拉框|复选框实列【一看就会】

【单选框】性別: 要求:验证性别必选

【下拉框】类型: 要求:必须选择一个

【复选框】兴趣: 要求:至少选择一个

身份证号: 要求:16位数字 最后一位是校验位,可能为数字或字符X x

金钱: 要求:可以整数或一位小数或两位小数

以上大家可以看到,所有效验都是单独效验的,这样的好处是对单个处理较为方便,但较为麻烦,代码量较大!下面教大家一个优化上方代码---前端效验优化版【数组实现正则效验】

【单选框/复选框/下拉框】这些无需正则效验的还是要单独拉出来效验!!!

//正则数组 手机号/邮箱/身份证/金钱/日期 "18位 最后一位是校验位,可能为数字或字符X x", "整数或一位小数或两位小数", //在每一个有index 属性后面 追加一个span标签 来提示错误 //读取当前文本框的值

好啦,现在前端的效验就分享到这了,大家如果想让样式更加好看更省事可以关注后期我会持续更新!!

通常来说,为了提高系统运行效率,都会在前端进行数据校验,但后端的数据校验仍然必不可少,因为用户还是可能在获取数据接口后手动传入非法数据,所以后端还是需要做数据校验

后端注解效验(值/范围/长度/格式)

被注释的元素必须为 null

被注释的元素必须不为 null

验证注解的元素值不为空(不为null、去除首位空格后长度为0) ,并且类型为String。

验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0) ,并且类型为String。

被注解的元素必须为true,并且类型为boolean。

被注解的元素必须为false,并且类型为boolean。

被注释的元素必须是一个数字,其值必须大于等于指定的最小值 ,并且类型为int,long,float,double

被注解的元素其值必须小于等于最小值,并且类型为int,long,float,double。

被注解的元素必须为过去的一个时间,并且类型为java.util.Date。

被注解的元素必须为未来的一个时间,并且类型为java.util.Date。

验证字符串是否是符合指定格式的数字,interger指定整数精度,fraction指定小数精度。

被注解的元素的长度必须在指定范围内,并且类型为String,Array,List,Map。

验证注解的元素值长度在min和max区间内 ,并且类型为String。

验证注解的元素值的整数位数和小数位数上限 ,并且类型为float,double,BigDecimal。

被注解的元素必须符合指定的正则表达式,并且类型为String。

验证注解的元素值是Email,也可以通过regexp和flag指定自定义的email格式,类型为String

举一些常用的列子:便于大家更快理解

//两种写法 自行取用 DecimalMin/Max 注解表示对应属性值的下限/上限
//jsr注解前端效验跳转页面
 
 

同最上面的登录一样.这里给大家一个模范

 
 
 
  • BindingResult 封装校验失败的信息 必须紧跟要校验的对象

 
 

注意:在实体类使用校验注解时,controller一定要使用bindingResult处理校验结果,且实体类作为查询参数时,避免被其他方法使用,不然的地方需要限制,有的没有,不需要限制的方法会报错。

 
下面对后端验证所使用的双form标签做解释
 
  • SpringMVC 的表单标签可以实现将模型数据中的属性和 HTML 表单元素相绑定,以实现表单数据更便捷编辑表单值的回显

 
 

2.form标签库常用标签

 
 

双Form表单组件标签

path:表单字段,对应 html 元素的 name 属性,支持级联属性

2.用于构造多个单选框

 下拉框组件标签

form:errors:显示表单组件或数据校验所对应的错误

这篇文章吸取了前辈的各大小知识点加上我的总结而出!!

正则语法|前端后端效验|springMvc效验总结到这就占告一段落了!!!你学会了吗??留下疑问,互动交流吧!!

}

我要回帖

更多关于 java发送邮件的简单实现 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信