Jdbc操作Mysql产生中文乱码的问题

简介:

 以前用JDBC操作mysql是这样的:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
     /** 
          * 1.插入数据时jdbc写法: 
          */ 
         public  static  void  main(String[] args)  throws  Exception { 
              
             //1.加载数据库驱动 
             Class.forName( "com.mysql.jdbc.Driver" ); //括号里是:数据库驱动类的完全限定名 
              
             //2.获取数据库的连接 
             Connection con = DriverManager.getConnection( "jdbc:mysql://127.0.0.1:3306/mydb" , "root" , "root" );  
             /** 
              * 注意事项:Connection来自于java.sql.Connection;mydb是数据库名称; 
              * root分别是数据库连接的用户名和密码,3306是mysql的端口号。 
              */ 
              
             //3.获取PreparedStatement对象 
             String sql =  "insert into t_user(username,address) values('韩','北京')"
             //String sql = "insert into t_student(name) values('中文')"; 
              
             PreparedStatement sta = con.prepareStatement(sql); 
             /** 
              * 注意事项:PreparedStatement来自于java.sql.PreparedStatemet 
              */ 
              
             //4.执行SQL语句 
             int  rows = sta.executeUpdate(); 
             if (rows >  0 ) { 
                 System.out.println( "操作成功!" ); 
            
              
             //释放资源 
             sta.close(); 
             con.close(); 
             /** 
              * 注意事项:要先关闭sta,再关闭con 
              */ 
              
         }

但是,今天不知道为什么就插入数据库的中文数据就变成了??

参考了此片博文:http://blog.csdn.net/gjife/article/details/7005655

 

用这种方法再操作就不会出现中文乱码的问题: 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
     public  static  void  main(String[] args)  throws  Exception { 
         
         String hostip =  "127.0.0.1"
         String DBname =  "mydb"
         String user =  "root"
         String passwd =  "root"
          
         //1.加载数据库驱动 
         Class.forName( "com.mysql.jdbc.Driver" ).newInstance(); 
          
         //2.获取数据库的连接 
         Connection con=DriverManager.getConnection( "jdbc:mysql://" +hostip + "/" +DBname+ "?user=" +user+ "&password=" +passwd+ "&useUnicode=true&characterEncoding=utf-8" ); 
          
         //3.获取PreparedStatement对象 
         String sql =  "insert into t_user(username,address) values('韩','北京')"
         //String sql = "insert into t_student(name) values('中文')"; 
          
         PreparedStatement sta = con.prepareStatement(sql); 
         /** 
          * 注意事项:PreparedStatement来自于java.sql.PreparedStatemet 
          */ 
          
         //4.执行SQL语句 
         int  rows = sta.executeUpdate(); 
         if (rows >  0 ) { 
             System.out.println( "操作成功!" ); 
        
          
         //释放资源 
         sta.close(); 
         con.close(); 
         /** 
          * 注意事项:要先关闭sta,再关闭con 
          */ 
          
     }

 

http://ocaicai.iteye.com/blog/1138479

可以参考下这篇关于中文乱码的文章




     本文转自韩立伟 51CTO博客,原文链接:http://blog.51cto.com/hanchaohan/925247,如需转载请自行联系原作者





相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
Java 关系型数据库 MySQL
mysql5.7 jdbc驱动
遵循上述步骤,即可在Java项目中高效地集成MySQL 5.7 JDBC驱动,实现数据库的访问与管理。
3246 1
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
499 0
|
SQL 分布式计算 关系型数据库
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
314 0
|
SQL 分布式计算 关系型数据库
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
412 0
|
关系型数据库 MySQL Java
【Azure 应用服务】App Service 无法连接到Azure MySQL服务,报错:com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
【Azure 应用服务】App Service 无法连接到Azure MySQL服务,报错:com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
786 0
|
前端开发 关系型数据库 MySQL
com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver 的区别
这篇文章讨论了`com.mysql.jdbc.Driver`和`com.mysql.cj.jdbc.Driver`两个MySQL驱动类的区别,指出`com.mysql.jdbc.Driver`适用于MySQL 5的`mysql-connector-java`版本,而`com.mysql.cj.jdbc.Driver`适用于MySQL 6及以上版本的`mysql-connector-java`。文章还提到了在实际使用中如何根据MySQL版本选择合适的驱动类。
com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver 的区别
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
367 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
|
SQL Java 关系型数据库
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
777 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
|
SQL 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
200 6
|
SQL 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(中)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
249 3

推荐镜像

更多