myeclispe中向mysql中插入中文数据出现??问题解决办法
或许很多人会出现??这种令人头痛的mysql的中文乱码问题:解决如下:
1.先对于新建的数据库要设置默认的字符集为UTF-8
create database mydb default character set utf8 collate utf8_general_ci;
2.然后对于想对应的表进行设置默认字符集
CREATE TABLE IF NOT EXISTS `mydb` (
`username` varchar(64) NOT NULL,
`userid` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3.最重要的一步在jdbc中的uri的地址中添加如下语句?characterEncoding=UTF-8设置字符集为UTF-8
jdbc:mysql://localhost:3306/db_name?characterEncoding=UTF-8
如下是一个例子:
regServlet.java
package cn.lonecloud.demo; import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; public class RegServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html");
PrintWriter out = response.getWriter();
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
Connection conn=null;
PreparedStatement prst=null;
ResultSet rs=null;
String db_driver="com.mysql.jdbc.Driver";
String db_url="jdbc:mysql://localhost:3306/db_friend?characterEncoding=UTF-8";
String db_user="root";
String db_password="";
String sql1="select * from userinfo where username=?";
String sql2="insert into userinfo values(?,?)";
try {
String username=request.getParameter("userName");
String userpass=request.getParameter("password");
Class.forName(db_driver);
conn=DriverManager.getConnection(db_url,db_user,db_password);
prst=conn.prepareStatement(sql1);
prst.setString(1, username);
rs=prst.executeQuery();
if (!rs.next()) {
prst=conn.prepareStatement(sql2);
prst.setString(1, username);
prst.setString(2, userpass);
int count=prst.executeUpdate();
if (count!=0) {
HttpSession session=request.getSession();
session.setAttribute("username", username);
request.setAttribute("msg", "注册成功!");
request.getRequestDispatcher("index.jsp").forward(request, response); }else{
request.setAttribute("msg", "登录失败,密码错误!");
request.getRequestDispatcher("error.jsp").forward(request, response); }
}else {
request.setAttribute("msg", "用户不存在!");
request.getRequestDispatcher("error.jsp").forward(request, response); }
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
if (rs!=null) {
try {
rs.close();
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
if (prst!=null) {
try {
prst.close();
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
if (conn!=null) {
try {
conn.close();
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
out.close();
}
} }
reg.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>新用户注册</h1>
<form action="RegServlet" method="post">
<input type="text" name="userName"></br>
<input type="password" name="password"></br>
<input type="submit" id="btn_load">
</form>
</body>
</html>
LoginFilter.java
package cn.lonecloud.demo; import java.io.IOException; import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; public class LoginFilter implements Filter {
@Override
public void destroy() {
// TODO Auto-generated method stub } @Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
//在过滤器中必须加入下面这两句话,不然会不能这样调用下面的方法
HttpServletRequest req=(HttpServletRequest) request;
HttpServletResponse resp=(HttpServletResponse)response;
request.setCharacterEncoding("UTF-8");
String path=req.getServletPath();
HttpSession session=req.getSession();
String username=(String)session.getAttribute("username");
System.out.println(path);
boolean b1=path.endsWith("login.jsp");
boolean b2=path.endsWith("error.jsp");
boolean b3=path.endsWith("LoginServlet");
boolean b4=path.endsWith("RegServlet");
boolean b5=path.endsWith("reg.jsp");
boolean b6=(username!=null);
if (b1||b2||b3||b4||b5||b6) {
chain.doFilter(request, response);
}else {
resp.sendRedirect("error.jsp");
} } @Override
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub } }
myeclispe中向mysql中插入中文数据出现??问题解决办法的更多相关文章
- 解决Python向MySQL数据库插入中文数据时出现乱码
解决Python向MySQL数据库插入中文数据时出现乱码 先在MySQL命令行中输入如下语句查看结果: 只要character_set_client character_set_database ch ...
- 解决mysql无法插入中文数据及插入后显示乱码的问题
(1)废话不多说就是使用mysql数据库的时候无法输入中文,可以输入中文后显示的又是乱码!! (2开始解决问题: 第一步:找到安装mysql的目录找到 my.ini 文件: 第二步:使用记事本打开my ...
- python 向MySQL里插入中文数据
用python向MySQL中插入中文数据出错,原代码片段: 1 db = MySQLdb.connect("localhost","root","12 ...
- mysql不能插入中文数据
上次遇到的是向mysql插入中文数据,中文数据乱码了.这次直接就不能插入中文数据了!!!! 参考博文:http://blog.csdn.net/generalyy0/article/details/7 ...
- pycharm连接mysql数据库插入中文数据时出现1366编码错误
创建数据库的时候应该这样创建: create database xxxxxxx DEFAULT CHARSET utf8 COLLATE utf8_general_ci:
- mysql使其支持插入中文数据的办法
1.找到安装的文件夹C:\Program Files (x86)\MySQL\MySQL Server 5.0 2.修改文件夹下的my.ini文件: 找到画黄线的这一字段 将后面改为utf8 这个过程 ...
- mysql插入中文数据变成问号怎么处理
插入中文数据变成问号,一般都是因为字符集没有设置成utf8的原因 1.修改字符集: ALTER TABLE 表名 MODIFY 列名 类型(50) CHARACTER SET "utf8&q ...
- MySQL插入中文数据出现?号
原文转载自:https://blog.csdn.net/LynneZoe/article/details/79174119 运行环境:win10 mysql版本:Mysql5.6 做一个项目的时候,向 ...
- EF 连接MySQL 数据库 保存中文数据后乱码问题
EF 连接MySQL 数据库 保存中文数据后乱码问题 采用Code First 生成的数据库,MySQL数据库中,生成的表的编码格式为***** 发现这个问题后,全部手动改成UTF8(图是另一个表的 ...
随机推荐
- eclipse 用maven创建web项目
Eclipse 用maven构建web项目 (2013-01-27 11:05:31) 转载▼ 标签: it eclipse maven spring web 杂谈 一.背景介绍 对于初学者,用m ...
- ie、firefox、chrome中关于style="display:block" 引发的页面布局错乱的解决办法
ie.firefox.chrome中关于style="display:block" 引发的页面布局错乱的解决办法: table中tr 添加style="display:b ...
- thinkphp5踩坑之部署到服务器模板不存在
一个项目部署到Linux服务器上去的时候,发现某些模板竟然会报错说"模板不存在:/Application/Admin/-.", 解决方法:网上有说是因为使用$this->fe ...
- [DeeplearningAI笔记]ML strategy_2_2训练和开发/测试数据集不匹配问题
机器学习策略-不匹配的训练和开发/测试数据 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.4在不同分布上训练和测试数据 在深度学习时代,越来越多的团队使用和开发集/测试集不同分布的数据来 ...
- jquery中ajax跨域提交的时候会有2次请求
我们平时在同域中请求页面什么的时候不会有这种情况,这种情况大多发生在移动端的跨域请求中发生的. 解决方法就是在服务端中加一层过滤HTTP请求的类型,把OPTION等不用的类型过滤掉.就是当请求为非 H ...
- rabbitMQ的安装和配置(一)
erlang是一门面向并发的编程语言,流行的消息队列rabbitMQ是基于erlang环境运行的: 系统环境 操作系统:oracle-linux7.3 erlang版本:otp_src_20.0 下载 ...
- 记录下直接在git里读取出差异并打包的代码
一行命令: git diff --name-only HEAD commit_id | xargs tar -zcvf diff_head.tar.gz 这里的HEAD可以理解为最新的版本 HEAD本 ...
- iOS-Wonderful 完美颜色库
开发中颜色的使用也是非常频繁的,这里推荐一个dsxNiubility大牛写的颜色库:Wonderful:它的好用就是很清楚的把每个常用的颜色进行了由浅到深的分层,让我们使用时可以根据自己对颜色的深浅直 ...
- 介绍一种非常好用汇总数据的方式GROUPING SETS
介绍 对于任何人而言,用T-SQL语句来写聚会查询都是工作中重要的一环.我们大家也都很熟悉GROUP BY子句来实现聚合表达式,但是如果打算在一个结果集中包含多种不同的汇总结果,可能会比较麻烦.我将举 ...
- BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡 [高斯消元 概率DP]
1778: [Usaco2010 Hol]Dotp 驱逐猪猡 题意:一个炸弹从1出发p/q的概率爆炸,否则等概率走向相邻的点.求在每个点爆炸的概率 高斯消元求不爆炸到达每个点的概率,然后在一个点爆炸就 ...