• java.sql.Connection解决插入数据库中文乱码问题


    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class ConnectionManager {
        
        private static final String DRIVER = "com.mysql.jdbc.Driver";
        //private static final String URL = "jdbc:mysql://localhost:3306/mydb"
            private static final String URL = "jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf-8";
        private static final String USERNAME = "root";
        private static final String PASSWORD = "";
        
        public static Connection getConnection(){
                
            try {
                Class.forName(DRIVER);
                Connection connection = DriverManager.getConnection(URL,USERNAME,PASSWORD);
                return connection;
            } catch (Exception e) {
                e.printStackTrace();
            }
                return null;
            
        }
    }
                

    该段代码建立数据库链接,注释代码在数据库插入中文数据会显示乱码,在mydb后添加”?useUnicode=true&characterEncoding=utf-8”即可解决

    添加的作用是:指定字符的编码、解码格式

    例如:mysql数据库用的是gbk编码,而项目数据库用的是utf-8编码。这时候如果添加了useUnicode=true&characterEncoding=UTF-8 ,那么作用有如下两个方面:

    1. 存数据时:

         数据库在存放项目数据的时候会先用UTF-8格式将数据解码成字节码,然后再将解码后的字节码重新使用GBK编码存放到数据库中。

    2.取数据时:

         在从数据库中取数据的时候,数据库会先将数据库中的数据按GBK格式解码成字节码,然后再将解码后的字节码重新按UTF-8格式编码数据,最后再将数据返回给客户端。

  • 相关阅读:
    JS基础类型和引用类型
    ul的margin撑不开想要的距离的办法
    html中的列表
    BEM的命名规则
    意义模糊的函数签名……文档注释
    最基础,新手入门第一段代码
    Cookie的使用
    用servlet校验密码2
    用servlet进行用户名和密码校验
    登录页面
  • 原文地址:https://www.cnblogs.com/gzp2015/p/6006449.html
Copyright © 2020-2023  润新知