java连接mysql抛异常_Java 连接MySQL数据库 插入中文 抛出异常
mysql数据库字符集设为默认;
下面解决好的代码,没乱码,我测试过的
String sContent = new String(request.getParameter("content1").getBytes("iso8859_1"));
String hostip = "127.0.0.1";
String DBname = "test";
String user = "root";
String passwd = "";
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection=DriverManager.getConnection("jdbc:mysql://"+hostip +"/"+DBname+"?user="+user+"&password="+passwd+"&useUnicode=true&characterEncoding=utf-8");
//注:上面这句如果写成下面这句,便会出现插入到数据库的汉字全变问号的情况(当然,不用汉字的话完全可以用下面这句)
//Connection connection=DriverManager.getConnection("jdbc:mysql://"+hostip + "/"+DBname,user,passwd);
Statement statement = connection.createStatement();
statement.executeUpdate("INSERT INTO cont1 (content) VALUES ('"+sContent+"')"); //cont1为表,content为字段
%>
这样是解决了问题,但我还是不太明白其中的道理,似乎在tomcat或者apache的服务器配置中还有编码相关的什么东西,我的想法来源于这样一个实施:我在LINUX做的网站,其jdbc链接用的是Connection connection=DriverManager.getConnection("jdbc:mysql://"+hostip + "/"+DBname,user,passwd)这句,用了好长时间都没有出现乱码的现象,某一天我将其一直到一台Windows服务器上,去出现了表单提交后出现乱码的情况。于是我想,这可能不是jsp页面语句的问题,当然,通过jsp页面的设定可以解决这个问题,但总感觉心里不太踏实。
------------------------------------------------------------------------------
另转一片网文(作者的表达能力似乎欠佳,但技术方面还是比较到位的)
让JSP和mysql数据库使用utf-8编码
使用UTF-8其实对于JSP来说
对于在网页常常会需要输入或输出多国语文上
算是一个比较方便的编码
JSP的转码设定其实也不难..只要记得加上去即可
不然JSP内定的编码可不是UTF-8喔
不过可惜的是MySQL至今尚没有完整支援UTF-8
但是可别这样就灰心啰
因为我门可以透过MySQL提供的Connection/J的JDBC介面来存取UTF-8编码的资料
利用JDBC自动转码对我们撰写网页的人是很方便的
好拉!!不多说..马上进入主题
我以下分几个步骤来说明.很少.但都是需要设定的地方而已
只是提出来给大家注意
1.透过JDBC连接MySQL
12
Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection conn = DriverManager.getConnection("jdbc:mysql://[hostname]/[database]?user=&password=&useUnicode=true&characterEncoding=utf-8");
红字的地方一定要加入
因为那是唿叫(说唿叫应该可以吧)JDBC利用UTF-8的编码来存取资料
简单的说
就是JSP跟JDBC说....我只要UTF-8.其他免谈....
这样说了解吧^^"
PS:
其实这部分我是建议最少用JSP include的方式来作.比较不会出错
只要需要的时候include近来即可..有问题只要找寻一个档案
不要像我每一个都得去检查有没有错误...
之前的问题就是有一个档案的JDBC编码设定为Big5
害我弄了好多天才找到.....
更进阶的朋友可是试着用JavaBean来控制应该会更简单
2.
网页的部分一定要设定为如下的程式码
1
是跟JSP跟浏览器(如IE)说我的编码要用UTF-8来显示
而下面这个pageEncoding可加可不加..我是习惯都加啦
不知道会不会有问题
请参考javamon65大大的精辟文章会更了解http://www.javaworld.com.tw/jute/post/view?bid=6&id=27113&sty=2
1
3.
当你用Form传递资料到另一个网页后
那接收资料的编码模式也得设定
不然所接收资料的编码可是使用JSP内定的编码
你看到的都是乱码了
1
4.
相反的.如果你传递资料出去(表单似乎也包含在内.这我不太清楚得请教各位大大)
就必须设定下面的程式码
1
告诉Tomcat需要使用UTF-8来处理资料的传递
5. 这也是很重要的一点喔 记得在编辑你的JSP档案后 在储存的时候记得储存成为UTF-8的格式 因为我适用Dreamweaver MX MX会自动依据ContentType来帮你储存档案所以不用担心 但是你若是用NotePad(记事本)写JSP的话 那就要在档案格式那边选UTF-8的格式来储存啰 否则网页显示出来的一样是乱码 ex:你存成Big5格式来存档.但是网页编码是设定为UTF-8 那JSP跟浏览器连络的时候自然是以UTF-8来处理 所以Big5的格式会变转成UTF-8...当然是乱码啰 所以记得这件很重要的事情
java连接mysql抛异常_Java 连接MySQL数据库 插入中文 抛出异常相关推荐
- java遇到无穷大抛异常_Java中一个for语句导致无穷大死循环的例子
在Java开发中常用到For循环,它对简化业务处理,提高效率,非常有帮助.但要防止程序算法中可能导致死循环的情况,而且有的死循环还不好察觉.比如下面这个例子,算法极容易认为是50,实际上是无穷大的一个 ...
- 连接DB2 抛异常SQL Error SQLCODE=-204, SQLSTATE=42704
连接DB2 抛异常SQL Error SQLCODE=-204, SQLSTATE=42704 参考文章: (1)连接DB2 抛异常SQL Error SQLCODE=-204, SQLSTATE=4 ...
- java 代码段 执行超时 抛异常_Java 并发队列详解TransferQueue、BlockingQueue、BlockingDeque
阻塞队列 BlockingQueue java.util.concurrent 包里的 BlockingQueue 接口表示一个线程安放入和提取实例的队列. BlockingQueue 用法 Bloc ...
- linux java url 异常_Java连接虚拟机(Linux)中的Oracle数据库,连接异常~新手求解!
此Oracle数据库在Linux系统下可用,在Windows里执行如下代码:DriverManager.getConnection("jdbc:oracle:thin:@192.168.22 ...
- java mysql 工具类_Java SE 之 数据库操作工具类(DBUtil)设计
JDBC创建数据库基本连接 //1.加载驱动程序 Class.forName(driveName); //2.获得数据库连接 Connection connection = DriverManager ...
- mybatis mysql 中文乱码_mybatis连接mysql数据库插入中文乱码
对于mysql数据库的乱码问题,有两中情况: 1. mysql数据库编码问题(建库时设定). 2. 连接mysql数据库的url编码设置问题. 对于第一个问题,目前个人发现只能通过重新建库解决,建库的 ...
- 数据库中文mybatis连接mysql数据库插入中文乱码
文章结束给大家来个程序员笑话:[M] 对于mysql数据库的乱码问题,有两中情况: 1. mysql数据库编码问题(建库时设定). 2. 连接mysql数据库的url编码设置问题. 对于第一个问题,目 ...
- mysql 中文乱码 mybatis_mybatis连接mysql数据库插入中文乱码
对于mysql数据库的乱码问题,有两中情况: 1. mysql数据库编码问题(建库时设定). 2. 连接mysql数据库的url编码设置问题. 对于第一个问题,建库的时候,选择UTF-8字符集.我试过 ...
- java 向上抛异常_Java 异常的处理方式throws
在昨天的文章<Java 异常的分类与处理>中我们简单地了解了一下在方法声明的位置上使用throws关键字向上抛出异常,下面深入讲解异常的第一种处理方式throws. 下面深入讲解异常的第一 ...
最新文章
- PHPcms 系统简单使用
- 三个基本原理和概念 - 计算机图形学、数据加密、数据挖掘
- JAVA 通过url下载图片保存到本地(亲测)
- mysql中使用sqldriverconnect()报错的解决
- JSF使用HTML5的custom attribute
- 微信自动发消息机器人实现方法
- 【大模型迁移 2022】Exploring Visual Prompts for Adapting Large-Scale Models
- 剑指 Offer(C++版本)系列:剑指 Offer 10- I 斐波那契数列
- Linux那些事儿 之 我是PCI(1)PCI,我们来了
- JS鼠标移入移出事件:onmouseover事件和onmouseout事件实例
- 2022-10-03笔记(内网横向)
- 计算机组装防呆,电脑内存如果没有防呆口反插有什么后果?
- 开关电源的EMC干扰不知道是怎么产生的?(开关电源EMC探析)
- 彻底解决Android系统A-GPS搜不到卫星的问题!亲测!
- java.sql.SQLException: Parameter number X is not an OUT parameter
- TASK SCHEDULE(任务计划)服务无法运行 解决方案
- NPOI下载Excel
- java 进阶笔记线程与并发之ForkJoinPool简析
- 《控制系统设计指南》_George Ellis著_部分章节读书笔记
- Sunny.Xia的深度学习(四)MMOE多任务学习模型实战演练
热门文章
- C#日期函数所有样式大全
- 推荐系统的变与不变:冷启动、召回排序、长期生态与目标拆解
- 知识图谱:刻画事物关系,沉淀领域知识!
- 【白皮书分享】2021中国女性婚恋观白皮书.pdf(附下载链接)
- 【干货】美团大脑系列之商品知识图谱的构建及应用.pdf(附下载链接)
- 速成pytorch学习——1天
- 腾讯广告“虚拟IP”赛题突出重围,入选第七届“互联网+”双创大赛产业命题
- 数据不平衡问题都怎么解?
- 心路分享 | 2022暑期算法实习复盘
- threejs 形状几何体_ThreeJS学习笔记(五)——二维几何体元素及穿梭动画