Maison  >  Article  >  Java  >  Solution aux données tronquées insérées dans MySQL à l'aide de Java

Solution aux données tronquées insérées dans MySQL à l'aide de Java

尚
original
2019-11-30 11:15:262304parcourir

Solution aux données tronquées insérées dans MySQL à l'aide de Java

Méthode 1 : Définir l'encodage unifié

1. Définir l'encodage de l'environnement Eclipse ( recommandé :tutoriel vidéo Java)

Solution aux données tronquées insérées dans MySQL à laide de Java

2. Définissez l'encodage de l'environnement MySQL

mydb comme base de données qui doit être modifié Nom

Solution aux données tronquées insérées dans MySQL à laide de Java

Méthode 2 : Définir l'encodage lors de la création de la base de données

1. Définissez l'encodage lorsque mysql crée la base de données

create database mydb default character set utf8 collate utf8_general_ci;

2. Définissez l'encodage lors de la création de la table

CREATE TABLE `type` ( 
`id` int(10) unsigned NOT NULL auto_increment, 
`flag_deleted` enum('Y','N') character set utf8 NOT NULL default 'N', 
`flag_type` int(5) NOT NULL default '0', 
`type_name` varchar(50) character set utf8 NOT NULL default '', 
PRIMARY KEY (`id`) 
)  DEFAULT CHARSET=utf8;

Méthode 3 : Définir lors de la connexion à la base de données

Ajouter ?useUnicode=true&characterEncoding=UTF-8

public class TestJdbc {
    private static String URL = "jdbc:mysql://localhost:3306/studentmanage?useUnicode=true&characterEncoding=UTF-8";
    useUnicode=true&characterEncoding=UTF-8
    private static String USER = "root";
    private static String PASSWORD = "root";

    public static void main(String[] args) {
        Connection con = null;

        String sql = "insert into user(uid,uname,password) values(?,?,?)";
        try {
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection(URL, USER, PASSWORD);
            con.close();
        } catch (Exception e) {
            e.printStackTrace();
        } 
    }

après l'URL pour spécifier le format d'encodage et de décodage de personnages.

Par exemple : la base de données mysql utilise l'encodage gbk, tandis que la base de données du projet utilise l'encodage utf-8. Si useUnicode=true&characterEncoding=UTF-8 est ajouté à ce moment, l'effet a les deux aspects suivants :

Lors du stockage des données :

La base de données utilisera d'abord UTF-8 lors du stockage des données du projet . Le format décode les données en bytecode, puis réutilise le bytecode décodé pour le stocker dans la base de données à l'aide du codage GBK.

Lors de la récupération des données :

Lors de la récupération des données de la base de données, la base de données décodera d'abord les données de la base de données en bytecode au format GBK, puis convertira les octets décodés. Le code ré-encode les données au format UTF-8 et renvoie enfin les données au client.

Pour plus de connaissances sur Java, veuillez faire attention à la colonne Tutoriel de base Java.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn