jdbc mysql 中文乱码的解决方法
通过jdbc 连接mysql 数据库的实例,以及中文乱码的解决方法: import java.sql.*;/** * 使用JDBC连接数据库MySQL的过程: * DataBase: db_test * tables: tab_test; * username: user_test; * passwd: passwd_test; * * @author zhongbo.wzb@alibaba-inc.com
通过jdbc 连接mysql 数据库的实例,以及中文乱码的解决方法:
import java.sql.*; /** * 使用JDBC连接数据库MySQL的过程: * DataBase: db_test * tables: tab_test; * username: user_test; * passwd: passwd_test; * * @author zhongbo.wzb@alibaba-inc.com */ public class DBTest { public static Connection getConnection() throws SQLException, ClassNotFoundException { // 第一步:加载MySQL的JDBC的驱动 Class.forName("com.mysql.jdbc.Driver"); //取得连接的url,能访问MySQL数据库的用户名:user_test;密码:passwd_test, 数据库名: db_test String url = "jdbc:mysql://localhost:3306/db_test?useUnicode=true&characterEncoding=utf-8"; String username = "user_test"; String password = "passwd_test"; // 第二步:创建与MySQL数据库的连接类的实例 Connection conn = DriverManager.getConnection(url, username, password); return conn; } public static void main(String args[]) { System.out.println("args num: " + args.length); for (int i = 0; i <p><span>不</span><span><span>过,官方文档还说,"要想覆盖客户端上的自动检测编码功能,可在用于连接到服务器的URL中使用“characterEncoding”属性。" </span></span><br> </p> <p><span><span><br> </span></span></p> <p><span><span><span>解决方法二: </span><br> <br> <span>连接mysql时(无论在从mysql读还是取数据的情况),指定使用的编码方式为utf-8,具体代码如下 </span><br> <br> <span>//装载mysql-jdbc驱动 </span><br> <br> <span>Class.forName("com.mysql.jdbc.Driver").newInstance(); </span><br> <br> <span>//连接数据库 </span><br> <br> <span>Connection sqlCon = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test? user=root&password=1&useUnicode=true&characterEncoding=utf-8" ); </span><br> </span></span></p> <br> <p><br> </p> <p><br> </p> <p><br> </p> <p><br> </p> <p><br> </p> <p><span>charset 和 collation 有多个级别的设置:服务器级、数据库级、表级、列级和连接级</span><br> <br> <span>1.服务器级 </span><br> <span> 查看设置:show global variables like 'character_set_server'; 和 show global variables like 'collation_server';</span><br> <span> 修改设置:在OPTION FILE (/etc/mysql/my.cnf)里设置: </span><br> <span> [mysqld] </span><br> <span> character_set_server=utf8 </span><br> <span> collation_server=utf8_general_ci </span><br> <br> <span>2. 数据库级 </span><br> <span> 查看设置:select * from information_schema.schemata where schema_name = 'cookbook';</span><br> <span> 设置: </span><br> <span> 1.若没有显式设置,则自动使用服务器级的配置 </span><br> <span> 2.显式设置:在创建库时指定 </span><br> <span> create database playUtf8 DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;</span><br> <br> <span>3.表级 </span><br> <span> 查看设置:show create table course; </span><br> <span> 设置: </span><br> <span> 1.若没有显式设置,则自动使用数据库级的配置 </span><br> <span> 2.显式设置:在创建表时指定 </span><br> <span> create table utf ( id int ) default charset=utf8 default collate=utf8_bin;</span><br> <br> <span>4.列级 </span><br> <span> 查看设置:show create table course; </span><br> <span> 设置: </span><br> <span> 1.若没有显式设置,则自动使用表级的配置 </span><br> <span> 2.显式设置: </span><br> <br> <span> CREATE TABLE Table1(column1 VARCHAR(5) CHARACTER SET latin1 COLLATE latin1_german1_ci);</span><br> <br> <span>5.连接级别 </span><br> <span> 查看设置: </span><br> <span> show variables like 'character_set_client'; # 服务端使用这个编码来理解客户端发来的statements </span><br> <span> show variables like 'character_set_connection' ; # 我还不知道什么意思,等看了mysql源码再说 </span><br> <span> show variables like 'character_set_results'; # 服务端使用这个编码回送结果集和错误信息 </span><br> <span> 设置: </span><br> <span> 客户端在连接时可以指定这些参数;同时,服务端也提供了一个Global范围的值,客户端未指定这些参数时,服务端就使用这个Global值。这个global值怎么设置的? 我查遍了很多文档,似乎还没看到设置的办法 (有人说通过my.cnf,或者在启动mysqld时指定命令行参数,其实都是错的)</span><br> <br> <span> </span><br> <br> <span>附:connector/j传输SQL时用什么编码? </span><br> <span> 答案: "The character encoding between client and server is automatically detected upon connection. The encoding used by the driver is specified on the server using the character_set_server system variable for server versions 4.1.0 and newer."</span><br> <span> 也就是说,是在连接时查询服务器端的character_set_server值,再确定连接将使用的编码。 </span><br> <span> 不</span><span><span>过,官方文档还说,"要想覆盖客户端上的自动检测编码功能,可在用于连接到服务器的URL中使用“characterEncoding”属性。" </span></span><br> </p> <p><span><span><br> </span></span></p> <p><span><span><span>解决方法二: </span><br> <br> <span>连接mysql时(无论在从mysql读还是取数据的情况),指定使用的编码方式为utf-8,具体代码如下 </span><br> <br> <span>//装载mysql-jdbc驱动 </span><br> <br> <span>Class.forName("com.mysql.jdbc.Driver").newInstance(); </span><br> <br> <span>//连接数据库 </span><br> <br> <span>Connection sqlCon = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test? user=root&password=1&useUnicode=true&characterEncoding=utf-8" ); </span><br> <br> <br> </span></span></p>

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Laravel 是一款 PHP 框架,用于轻松构建 Web 应用程序。它提供一系列强大的功能,包括:安装: 使用 Composer 全局安装 Laravel CLI,并在项目目录中创建应用程序。路由: 在 routes/web.php 中定义 URL 和处理函数之间的关系。视图: 在 resources/views 中创建视图以呈现应用程序的界面。数据库集成: 提供与 MySQL 等数据库的开箱即用集成,并使用迁移来创建和修改表。模型和控制器: 模型表示数据库实体,控制器处理 HTTP 请求。

MySQL和phpMyAdmin是强大的数据库管理工具。1)MySQL用于创建数据库和表、执行DML和SQL查询。2)phpMyAdmin提供直观界面进行数据库管理、表结构管理、数据操作和用户权限管理。

