Linux: Shell脚本备份MySQL数据库, Linux shell script for database backup

Shell脚本是我们写不同类型命令的一种脚本,这些命令在这一个文件中就可以执行。我们也可以逐一敲入命令手动执行。如果我们要使用shell脚本就必须在一开始把这些命令写到一个文本文件中,以后就可以随意反复运行这些命令了。 我首先要在本文带给你的是完整脚本。后面会对该脚本做说明。我假定你已经知道shell scripting、 mysqldump和crontab。 适用操作系统:任何Linux或UNIX。 主脚本(用于备份mysql数据库): 该Shell脚本可以自动备份数据库。只要复制粘贴本脚本到文本编辑器中,输入数据库用户名、密码以及数据库名即可。我备份数据库使用的是mysqlump 命令。后面会对每行… Read More

JAVA: 抓取需要登录的页面, curl page with auth, How do I connect to a URL using Basic authentication?

ConnectToUrlUsingBasicAuthentication.java package test; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import org.apache.commons.codec.binary.Base64; public class ConnectToUrlUsingBasic… Read More

JAVA: JDBC-Mysql操作类

package com.yunti.utils; import java.lang.reflect.Field; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; im… Read More

JAVA:JDBC入门教程(三) PreparedStatement的使用

前两章我们写了一个 DBTools 工具类,可以进行简单的数据库操作,但是有很大的局限性,今天就来改善一下这个类,学习一个新的对象 PreparedStatement 为什么要使用PreparedStatement 前面我们建立了一个store数据库,并且建立了一个user数据表,表里包含字段 id ,account ,password ,role。而且还向里面加入了一条数据 sql 语句是这样写的 INSERT INTO store.user (account,password,role) VALUES ('admin','123',1) 我直接把字段的值直接写在了sql语句里,不过通常情况下,(‘admin’,’123’,1… Read More

JAVA: JDBC入门教程(二) 通过JDBC进行简单的增删改查

对数据库的更新操作 数据库的更新包括:INSERT UPDATE DELETE 执行数据库更新操作需要用到 Statement类,该类通过Connection的createStatement()方法来获得,写好sql语句然后调用Statement对象的executeUpdate(sql) 方法来实现更新操作,很简单。 比如说我想在user表里加入一条记录,可以分为一下几个步骤 获取数据库连接 创建Statement对象 写sql语句 执行更新操作代码如下 @Test public void insertUser(){ Connection conn = null; Statement statement = null; try { //获取数据…

JAVA: JDBC入门教程(一): 连接数据库

1. JDBC的环境搭建 JDBC的环境搭建很简单,需要下面的配置好 安装Java 安装数据库 安装数据库驱动程序 以上两点都很容易,若果有疑问的自行百度解决吧,主要说一下第三个,现在以mysql为例 配置JDBC的环境。 新建java项目,自行命名,我这里的项目叫JDBCTest 下载驱动包,名字叫 mysql-connector-java-5.1.38-bin.jar 可以自行去网上下载,链接http://dev.mysql.com/downloads/connector/j/5.0.html 在项目的根目录下新建一个lib文件夹并且把刚刚下载的 驱动文件(.jar)拷贝到lib文件夹下,然后在这个文件上右键 Bui… Read More

Java: 精确数字运算, 加减乘除运算, 解决浮点数的计算失去精度问题, BigDecimal的用法(加减乘除)

今天在数值计算时碰到一个问题.程序如下: double a = (3.3-2.4)/0.1; System.out.println(a); 你可能认为结果很简单,不就是9嘛,是事实上,结果为:8.999999998,为什么呢?我翻阅了一些资料,终于找出了原因. 为什么浮点数会丢失精度?   十进制数的二进制表示可能不够精确浮点数或是双精度浮点数无法精确表示的情况并不少见。浮点数值没办法用十进制来精确表示的原因要归咎于CPU表示浮点数的方法。这样的话您就可能会牺牲一些精度,有些浮点数运算也会引入误差。以上面提到的情况为例,2.4的二进制表示并非就是精确的2.4。反而最为接近的二进制表示是 2.3999999999… Read More

Java:遍历Map/HashMap的各种方法

在遍历Map集合之前首先先定义一个Map对象: Map<String, String> map = new LinkedHashMap<String, String>(); map.put("1", "one"); map.put("2", "two"); map.put("3", "three"); map.put("4", "fore"); map.put("5", "five"); 这个地方使用的是LinkedHashMap,主要是为了确保让map中的元素是按照插入的顺序存放的。 1. 使用keySet()方法遍历 使用keyset方法遍历,是先取出map的key组成的Set集合,通过对Set集合的遍历,… Read More

JAVA: 使用Jackson解析JSON, 生成JSON, 反序列化和序列化, Jackson 实现JSON数据与Java对象相互转换, 详解入门(附项目源码)

项目主页:https://github.com/FasterXML/jackson-databind 在Web开发过程中,利用JSON可以帮助我们更加方便的开发我们的应用。那么在Java语言中,如何实现Java实例与JSON之间的相互转换(序列化与反序列化)呢?目前流行的JSON第三方类库有Jackson、Gson、Fastjson等,本文将简单介绍如何使用Jackson进行JSON的解析与序列化。 一、获取Jackson 获取Jackson可以通过Maven或直接下载jar包两种方式,通常我们只需要下载Jackson的jackson-core核心包即可,如果希望使用更多功能(例如注解),还需要下载… Read More

PHP: Gearman实现分布式处理, 分布式任务分发框架Gearman教程

一. 场景分析 业务服务压力比较大,想把一些占用资源的功能异步到远程处理,比如记录业务日志,文件加密,文件分发到其他文件服务器节点上,检查文件服务器是否已同步,对用户上传的图片进行剪裁生成多份缩略图,视频转换,静态内容生成,清除缓存等等,这些请求耗时长,占用系统资源大,影响业务正常访问。这些问题会经常遇到的,如果这些任务都在用户请求过程中完成,服务器撑不撑得住暂不考虑,单凭用户体验角度考虑来说,那是难以忍受的。 二. 解决之道 对于这种需求,我们可以通过分布式计算,对任务进行拆分,转移到多台服务器上进行异步或同步处理。分布式消息队列有多种实现方式如rabbitmq、gearman等。 在这里主要说gear… Read More

Ubuntu / Google Compute Engine / Google Cloud:安装JAVA JDK8 或者 JAVA JDK 9, Install Oracle Java 8 / 9 in Ubuntu 16.04, Linux Mint 18

1. Add the PPA. Open terminal (Ctrl+Alt+T) and run the command: sudo add-apt-repository ppa:webupd8team/java Type in your password when it asks and hit Enter. 2. Update and install the installer script: Run commands to update system package index and install Java installer script: sudo apt update && sudo apt install oracle-java8-installer 安装… Read More

Ubuntu:如何完全卸载Java, How to completely uninstall Java?

1、 移除所有 Java相关包 (Sun, Oracle, OpenJDK, IcedTea plugins, GIJ): Remove all the Java related packages (Sun, Oracle, OpenJDK, IcedTea plugins, GIJ): apt-get update dpkg-query -W -f='${binary:Package}\n' | grep -E -e '^(ia32-)?(sun|oracle)-java' -e '^openjdk-' -e '^icedtea' -e '^(default|gcj)-j(re|dk)' -e '^gcj-(.*)-j(re|dk)' -e '^java-common… Read More

Ubuntu: repository/PPA 源管理(查询、添加、修改、删除)

查询 在Ubuntu中,每个PPA源是单独存放在/etc/apt/sources.list.d/文件夹中的,进入到该文件夹,使用ls命令查询即可列出当前系统添加的PPA源。 或者使用grep显示所有: grep ^ /etc/apt/sources.list /etc/apt/sources.list.d/* 或者 grep -r --include '*.list' '^deb ' /etc/apt/sources.list /etc/apt/sources.list.d/ #或者 #grep -r --include '*.list' '^deb ' /etc/apt/sources.list* 添加 sudo add-apt-reposi… Read More

Linux: curl 命令行工具的使用及命令参数说明

curl是一个开源的用于数据传输的命令行工具与库,它使用URL语法格式,支持众多传输协议,包括:HTTP、HTTPS、FTP、FTPS、GOPHER、TFTP、SCP、SFTP、SMB、TELNET、DICT、LDAP、LDAPS、FILE、IMAP、SMTP、POP3、RTSP和RTMP。curl库提供了很多强大的功能,你可以利用它来进行HTTP/HTTPS请求、上传/下载文件等,且支持Cookie、认证、代理、限速等。 1. curl的使用 1.1 URL访问 访问一个网页时,可以使用curl命令后加上要访问的网址: $ curl justcode.ikeepstudying.com <html&g… Read More