jdbc与TiDB数据库交互的过程

jdbc与TiDB数据库交互的过程

以下是使用jdbc操作TiDB数据库,得到的交互过程和指令的说明

 

==>代表发送给数据库的指令

// 加载驱动程序
Class.forName(driver);
// 连接数据库 Connection conn = DriverManager.getConnection(url, user, password); ==>(cmd=mysql.ComQuery)/* mysql-connector-java-6.0.6 ( Revision: 3dab84f4d9bede3cdd14d57b99e9e98a02a5b97d ) */ SELECT @@session.auto_increment_increment AS auto_increment_increment, @@character_set_client AS character_set_client, @@character_set_connection AS character_set_connection, @@character_set_results AS character_set_results, @@character_set_server AS character_set_server, @@init_connect AS init_connect, @@interactive_timeout AS interactive_timeout, @@license AS license, @@lower_case_table_names AS lower_case_table_names, @@max_allowed_packet AS max_allowed_packet, @@net_buffer_length AS net_buffer_length, @@net_write_timeout AS net_write_timeout, @@query_cache_size AS query_cache_size, @@query_cache_type AS query_cache_type, @@sql_mode AS sql_mode, @@system_time_zone AS system_time_zone, @@time_zone AS time_zone, @@tx_isolation AS tx_isolation, @@wait_timeout AS wait_timeout ==>(cmd=mysql.ComQuery)SET NAMES utf8 ==>(cmd=mysql.ComQuery)SET character_set_results = NULL ==>(cmd=mysql.ComQuery)SET autocommit=1 // 关闭自动提交 conn.setAutoCommit(false); ==>(cmd=mysql.ComQuery)SET autocommit=0 // 创建statement用来执行SQL语句 Statement stmt = conn.createStatement(); // 要执行的SQL语句 ResultSet rs1 = stmt.executeQuery("select * from nation"); ==>(cmd=mysql.ComQuery)select * from nation ResultSet rs2 = stmt.executeQuery("select * from region"); ==>(cmd=mysql.ComQuery)select * from region // 提交 conn.commit(); ==>(cmd=mysql.ComQuery)commit // 关闭连接
rs1.close();
rs2.close();
stmt.close(); conn.close(); ==>(cmd=mysql.ComQuery)rollback ==>(cmd=mysql.ComQuit))

 

在jdbc建立连接时,会获取服务器的参数,以下是TiDB2.0.0与mysql5.7的对比

可以看到基本上差异不大,有部分参数与数据库服务器设置有关。

 

[TiDB2.0.0]

auto_increment_increment=1
character_set_client=utf8
character_set_connection=utf8
character_set_results=latin1
character_set_server=latin1
init_connect=
interactive_timeout=28800
license=Apache License 2.0
lower_case_table_names=2
max_allowed_packet=67108864
net_buffer_length=16384
net_write_timeout=60
query_cache_size=1048576
query_cache_type=OFF
sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
system_time_zone=CST
time_zone=SYSTEM
tx_isolation=REPEATABLE-READ
wait_timeout=28800

 

 [Mysql5.7]

auto_increment_increment=1
character_set_client=utf8
character_set_connection=utf8
character_set_results=null
character_set_server=utf8
init_connect=SET NAMES utf8
interactive_timeout=28800
license=GPL
lower_case_table_names=0
max_allowed_packet=4194304
net_buffer_length=16384
net_write_timeout=60
query_cache_size=1048576
query_cache_type=OFF
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
system_time_zone=CST
time_zone=SYSTEM
tx_isolation=REPEATABLE-READ
wait_timeout=28800

 

posted on 2018-06-06 10:29 猫不急 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/maobuji/p/9143794.html

你可能感兴趣的:(jdbc与TiDB数据库交互的过程)