java 连接 mysql 并使用 prepareStatement 查询数据库

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.sql.*;
import java.util.*;

public class Main {

    public static void main(String[] args) {

        Connection conn = null;
        User user = null;
        Gson gson = new Gson();

        try {
            # JDK6 之前的版本需要加载驱动
            # new com.mysql.jdbc.Driver();

            # 连接数据库
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname?" +
                    "useSSL=false&useUnicode=true&characterEncoding=UTF8", "root", "root");

            # 使用 prepareStatement 查询数据库
            PreparedStatement preStatement = conn.prepareStatement("select * from tables");
            ResultSet res = preStatement.executeQuery();

            List<User> users = new ArrayList<User>();
            while (res.next()) {
                user = new User();
                user.setId(Integer.parseInt(res.getString("id")));
                user.setUser(res.getString("user"));
                users.add(user);
            }
            # 导出为 json
            String strJson = gson.toJson(users);
            System.out.println(strJson);

        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }

    }
}

继续阅读

使用 Gson 序列化 和 反序列化 json

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

public class Main {

    public static void main(String[] args) {

        User user = new User();
        user.setId(1);
        user.setUser("admin");

        # 实例化 Gson
        Gson gson = new Gson();
        # 序列化 json
        String jsonUser = gson.toJson(user);
        System.out.println(jsonUser);
        # 反序列化 json
        User user1 = gson.fromJson(jsonUser, User.class);
        System.out.println(user1);

        System.out.println("==============================");

        # 列表,使用 List
        List<User> users = new ArrayList<>();
        for (int i = 0; i < 2; i++) {
        users.add(user);
        }
        String jsonUsers = gson.toJson(users);
        System.out.println(jsonUsers);

        List<User> users1 = gson.fromJson(jsonUsers, new TypeToken<List<User>>() {
        }.getType());
        for (User _user : users1) {
        System.out.println(_user);
        }

        System.out.println("==============================");

        # 多属性键值对,使用 Map
        Map<String, String> ips = new HashMap<>();
        for (int i = 0; i < 9; i++) {
            ips.put(i + "", "192.168.1.10" + i);
        }
        String jsonIps = gson.toJson(ips);
        System.out.println(jsonIps);

        Map<String, String> ips1 = gson.fromJson(jsonIps, new TypeToken<Map<String, String>>() {
        }.getType());
        Set<String> set = ips1.keySet();
        for (String _string : set) {
        System.out.println(_string + ":" + ips1.get(_string));
        }
    }
}

继续阅读

用一个U盘安装多个Linux发行版

Ventoy

https://www.ventoy.net/cn/doc_disk_layout.html

MultiSystem

http://liveusb.info/dotclear/index.php?pages/install

sudo apt-add-repository 'deb http://liveusb.info/multisystem/depot all main'
wget -q -O - http://liveusb.info/multisystem/depot/multisystem.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install multisystem
sudo usermod -a -G adm "$SUDO_USER"

multibootusb

官方网站

自建 wnmp 运行环境

网盘下载:

链接: https://pan.baidu.com/s/1eR81ZCe 密码: zj68
解压后移动到 d:\wnmp 目录下,运行 service.bat(双击运行)。更多内容查看 readme.md

手动创建

环境:操作系统 win7,安装目录 d:\wnmp 。

nginx

1、下载 nginx,解压后改名到 d:\wnmp\nginx 目录下。
2、编辑 c:\wnmp\nginx\config\nginx.conf

解除以下行的注释:
#error_log  logs/error.log;
#pid        logs/nginx.pid;

在 http 块首添加以下行:
upstream php_processes {
    server 127.0.0.1:9000 weight=1;
}

在最后一个 server 块之后添加以下行:
server_names_hash_bucket_size 64; #server_name长度限制
server_names_hash_max_size 1024; #server_name条数限制
include ../../vhosts/*.conf;

php

1、下载 php,考虑到兼容性 和 运行模式,应该下载 x86 nts 版本。解压后改名到 d:\wnmp\php 目录下。
2、复制 d:\wnmp\php\php.ini-developmentd:\wnmp\php\php.ini,并编辑此文件:

生产环境请复制 php.ini-production

解除以下行的注释:
; extension_dir = "ext"
;cgi.fix_pathinfo=1
修改 cgi.fix_pathinfo 值
cgi.fix_pathinfo=0
其他配置根据需求自行配置

继续阅读

ubuntu 解决 txt 文本乱码问题

很多 Linux 用户都会遇到打开 TXT 文本乱码问题,在打开 Windows 下制作的 TXT 文件时尤为常见。为什么会有乱码呢?简单地说,就是因为 Linux 采用的是 UTF-8 编码,Windows 的中文编码是 GB18030。

解决的办法:让 Linux 的文本编辑器支持 GB18030。

1、安装“Dconf 系统配置编辑器”:

sudo apt-get install dconf-tools

2、安装之后启动“Dconf 系统配置编辑器”,点击左侧树型菜单,依次展开: org/x/editor/preferences/encodings

3、然后点击右侧的 auto-detected 的值,进行编辑,在 UTF-8 的后面添加 'GB18030'。注意大写、有英文单引号、逗号和空格。

4、修改好之后,关闭“Dconf 系统配置编辑器”,再次打开 TXT 文件,中文显示就正常了。

如何快速判断PHP是32位还是64位

可以输出一个超过42亿的整数,如 var_dump(12345678900);
如果类型为 float ,表示PHP是32位的,无法支持超过42亿的整数,
如果类型为 int,表示PHP是64位的,可以支持超过42亿的整数。

在Ubuntu上安装OpenShot 2.4.0

OpenShot视频编辑器是一个自由且开放源代码的视频剪辑软件,它支持FreeBSD、Linux、macOS与Windows。这个项目在2008年8月由Jonathan Thomas开始,其目标是提供一个稳定、自由且易于使用的视频编辑器。

OpenShot的核心视频编辑功能是以C++库实现,称之为libopenshot。OpenShot使用Qt部件工具箱并提供Python API。

官网地址

sudo add-apt-repository ppa:openshot.developers/ppa
sudo apt update && sudo apt install openshot-qt