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=
character_set_client=utf8
character_set_connection=utf8
character_set_results=latin1
character_set_server=latin1
init_connect=
interactive_timeout=
license=Apache License 2.0
lower_case_table_names=
max_allowed_packet=
net_buffer_length=
net_write_timeout=
query_cache_size=
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=
[Mysql5.7]
auto_increment_increment=
character_set_client=utf8
character_set_connection=utf8
character_set_results=null
character_set_server=utf8
init_connect=SET NAMES utf8
interactive_timeout=
license=GPL
lower_case_table_names=
max_allowed_packet=
net_buffer_length=
net_write_timeout=
query_cache_size=
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=
jdbc与TiDB数据库交互的过程的更多相关文章
- JDBC连接MySQL数据库及演示样例
JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...
- JDBC连接MySQL数据库及示例
JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一 ...
- jdbc 连接各种数据库 CRUD
一,jdbc简介 SUN公司为了简化.统一对数据库的操作,定义了一套Java操作数据库的规范(接口),称之为JDBC.这套接口由数据库厂商去实现,这样,开发人员只需要学习jdbc接口,并通过jdbc加 ...
- .NET应用程序与数据库交互的若干问题
我们知道,在应用程序中与数据库进行交互是一个比较耗时的过程,首先应用程序需要与应用程序建立连接,然后将请求发送到数据库,数据库执行操作,然后将结果集返回.所以在程序中,要尽量晚的与数据库建立连接,并且 ...
- 说说Java程序和数据库交互的乱码解决
本文就本人遇到的问题进行讲解 1.通过jdbc直连方式,连接Mysql数据库,从程序向数据库中写入数据出现的乱码解决方案. 当通过程序向Student表中写入一条数据时,写入数据库的内容会产生乱码. ...
- JDBC与JAVA数据库编程
一.JDBC的概念 1. JDBC (Java DataBase Connectivity) Java数据库连接 a) 主要提供java数据库应用程序的API支持 2. JDBC的主要功能 a) 创建 ...
- 一个简单的后台与数据库交互的登录与注册[sql注入处理,以及MD5加密]
一.工具: vs2013[因为我现在用的也是2013,版本随便你自己开心] sql2008[准备过久升级] 二.用到的语言: HTML+CSS+Jquery+Ajax+sqlserver HTML[相 ...
- OAF_JDBC系列1 - 数据库交互取值方式(案例)
2014-06-15 Created By BaoXinjian
- 利用jdbc连接oracle数据库
JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java 数据库连接)是一种用于执行SQL语 ...
随机推荐
- ui学习心得
软工课上我分配的任务是界面设计,但是对于初期一个ps从没接触的人来说我觉得还是有点困难,所以要从头学起. PS的功能是什么呢?对于业余爱好者来说,主要还是做一些简单的处理照片.绘图.设计一些皮肤等, ...
- SQL-42 删除emp_no重复的记录,只保留最小的id对应的记录
题目描述 删除emp_no重复的记录,只保留最小的id对应的记录.CREATE TABLE IF NOT EXISTS titles_test (id int(11) not null primary ...
- Java语法基础学习DayFourteen(IO)
一.java.io.FIle类 1.特点 (1)凡是与输入.输出相关的类.接口等都定义在java.io包下. (2)File是一个类,使用构造器创建对象,此对象对应一个文件(.txt .avi .do ...
- FCC JS基础算法题(2):Check for Palindromes(检查回文字符串)
题目描述: 如果给定的字符串是回文,返回true,反之,返回false.如果一个字符串忽略标点符号.大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文).注意你需要去掉 ...
- FCC JS基础算法题(10):Falsy Bouncer(过滤数组假值)
题目描述: 删除数组中的所有假值.在JavaScript中,假值有false.null.0."".undefined 和 NaN. 使用filter方法,过滤掉生成的 Boolea ...
- 剑指Offer 3. 从尾到头打印链表 (链表)
题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 题目地址 https://www.nowcoder.com/practice/d0267f7f55b3412ba93bd35 ...
- springBoot的数据库操作
一:操作数据库起步 1.Spring-Data-Jpa JPA定义了对象持久化的标准. 目前实现了有Hibernate,TopLink 2.pom添加依赖 <dependency> < ...
- 12--Python入门--文件读写--TXT文件
在进行数据分析之前,可能需要读写自己的数据文件.或者在完成数据分析之后,想把结果输出到外部的文件在Python中,利用pandas模块中的几个函数,可以轻松实现这些功能,利用pandas读取文件之后数 ...
- [LeetCode&Python] Problem 744. Find Smallest Letter Greater Than Target
Given a list of sorted characters letters containing only lowercase letters, and given a target lett ...
- spring boot 项目无法访问静态页面