一、引用库

  maven库:mysql:mysql-connector-java:6.0.6

二、SDK环境

  JAVA JDK10

三、测试代码

  

package com.mysql.mysqlconnector;

import java.sql.*;

public class DbMain {
public static void main(String[] args) throws ClassNotFoundException {
System.out.println("Data base connection test:");
Connection connection;
var driver = "com.mysql.cj.jdbc.Driver";
var url = "jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai"; //注意,新版要求必须加上serverTimezone
var user = "root";
var password = "password";
try {
Class.forName(driver);
var conn = DriverManager.getConnection(url, user, password);
if (!conn.isClosed())
System.out.println(String.format("conection to %s successfully.", url));
//statement 执行不能使用参数的SQL
Statement statement = conn.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM student WHERE RowId<999 ");
ResultSetMetaData md = resultSet.getMetaData();
var columnCount = md.getColumnCount();
for (var i = 1; i <= columnCount; i++) {//注意起始数字
System.out.println("---------------------");
System.out.print(md.getColumnClassName(i) + "\t"); //java.lang.String
System.out.print(md.getColumnDisplaySize(i) + "\t"); //
System.out.print(md.getColumnName(i) + "\t"); //name
System.out.print(md.getColumnType(i) + "\t"); //
System.out.print(md.getColumnTypeName(i) + "\t"); //VARCHAR
System.out.println(md.getColumnClassName(i) + "\t"); //java.lang.String
}
while (resultSet.next()) {
for (var i = 1; i <= columnCount; i++) {
System.out.print(resultSet.getObject(i));
System.out.print("\t");
}
System.out.println();
}
statement.close();
// prepareStatement
var prepareStatement = conn.prepareStatement("SELECT * FROM student WHERE RowId<?");
prepareStatement.setInt(1, 999);//注意这里,JDBC中的ColumnIndex是从1开始的。
ResultSet results = prepareStatement.executeQuery();
while (results.next()) {
var rowId = results.getInt(1); //注意这里,JDBC中的ColumnIndex是从1开始的。
var name = results.getString(2);
var age = results.getInt(3);
System.out.println(rowId + "\t" + name + "\t" + age);
}
prepareStatement.close();
// insert
var insertPrepareStatement = conn.prepareStatement("INSERT INTO student(name,age) VALUES (?,?)", Statement.RETURN_GENERATED_KEYS);
insertPrepareStatement.setString(1, "Sindrol");
insertPrepareStatement.setInt(2, 28); if (insertPrepareStatement.executeUpdate() > 0) {
ResultSet gk = insertPrepareStatement.getGeneratedKeys();
if (gk.next())
System.out.println("Insert into success. primary key RowId =" + gk.getInt("GENERATED_KEY"));
}
insertPrepareStatement.close(); //batch commit.
conn.setAutoCommit(false);//先停止自动提交。
var batchPrepareStatement = conn.prepareStatement("INSERT INTO student(name,age) VALUES (?,?)", Statement.RETURN_GENERATED_KEYS);
for (int i = 0; i < 5; i++) {
batchPrepareStatement.setString(1, "Lingling_" + i);
batchPrepareStatement.setInt(2, (20 + i));
batchPrepareStatement.addBatch();
}
try {
var intArrs = batchPrepareStatement.executeBatch();
for (var eff : intArrs)
System.out.println("eff:" + eff);
conn.commit();
          batchPrepareStatement.clearBatch();//提交后,清空Batch。
var keys = batchPrepareStatement.getGeneratedKeys();
while (keys.next()) {
int rowId = keys.getInt("GENERATED_KEY");
System.out.println("rowid:" + rowId);
}
} catch (Exception ex) {
System.out.println("commit failed and will rollback:" + ex.getMessage());
conn.rollback();
}finally {
batchPrepareStatement.close();
} if (!conn.isClosed()) conn.close();
} catch (Exception ex) {
System.out.println("SQL操作异常:" + ex.getMessage());
}
}
}

四、运行效果

"C:\Program Files\Java\jdk-10\bin\java" -javaagent:D:\Applicaton\DevTools\JetBrains\IntelliJIdea\lib\idea_rt.jar=33464:D:\Applicaton\DevTools\JetBrains\IntelliJIdea\bin -Dfile.encoding=UTF-8 -classpath D:\Project\JavaProject\JavaDemo\out\production\JavaDemo;C:\Users\yungoal\.m2\repository\com\alibaba\fastjson\1.2.16\fastjson-1.2.16.jar;C:\Users\yungoal\.m2\repository\mysql\mysql-connector-java\6.0.6\mysql-connector-java-6.0.6.jar com.mysql.mysqlconnector.DbMain
Data base connection test:
conection to jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai successfully.
---------------------
java.lang.Integer 11 rowid 4 INT java.lang.Integer
---------------------
java.lang.String 255 name 12 VARCHAR java.lang.String
---------------------
java.lang.Integer 11 age 4 INT java.lang.Integer
1 songxingzhu 27
2 wanghaixing 28
3 Sindrol 28
4 Sindrol 28
5 Sindrol 28
6 Sindrol 28
7 Sindrol 28
8 Sindrol 28
9 Lingling_0 20
10 Lingling_1 21
11 Lingling_2 22
12 Lingling_3 23
13 Lingling_4 24
1 songxingzhu 27
2 wanghaixing 28
3 Sindrol 28
4 Sindrol 28
5 Sindrol 28
6 Sindrol 28
7 Sindrol 28
8 Sindrol 28
9 Lingling_0 20
10 Lingling_1 21
11 Lingling_2 22
12 Lingling_3 23
13 Lingling_4 24
Insert into success. primary key RowId =14
eff:1
eff:1
eff:1
eff:1
eff:1
rowid:15
rowid:16
rowid:17
rowid:18
rowid:19 Process finished with exit code 0

  

