java连接MySQL

基本步骤

  • 构建连接(搭桥)
    • 注册驱动,寻找材质,class.forName(),即选择连接到哪种数据库
    • 确定对岸目标,建桥Connection,连接到具体数据库
  • 执行操作(派人过桥提篮子拿数据)
    • Satement(执行者)
    • ResultSet(结果集)
  • 释放连接(拆桥)
    • connection.close()

Statement

  • Statement执行者类
    • 使用executeQuery()执行select语句,返回结果放在ResultSet
    • 使用executeUpdate()执行insert/update/delete,返回修改的行数(int)
    • 一个Statement对象一次只能执行一个命令
  • ResultSet结果对象
    • next()判断是否还有下一条记录
    • getInt()/getString()/getDouble()…,括号里可以是索引位置(初始1),可以是列名

代码

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Collection {
	public static void main(String[] args) {
		try {
			// MySQL5用的驱动url是com.mysql.jdbc.Driver,MySQL6以后用的是com.mysql.cj.jdbc.Driver
			Class.forName("com.mysql.cj.jdbc.Driver");
			System.out.println("注册驱动成功!");
		} catch (ClassNotFoundException e) {
			System.out.println("注册驱动失败!");
			e.printStackTrace();
			return;
		}
		// 连接字符串格式 jdbc:mysql://localhost:3306/databasename,连接MySQL6需要指定时区serverTimezone
		String url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";
		Connection conn = null;

		try {
			// root&password是数据库的登录名密码
			conn = DriverManager.getConnection(url, "root", "password");

			Statement stmt = conn.createStatement();
			System.out.println("创建执行者成功!");

			ResultSet rs = stmt.executeQuery("select * from tbook;");
			while (rs.next()) {
				// 数据库中列元素下标从1开始
				System.out.println(rs.getString(1) + ',' + rs.getString("bookname"));
			}
			
			rs.close();
			stmt.close();
			
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (conn != null) {
					conn.close();
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}
}

表格数据
在这里插入图片描述
运行结果
在这里插入图片描述

注意事项

  • ResultSet最好不要超过百条,否则及其影响性能
  • ResultSet不是一口气加载所有的select结果数据
  • Connection很昂贵,需要及时close
  • Connection所用jar包和数据库要匹配
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值