JAVA与mysql之间的编码问题

之前一直没有自己动手配置过数据库所以也一直没有发现这个问题,百度了一下发现网络上并没有相应的解决方案,于是我开始自己摸索的解决这个问题。

问题状况大致是这样的,在数据库中存在一个表,当我在java代码中删除表中的元祖的时候没有办法根据中文的属性值删除对应元祖。可能表述的不是很准确,接下来我配合图片进行说明吧。

工具/原料

  • mysql
  • eclipse
  • navicat

方法/步骤

  1.  一般出现在这种问题都是因为数据库和编译环境使用的编码不一样的造成的,为了方便说明我举个学生信息表为例吧。

    比如现在存在一个叫小明(char型)的学生,对应学号是1(inr型),按照学号删除学号为1的小明执行结果没有任何问题,按照名字删除名字叫小明的学生就无法删除。如果你遇到的问题和我一样那就接着往下看吧,如果不是那可能下面的内容不能帮助到你。

  2.  首先查一下当前数据库的文字编码

    SHOW VARIABLES LIKE ‘character_set_%‘

  3.  我用的是mysql数据库,编码如下:

  4.  解决方法很简单在数据库连接语句后面加上一句?useUnicode=true&characterEncoding=GBK就行了。

    String url = "jdbc:mysql://localhost:3306/db_database?useUnicode=true&characterEncoding=GBK";String user = "root"; String passWord = "root";

时间: 2024-08-26 20:21:05

JAVA与mysql之间的编码问题的相关文章

java和mysql之间的时间日期类型传递

mysql(版本:5.1.50)的时间日期类型如下: datetime 8bytes xxxx-xx-xx xx:xx:xx 1000-01-01 00:00:00到9999-12-31 23:59:59timestamp 4bytes xxxx-xx-xx xx:xx:xx 1970-01-01 00:00:01到2038date 3bytes xxxx-xx-xx 1000-01-01到9999-12-31year 1bytes xxxx 1901到2155time 3bytes xx:xx

PHP、MySQL、浏览器编码不统一的情况下如何保证正常解析?

最理想的情况是,把三者编码都统一成gbk或者utf-8,这样解析就一切正常.但如何不统一呢? 比如: --PHP的编码是utf-8 --MySQL的编码是utf-8 --浏览器的编码是gbk 这时,只要考虑PHP和浏览器之间即可,因为PHP和MySQL的编码是一致的,可以不考虑.而如何告诉浏览器,PHP返回给浏览器的东西是用utf-8,请用utf-8解析? 答案: (1)方法之一就是我们在PHP中用的那个header函数.header("Content-type:text/html;charse

mysql与服务器之间的编码问题

1.之前在练习一个java web的项目时,mysql的编码设置正确,服务器的编码也设置正确,但向mysql中存储数据时,就会出现乱码问题,后来发现是mysql与服务器之间的编码设置问题,以下是mysql的目录,复制my-default.ini该文件,并且命名为my.ini,这样根目录下就有两个.ini文件了,一个是my-default.ini,一个是my.ini . 2.接下来我们只需修改my.ini里面的内容就行了 在[mysqld]下面添加 character_set_server=utf

Java之MySQL

1.数据库 1 数据库概念(了解) 1.1 什么是数据库 数据库就是用来存储和管理数据的仓库! 数据库存储数据的优先:可存储大量数据: l  方便检索: l  保持数据的一致性.完整性: l  安全,可共享: l  通过组合分析,可产生新数据. 1.2 数据库的发展历程 l  没有数据库,使用磁盘文件存储数据: l  层次结构模型数据库: l  网状结构模型数据库: l  关系结构[c1] 模型数据库:使用二维表格来存储数据: l  关系-对象模型数据库: MySQL就是关系型数据库! 1.3

linux下的mysql修改默认编码

基础练习 矩阵乘法 时间限制:1.0s   内存限制:512.0MB 问题描述 给定一个N阶矩阵A,输出A的M次幂(M是非负整数) 例如: A = 1 2 3 4 A的2次幂 7 10 15 22 输入格式 第一行是一个正整数N.M(1<=N<=30, 0<=M<=5),表示矩阵A的阶数和要求的幂数 接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值 输出格式 输出共N行,每行N个整数,表示A的M次幂所对应的矩阵.相邻的数之间用一个空格隔开 样例输入 2 2 1 2 3

通过java连接mysql总结

简介:通过java连接mysql需要用到JDBC驱动.JDBC驱动安装在mysql-client客户端,mysql-server服务端不需要安装. 数据库安装初始化略.测试用到的命令: 1.创建测试用库,表,字段: create database score; use score; create table score(id nvarchar(10),stu_id nvarchar(10),c_name nvarchar(10),grade nvarchar(10)); insert into

Java几种常见的编码方式

Java综合 几种常见的编码格式 为什么要编码 不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用的语言.由于人类的语言有太多,因而表示这些语言的符号太多,无法用计算机中一个基本的存储单元—— byte 来表示,因而必须要经过拆分或一些翻译工作,才能让计算机能理解.我们可以把计算机能够理解的语言假定为英语,其它语言要能够在计算机中使用必须经过一次翻译,把它翻译成英语.这个翻译的过程就是编

java 链接mysql数据库以及乱码

 JDK:j2sdk1.5.0 MySQL:mysql-5.0.41-win32_178 JDBC驱动:mysql-connector-java-3.2.0-alpha-bin.jar 一.java与数据库的连接 java与数据库的连接书上写有四种方法,我的理解其实从其实质上说就两种,一种建立JDBC-ODBC桥,通过ODBC数据源与数据库相连.另一种是纯java式的连接,通过java类库API驱动连接.以MySQL为例,这两种方法分别需要MySQL-ODBC驱动和MySQL-JDBC-OD

php, html, javascript, mysql 之间的特殊字符处理

php, html, javascript, mysql 之间的特殊字符处理 特殊字符指在程序中有具有特殊的控制意义的字符,一般来讲各个程序语言所使用的特殊字符大部分都来源于传统的 C 语言,加上自身的扩展,便较为完整的满足了编程需求. 程序自身的转义处理能够解决自身的处理需求,问题基本上都集中在程序语言之间的不同转移策略所带来的匹配差异上.几乎对所有语言来说单引号(')和双引号(")都会带来一些麻烦. php 中对字符的转义采用反斜杠(\),再与数据库进行交互时采用的函数有: 1 addsla