JAVA中JDBC连接Mysql数据库简单测试的更多相关文章

  1. ava基础MySQL存储过程 Java基础 JDBC连接MySQL数据库

    1.MySQL存储过程   1.1.什么是存储过程 带有逻辑的sql语句:带有流程控制语句(if  while)等等 的sql语句   1.2.存储过程的特点 1)执行效率非常快,存储过程是数据库的服 ...

  2. java用JDBC连接MySQL数据库的详细知识点

    想实现java用JDBC连接MySQL数据库.需要有几个准备工作: 1.下载Connector/J的库文件,下载Connector/J的官网地址:http://www.mysql.com/downlo ...

  3. java 通过jdbc连接MySQL数据库

    先了解下JDBC的常用接口 1.驱动程序接口Driver 每种数据库的驱动程序都应该提供一个实现java.sql.Driver接口的类,简称Driver类.通常情况下,通过java.lang.Clas ...

  4. Java使用JDBC连接MySQL数据库

    1.引用 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写 ...

  5. JAVA使用JDBC连接MySQL数据库 二

    JAVA连接MySQL稍微繁琐,所以先写一个类用来打开或关闭数据库: public class DBHelper { String driver = "com.mysql.jdbc.Driv ...

  6. Java:jdbc连接mysql数据库

    安装eclipse和mysql的步骤这里不赘述了. 1.一定要下jar包 要想实现连接数据库,要先下载mysql-connector-java-5.1.47(或者其他版本)的jar包.低版本的jar包 ...

  7. 【转】Java 通过JDBC连接Mysql数据库的方法和实例【图文说明】

    JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口 ...

  8. Java 通过JDBC连接Mysql数据库的方法和实例

    JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口 ...

  9. Java 通过JDBC连接Mysql数据库的方法和实例【图文说明】

    JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口 ...

随机推荐

  1. IOS开发之——objective-c与javascript交互

    原文:http://blog.csdn.net/pjk1129/article/details/6936545 在写 JavaScript 的时候,可以使用一个叫做 window 的对象,像是我们想要 ...

  2. Xcode5和6共存时,如何发布应用到商店

    如何你和我一样手贱安装了Xcode6,同时又需要发布应用到商店时,你会发现打好的包是通不过审核的.验证报错: unable to validate application archives of ty ...

  3. Android项目更换开发环境时出现的 java.lang.VerifyError 异常解决办法

    from://http://blog.csdn.net/wudiwo/article/details/7548451 项目是从同事的电脑上直接拷贝过来的,项目里面的jar包是在项目跟下libs里面存放 ...

  4. 关于tomcat和sessionCookieName和SESSION_PARAMETER_NAME以及disableURLRewriting参数原理和使用

    关于tomcat和sessionCookieName和SESSION_PARAMETER_NAME以及disableURLRewriting参数 关于session和cookie参考: http:// ...

  5. 用开源项目JazzyViewPager实现ViewPager切换动画

    JazzyViewPager这个项目可以让viewpager有各种绚丽的动画,而且还可以自由扩展.但从官网下载的lib导入时会出现找不到视图的问题,不知道是不是我人品不行,所以我就自己写了lib.总之 ...

  6. 让Android SDK Manager正常更新的办法

    首先,进入C:\Windows\System32\drivers\etc,找到hosts文件,用记事本打开它. 在文件的最后加入: 203.208.46.146 dl.google.com 203.2 ...

  7. jquery validate验证方法

    实例: equalTo方法 equalTo(其他)返回:布尔 说明:要求元素与另一个元素相同 等于(其他) 其他 类型:选择器 元素的选择器用于比较当前值 例子: 使“字段”必须与#other相同 1 ...

  8. mysql group by 报错异常解决

    mysql报错及其解决方式 1.在使用group by 查询一张表的数据的时候:select date,time,max(delaytime) as delaytime,sum(delaynum) a ...

  9. Java Callable和Future简述

    创建线程的两种方式,一种是直接继承Thread,另外一种就是实现Runnable接口.这两种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果.如果需要获取执行结果,就必须通过共享变量或者使用线程 ...

  10. iCOM组件(iComponent,应用或学习组件)

    iCOM(英文全称:i + component,应用或学习组件,或iCOM组件),为学习资源的一种表现形式,是面向不同类型的学习对象(某一知识点或某一类知识点,如词汇.句子)专门开发的.在外部可重用的 ...