MySQL与其他编程语言相比,主要用于存储和管理数据,而其他语言如Python、Java、C 则用于逻辑处理和应用开发。 MySQL以其高性能、可扩展性和跨平台支持着称,适合数据管理需求,而其他语言在各自领域如数据分析、企业应用和系统编程中各有优势。

在开发一个小型应用时,我遇到了一个棘手的问题:需要快速集成一个轻量级的数据库操作库。尝试了多个库后,我发现它们要么功能过多,要么兼容性不佳。最终,我找到了minii/db,这是一个基于Yii2的简化版本,完美地解决了我的问题。

文章摘要:本文提供了详细分步说明,指导读者如何轻松安装 Laravel 框架。Laravel 是一个功能强大的 PHP 框架,它 упростил 和加快了 web 应用程序的开发过程。本教程涵盖了从系统要求到配置数据库和设置路由等各个方面的安装过程。通过遵循这些步骤,读者可以快速高效地为他们的 Laravel 项目打下坚实的基础。

在使用Thelia开发电商网站时,我遇到了一个棘手的问题:MySQL模式设置不当,导致某些功能无法正常运行。经过一番探索,我找到了一个名为TheliaMySQLModesChecker的模块,它能够自动修复Thelia所需的MySQL模式,彻底解决了我的困扰。

在MySQL中,外键的作用是建立表与表之间的关系,确保数据的一致性和完整性。外键通过引用完整性检查和级联操作维护数据的有效性,使用时需注意性能优化和避免常见错误。

MySQL和MariaDB的主要区别在于性能、功能和许可证:1.MySQL由Oracle开发,MariaDB是其分支。2.MariaDB在高负载环境中性能可能更好。3.MariaDB提供了更多的存储引擎和功能。4.MySQL采用双重许可证,MariaDB完全开源。选择时应考虑现有基础设施、性能需求、功能需求和许可证成本。
