java使用JDBC连接MySql数据库
- 安装MySql
- 导入MySql驱动jar包
- 导入java.sql.*;
- 注册JDBC驱动程序
- 打开一个连接
- 执行一个查询
- 从结果集中提取数据
- 清理环境
安装MySql
MySql下载链接
下载社区版(免费)
傻瓜式安装过程。安装完成之后打开MySQL Workbench(图形操作界面)添加数据库与数据。
导入MySql驱动jar包
从MySql官网下载一个jar包导入到Eclipse工程中。
MySql驱动包下载链接
下载下面的zip包,上面的是用于Linux的压缩包
下载之后导入到Eclipse中。
导入方法:右键项目名称 -> Properties ->Java Build Path -> Add External JARs
导入java.sql.*;
在java代码中加入一下代码:
import java.sql.*;
注册JDBC驱动程序
Class.forName("com.mysql.jdbc.Driver");//JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段。
打开一个链接
这需要使用DriverManager.getConnection()方法来创建一个Connection对象,它代表一个物理连接的数据库。
执行一个查询
这需要使用一个对象类型Statement或PreparedStatement构建,并提交一个SQL语句到数据库。
从结果集中提取数据
这一步是必需的情况下,从数据库中获取数据。可以使用适当的ResultSet.getXXX()方法来检索的数据结果。
清理环境
应该明确地关闭所有的数据库资源,对依赖于JVM的垃圾收集。
代码示例:
package com.ycty.sql;
import java.sql.*;
public class sqltest {
// JDBC 驱动名及数据库 URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/kunslibrary?useUnicode=true&characterEncoding=utf-8&useSSL=false";
// 数据库的用户名与密码,需要根据自己的设置
static final String USER = "kun";
static final String PASS = "";//密码未贴出
public static void main(String[] args)
{
Connection conn = null;
Statement stmt = null;
try{
// 注册 JDBC 驱动
Class.forName("com.mysql.jdbc.Driver");
// 打开链接
System.out.println("连接数据库...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
// 执行查询
System.out.println("读取数据...");
stmt = conn.createStatement();
String sql;
sql = "SELECT name FROM table1";
ResultSet rs = stmt.executeQuery(sql);
// 展开结果集数据库
while(rs.next()){
// 通过字段检索
String name = rs.getString("name");
// 输出数据
System.out.print("name: " + name);
System.out.print("\n");
}
// 完成后关闭
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
// 处理 JDBC 错误
se.printStackTrace();
}catch(Exception e){
// 处理 Class.forName 错误
e.printStackTrace();
}finally{
// 关闭资源
try{
if(stmt!=null) stmt.close();
}catch(SQLException se2){
}// 什么都不做
try{
if(conn!=null) conn.close();
}catch(SQLException se){
se.printStackTrace();
}
}
System.out.println("Goodbye!");
}
}
执行结果:
其他
在URL中添加了useUnicode=true&characterEncoding=UTF-8&useSSL=false这一段
其中useUnicode=true&characterEncoding=UTF-8是指定字符的编码、解码格式。
useSSL=false
这一句如果不加上会报错。原因是:新版本的MySQL要求是否进行ssl连接。