数据库之-------Mysql(JDBC实现&解决存储乱码问题)
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,数据库之-------Mysql(JDBC实现&解决存储乱码问题)1、乱码问题的解决很简单啦!首先在建立数据库的时候要指定字符集为utf-8,然后再进行JDBC编程的时候,在下面代码的url后面加上参
千家信息网最后更新 2026年11月01日数据库之-------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安全错误
数据库的锁怎样保障安全
互联网黑科技
平安科技 互联网
苏州互联网科技贷款公司
易通互联网络科技有限公司
老年人脱离互联网科技的作文
玖二柒互联网科技公司待遇
剑昆互联网络科技有限公司临桂
移动互联网科技股
千方科技属于互联网企业吗
洛阳昕诺飞互联网科技有限公司
华夏恒生互联网科技013171
用友工业互联网科技发展
产业互联网科技服务公司
互联网安防科技感
互联网科技包装股
普陀区互联网教育科技管理办法
保山互联网科技靠谱吗
互联网大会出现的黑科技
高科技和互联网的现代国家
利用互联网等科技手段
深圳九邦互联网科技有限公司
互联网科技缩写
易通互联网络科技有限公司
卓越科技互联网 招聘
上海电发互联网科技有限公司
深圳国际航运科技和互联网
崇明区互联网教育科技诚信经营
互联网公司黑科技创始人
科技信息时代互联网发展
黑龙江互联网科技公司