Java中如何实现在jsp页面中进行MySQL数据库同步数据
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ page import="java.io.*,java.util.*,java.sql.*"%><%@ page import="javax.servlet.http.*,javax.servlet.*" %><%@ taglib uri="http:/ ...
Java中如何引入极光推送
前言开发移动端app时,需要系统进行即时通讯、消息通知提醒,这时候就用到了:极光推送我这里使用的是springboot简单贴下代码整理一篇完整的,已经测试过了,直接用就OK了
引入maven依赖12345678910<dependency> <groupId>cn.jpush.api</groupId> <artifactId>jiguang-common</artifactId><version>1.1.7</version></dependency><dependency><groupId>cn.jpush.api</groupId> <artifactId>jpush-client</artifactId> <version>3.4.3</version></dependency>
极光推送工具类 JPushUtil123456789101112131415161718192021 ...
Java中如何实现发送客户留言邮件
场景甲客户访问B的公司官网时,发现乙公司的产品可以引进,所以想通过官网客户留言的方式与乙沟通。客户在某公司官网留言是不需要登录邮箱的,甲客户填入自己的留言,点击提交。这时候就需要乙公司的A邮箱发送邮件到乙公司的B邮箱,邮件内容为甲客户的留言信息。发送人和接收人均为乙公司,只不过使用不同的邮箱
springboot集成的mail这种方式发送邮件,需要几个必需的参数:发送人邮箱服务器(host)、发送人账号(username)、发送人授权码(password)。邮箱服务器可以去搜索一下,qq邮箱:smtp.qq.com 163邮箱:smtp.163.com授权码,需要登录发送人邮箱,从账号设置里面进行获取,开通POP3/SMTP提供的授权码,如果没有授权码,使用真实密码我用的是163的邮箱,所以以163的为例子
引入maven依赖1234<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail&l ...
Java中关于IO流学习之输入流与输出流
Java流类图结构
流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。
IO流的分类
根据处理数据类型的不同分为:字符流和字节流
根据数据流向不同分为:输入流和输出流
字符流和字节流字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象。本质其实就是基于字节流读取时,去查了指定的码表。 字节流和字符流的区别:
读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。
处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。
字节流:一次读入或读出是8位二进制。
字符流:一次读入或读出是16位二进制。
设备上的数据无论是图片或者视频,文字,它们都以二进制存储的。二进制的最终都是以一个8位为数据单元进行体现,所以计算机中的最小数据单元就是字节。意味着,字节流可以处理设备上的所有数据,所以字节流一样可以处理字符数据。
结论:只要是处理纯文本数 ...
Java如何实现后台验证身份证号真实度
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.GregorianCalendar;import java.util.Hashtable;import java.util. ...
Python中使用Scrapy+Splash实现动态数据爬取
前言现在很多网站都是在浏览器中使用js动态渲染页面,直接意味着无法直接从原始页面中爬取到数据。所以这里就使用可以提供js渲染解析功能的Scrapy-Splash
安装Scrapy-Splash首先,要明白一点,Scrapy-Splash是需要在Docker中使用的,所以前期工作得做好
安装Docker【Docker在Linux下载安装及部署】
安装scrapy-splashDocker安装成功后,在Docker中安装scrapy-splash,执行该命令:
1docker run -d -p 8050:8050 scrapinghub/splash
测试安装成功,再从浏览器上测试一下,ip为安装服务器的路径。如果能打开如图所示的页面,就意味着安装成功了
1http://192.168.1.104:8050
具体代码1pip install scrapy-splash
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647from scrapy_splash im ...
MySQL设置动态的创建时间(create_time)和修改时间(update_time)
我这里用的是Navicat,直接在字段属性修改
这个适用于5.7及更高版本,5.7之前的版本会出现问题~~
当前时间戳:CURRENT_TIMESTAMP
一般情况下,创建时间、修改时间都是用datetime类型;datetime类型在没有默认值的情况下是不会自动赋值的;在开发阶段,不想传这两个值,但又想不为null,所以就需要用到CURRENT_TIMESTAMP这个参数。创建时间:一般是在创建数据时才会赋值,使用SQL的话,就需要在字段上添加默认值: DEFAULT CURRENT_TIMESTAMP(0)使用Navicat的情况下,就需要添加CURRENT_TIMESTAMP为默认值。修改时间:一般是在创建数据、修改数据时才会赋值,使用SQL的话,就需要在字段上添加默认值:DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0)使用Navicat的情况下,就需要添加CURRENT_TIMESTAMP为默认值,并且标记“ 根据当前时间戳更新 ”,这样才能实现只要数据发生变化就会自动修改时间
创建时间如下:
修改时间如下 ...
通过MySQL多表联查实现类似朋友圈动态的实例
前言这篇文章,主要用最基础的方式进行多表联查,实现类似朋友圈好友动态的那种案例这里只是做了最简单的动态的列表展示,锻炼编写SQL思路
需求分析有这么个项目,类似朋友圈,需要展示用户好友和自己发布的动态。
每条动态需要展示头像、昵称、内容(文字、图片、视频)
最新发布的在最前面展示
动态列表中包括用户自己的动态
朋友圈需要动态分页
创建数据库表需要三个数据表:用户表 users,用户好友关联表 friends,用户动态表 dynamic
用户表 users:用户id、昵称、头像用户-好友关联表 friends:关联id、用户id、好友id用户动态表 dynamic:动态id、发布人id、文字内容、视频内容、图片内容
用户表 users1234567891011121314151617181920212223SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0; -- ------------------------------ Table structure for users-- ----------------------------DR ...
关于Nginx中Stream模块配置
前言
stream模块是nginx中一个支持配置TCP/UDP协议的模块。
使用stream模块,可以在同一台服务器上运行多个不同的网络流应用程序。
这些应用程序使用不同的协议和端口,但通过使用Nginx的stream模块,可以使这些不同的应用程序在同一端口上共享公共网络地址。
使用Ngixn的stream模块,可以同一台服务器上运行负责的内容。
stream配置详解基础stream配置stream模块123stream { # stream模块的配置内容,可以在此处添加}
stream模块是stream配置的主体,用于配置TCP/UDP协议。它可以包含一系列的server{}模块,每个server{}模块可以为多个应用程序服务。使用stream模块时,server{}中可以配置listening端口,来监听某个特定的端口。下面是一个简单的stream server配置:
123456stream { server { listen 80; proxy_pass server1; }& ...
关于Nginx如何把nginx.conf配置文件解耦,拆成多个配置文件
前言随着nginx的使用,一台服务器下的域名及端口多了以后,在nginx.conf配置文件中就需要不断的配置server。
久而久之,就会发现nginx.conf特别臃肿。
所以我在这里对这个nginx.conf进行解耦拆分,让服务器上每个项目都有自己独立的子配置文件。
接下来的内容,可能会涉及到 主配置文件:nginx.config 子配置文件:nginx_xxx.config
配置nginx.配置主配置文件 nginx.config直接把新安装的Nginx里的原始nginx.config用下面代码替换掉。如果原始nginx.config中已经配置过server{ },就需要提前备份好,改成子配置文件使用。
12345678910111213141516171819202122232425262728293031323334353637worker_processes 2; #日志# error_log logs/error.log info; #记录pidpid logs/nginx.pid; events{ worker_connections ...