数据库之-------Mysql(JDBC实现&解决存储乱码问题)
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,数据库之-------Mysql(JDBC实现&解决存储乱码问题)1、乱码问题的解决很简单啦!首先在建立数据库的时候要指定字符集为utf-8,然后再进行JDBC编程的时候,在下面代码的url后面加上参
千家信息网最后更新 2025年11月09日数据库之-------Mysql(JDBC实现&解决存储乱码问题)
jdbc:mysql://[host][,failoverhost...][:port]/[database]
[?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...
jdbc:mysql://[host:port],[host:port].../[database]
[?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...
实例:
jdbc:mysql://localhost:3306/sakila?profileSQL=true
数据库之-------Mysql(JDBC实现&解决存储乱码问题)
1、乱码问题的解决很简单啦!
首先在建立数据库的时候要指定字符集为utf-8,然后再进行JDBC编程的时候,在下面代码的url后面加上参数characterEncoding即可!更多关于url参数的设置可以查看mysql官网文档:
http://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.html
jdbc:mysql://[host][,failoverhost...][:port]/[database]
[?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...
jdbc:mysql://[host:port],[host:port].../[database]
[?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...
实例:
jdbc:mysql://localhost:3306/sakila?profileSQL=true
package java_data_jdbc;
现只列举几个重要的参数,如下表所示:
| 参数名称 | 参数说明 | 缺省值 | 最低版本要求 |
| user | 数据库用户名(用于连接数据库) | 所有版本 | |
| password | 用户密码(用于连接数据库) | 所有版本 | |
| useUnicode | 是否使用Unicode字符集,如果参数characterEncoding设置为gb2312或gbk,本参数值必须设置为true | false | 1.1g |
| characterEncoding | 当useUnicode设置为true时,指定字符编码。比如可设置为gb2312或gbk | false | 1.1g |
| autoReconnect | 当数据库连接异常中断时,是否自动重新连接? | false | 1.1 |
| autoReconnectForPools | 是否使用针对数据库连接池的重连策略 | false | 3.1.3 |
| failOverReadOnly | 自动重连成功后,连接是否设置为只读? | true | 3.0.12 |
| maxReconnects | autoReconnect设置为true时,重试连接的次数 | 3 | 1.1 |
| initialTimeout | autoReconnect设置为true时,两次重连之间的时间间隔,单位:秒 | 2 | 1.1 |
| connectTimeout | 和数据库服务器建立socket连接时的超时,单位:毫秒。 0表示永不超时,适用于JDK 1.4及更高版本 | 0 | 3.0.1 |
| socketTimeout | socket操作(读写)超时,单位:毫秒。 0表示永不超时 | 0 | 3.0.1 |
对应中文环境,通常mysql连接URL可以设置为:
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=gbk&autoReconnect=true&failOverReadOnly=false
在使用数据库连接池的情况下,最好设置如下两个参数:
autoReconnect=true&failOverReadOnly=false
需要注意的是,在xml配置文件中,url中的&符号需要转义成&。比如在tomcat的server.xml中配置数据库连接池时,mysql jdbc url样例如下:
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=gbk
&autoReconnect=true&failOverReadOnly=false
3、代码如下:
import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;public class Jdbc_01 { public static void main(String[] args) { String userName = "root"; String password = "root"; /* * 这个url的格式后面是可以带很多参数的,详细请参考mysql官网http://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.html */ String url = "jdbc:mysql://localhost:3306?characterEncoding=utf-8&useSSL=true"; String sql1 = "Select * from Class"; String sql = "INSERT INTO Class (name,age) VALUES ('你好','21')"; try { /* * 这个驱动的写法有两种,两者是继承关系,还有是:org.gjt.mm.mysql.Driver */ Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection(url, userName, password); Statement stmt = conn.createStatement(); stmt.execute("use student;"); stmt.execute(sql); ResultSet res = stmt.executeQuery(sql1); while(res.next()){ String id = res.getString("id"); String name = res.getString("name"); int age = res.getInt("age"); System.out.println("序号: "+id + " " +"姓名: "+ name + " "+ age+"岁!"); } } catch (Exception e) { e.printStackTrace(); } }}部分资料来源:http://elf8848.iteye.com/blog/1684414
数据
数据库
参数
版本
单位
字符
乱码
问题
代码
时候
格式
永不
用户
配置
存储
最低
重要
成功
两个
之间
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
完美阿拉德服务器异常
我的世界服务器盗版小游戏
软件开发业务的经营范围
芯片软件开发是什么专业
广东电网网络安全部
电脑显示服务器返回错误
黑客网络安全知识问答
中石化 软件开发 工资
利用电信网络技术
通州区正规网络技术概况
数据库能否存储图片视频
可以注册软件开发公司吗
mysql数据库set语句
攀枝花网络技术哪家好
联系人数据库怎么恢复软件
简单易用的数据库
基础设施即代码云服务器管理
百度数据库恢复软件
2020研究生网络安全考试
益阳软件开发培训在哪里
中网络技术有限公司
软件开发风险管控措施
从科技方面讲互联网
数据库import
数据库开发技术创建
数据库原理实验考试试卷
数据库左右连接场景
山西高校党建软件开发专业制作
科技互联网电商大会
做网络安全公司解决方案