文档章节

JadePool轻松修改MySQL字符集

j
 jadepool
发布于 2017/05/07 17:02
字数 332
阅读 68
收藏 0

JadePool轻松修改MySQL数据库字符集

JadePool提供了一组管理数据库结构信息的工具类,可以轻松遍历数据库、表、字段等信息。加上JadePool非常方便地增删改查的操作方法。非常轻松…


import cn.jadepool.sql.Field;
import cn.jadepool.sql.Jade;
import cn.jadepool.sql.Table;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * 修改MySQL数据库字符集
 *
 * @author 上海皆普信息科技有限公司 胡开明
 */
public class ChangeCharset {

    //ALTER SCHEMA `jadepool_dictionary` DEFAULT COLLATE utf8mb4_unicode_ci ;
    //ALTER TABLE `jadepool_dictionary`.`dic_emoji` COLLATE = utf8mb4_unicode_ci ;
    //ALTER TABLE `jadepool_dictionary`.`dic_emoji` CHANGE COLUMN `code` `code` VARCHAR(32) CHARACTER SET 'utf8mb4'  ;
    //ALTER TABLE `fwfw_jiben`.`fwfw_dw` CHARACTER SET = utf8mb4 , COLLATE = DEFAULT ,CHANGE COLUMN `jianjie` `jianjie` TEXT CHARACTER SET 'utf8mb4'  ;

    
    public static void main(String[] args) {
        Jade j = new Jade(getMySQLCon());
        String schema = j.getDb().getCatalog();//数据库的名称
        j.execute("ALTER SCHEMA `" + schema + "` DEFAULT COLLATE utf8mb4_unicode_ci");
        String[] tables = j.getDb().getTableNames();
        for (String tableName : tables) {
            j.execute("ALTER TABLE " + tableName + " COLLATE = utf8mb4_unicode_ci ");
            Table table = j.getDb().getTable(tableName);
            String[] fields = table.getFields();
            for (String fieldName : fields) {
                Field field = j.getDb().getField(tableName, fieldName);
                String typeName = field.getTypeName();
                String size = field.getSize();
                if ("text".equals(typeName)) {
                    j.execute("ALTER TABLE " + tableName + " CHARACTER SET = utf8mb4 , COLLATE = DEFAULT ,CHANGE COLUMN `"+fieldName+"` `"+fieldName+"` TEXT

CHARACTER SET 'utf8mb4' ");
                }
                if ("varchar".equals(typeName)) {
                    j.execute("ALTER TABLE " + tableName + "  CHANGE COLUMN `"+fieldName+"` `"+fieldName+"` VARCHAR("+size+") CHARACTER SET 'utf8mb4'  ");
                }
            }
        }
        j.commit();
    }

    public static synchronized Connection getMySQLCon() {
        Connection con = null;
        String url = "jdbc:mysql://localhost:3306/db_name_xxxxxx?

useOldAliasMetadataBehavior=true&zeroDateTimeBehavior=convertToNull";//useUnicode=true&characterEncoding=utf8mb4&
        String userName = "xxxxxx";
        String password = "xxxxxx";
        try {
            Class.forName("com.mysql.jdbc.Driver");//com.mysql.jdbc.Driver
            con = DriverManager.getConnection(url, userName, password);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(ChangeCharset.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex) {
            Logger.getLogger(ChangeCharset.class.getName()).log(Level.SEVERE, null, ex);
        }
        return con;
    }

}

 

© 著作权归作者所有

j
粉丝 0
博文 1
码字总数 332
作品 0
芜湖
私信 提问
报表开发工具中mysql数据库连接编码转化失效解决方案

问题描述 在报表开发工具FineReport中,mysql数据库连接通过数据连接编码转换进行编码的转换,在通过报表录入往数据库中录入中文数据的时候,总是出现乱码,这个该怎么解决呢? 2. 解决方案 ...

九月你好123
2015/11/12
76
0
修改mysql默认字符集的方法

mysql默认字符集能否进行修改呢?答案是肯定的,下面就将教您两种修改mysql默认字符集的方法,希望对您学习mysql默认字符集方面能有所启迪。 (1) 最简单的修改方法,就是修改mysql的my.ini文...

不死鸟007
2016/12/29
0
0
设定mysql的默认字符集

mysql> show global variables like '%charac%'; --查看当前mysql采用的字符集 mysql>show global variables like '%server%'; --查看当前服务端全局字符集 +----------------------+------......

笔下生辉
2017/03/31
0
0
修改及查看mysql数据库的字符集

Liunx下修改MySQL字符集: 1.查找MySQL的cnf文件的位置 find / -iname '*.cnf' -print /usr/share/mysql/my-innodb-heavy-4G.cnf /usr/share/mysql/my-large.cnf /usr/share/mysql/my-small......

神勇小白鼠
2011/02/25
249
0
MYSQL 字符集问题

MySQL的字符集支持(Character Set Support)有两个方面: 字符集(Character set)和排序方式(Collation)。 对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)...

Adairs
2016/03/10
13
0

没有更多内容

加载失败,请刷新页面

加载更多

rime设置为默认简体

转载 https://github.com/ModerRAS/ModerRAS.github.io/blob/master/_posts/2018-11-07-rime%E8%AE%BE%E7%BD%AE%E4%B8%BA%E9%BB%98%E8%AE%A4%E7%AE%80%E4%BD%93.md 写在开始 我的Arch Linux上......

zhenruyan
今天
5
0
简述TCP的流量控制与拥塞控制

1. TCP流量控制 流量控制就是让发送方的发送速率不要太快,要让接收方来的及接收。 原理是通过确认报文中窗口字段来控制发送方的发送速率,发送方的发送窗口大小不能超过接收方给出窗口大小。...

鏡花水月
今天
10
0
OSChina 周日乱弹 —— 别问,问就是没空

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌,请使劲儿戳(这里) @wqp0010 :周...

小小编辑
今天
1K
11
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
5
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部