数据库之-------Mysql(JDBC实现&解决存储乱码问题)
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,数据库之-------Mysql(JDBC实现&解决存储乱码问题)1、乱码问题的解决很简单啦!首先在建立数据库的时候要指定字符集为utf-8,然后再进行JDBC编程的时候,在下面代码的url后面加上参
千家信息网最后更新 2025年02月03日数据库之-------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安全错误
数据库的锁怎样保障安全
静安区专业软件开发平台资质
vfp 读取某网页数据库
大型游戏服务器多少钱
连云港诚邦网络技术有限公司
软件开发平台技术特征
美容科技互联网模式
网络安全主长是谁
数据库关系表链接
海典h2用什么数据库
雾气滤镜软件开发
网吧服务器选什么配置
关系数据库管理
论文 网络安全综述
加强网络安全防范意识论文
软件开发时间延迟情况说明
软件开发视觉检测工资
软件开发管理计划
网络安全好找工作
烟台弘度互联网科技
想学网络技术去哪家好
全球的服务器消耗电量
提瓦特小助手服务器被挤爆了
博世互联网络科技有限公司
网络安全行业盛会即将召开
亚马逊的服务器怎么登录
属于数据库应用实例的是
通信网络安全保护设置app
维护网络安全的话
vscode属于是服务器吗
数据库设计财务管理系统