这次暑假中学习 java 连接 mysql 编程的相关知识,选择 JDBC (Java database connection) 编程中的一种数据库 mysql 是因为这种数据库相对比较简单,所以下面以 java 连接 mysql 为例写一篇文章。
JDBC 编程一般分为五步,下面以 mysql 为实例,给出 JDBC 的主要步骤。
&fisrt step:
加载数据库驱动类,每种数据库的厂商各自实现本数据库的驱动程序,所有的程序都要加载相应数据库实现的驱动,而 Java 通过 JDBC 编程接口来统一操作数据库( JDBC 是一套编程接口,所有的数据库都可以通过它来统一编程,只要在程序中加载特定数据库的驱动,使用非常方便。
例如 java 连接 mysql,就需要加载 com.mysql.jdbc.Driver,连接 Oracle 就需要加载 Oracle 的驱动类,sqlserver 就需要加载相应的驱动,下面是以 mysql 为例)。
\\1.加载驱动类,下面是加载 mysql 驱动,用于 java 操作 mysql 数据库,驱动程序实现底层的数据库连接与操作
Class.forName("com.mysql.jdbc.Driver");
&second step:
接下来是得到 mysql 的数据库连接,现在是连接本地的 mysql 数据库,所以本机必须安装 mysql 数据库,在百度有很多教程,去 mysql 官网下载 mysql 的数据库安装程序,然后安装。mysql 默认是占用 3306 端口,必须有名称为select_test数据库的存在,没有就先创建。然后我使用的是 root 用户,密码是 ** .视自身实际情况而定。
// 2.使用 DriverManager 获取数据库连接,
// 其中返回的 Connection 就代表了 Java 程序和数据库的连接
// 不同数据库的URL写法需要查驱动文档知道,用户名、密码由 DBA 分配
Connection conn = DriverManager.getConnection(
"jdbc:mysql://127.0.0.1:3306/select_test", "root" , "****");
&third step:
创建 Statement 对象,用于后来的数据库操作。
// 3.使用Connection来创建一个Statement对象
Statement stmt = conn.createStatement();
&fourth step:
执行 Sql 语句,此时必须在数据库上创建表名为 student_table, teacher_table 的表,插入数据用于本程序。executeQuery 方法返回的是一个结果集。
// 4.执行SQL语句
/*
Statement 有三种执行 sql 语句的方法:
1 execute 可执行任何 SQL 语句。- 返回一个 boolean 值,
如果执行后第一个结果是 ResultSet,则返回 true,否则返回 false
2 executeQuery 执行 Select 语句 - 返回查询到的结果集
3 executeUpdate 用于执行 DML 语句。- 返回一个整数,
代表被SQL语句影响的记录条数
*/
ResultSet rs = stmt.executeQuery("select s.* , teacher_name"
+ " from student_table s , teacher_table t"
+ " where t.teacher_id = s.java_teacher"))
&fifth step:
对结果集进行操作,然后将结果输出来。
// ResultSet 有系列的 getXxx(列索引 | 列名),用于获取记录指针
// 指向行、特定列的值,不断地使用 next() 将记录指针下移一行,
// 如果移动之后记录指针依然指向有效行,则 next() 方法返回 true。
while(rs.next())
{
System.out.println(rs.getInt(1) + "\t"
+ rs.getString(2) + "\t"
+ rs.getString(3) + "\t"
+ rs.getString(4));
}
下面是完整的代码,如果对 mysql 的操作不了解,可以先进行 mysql 数据库基本操作的学习,例如创建数据库,创建表等操作等,在这里不再叙述。
import java.sql.*;
public class ConnMySql
{
public static void main(String[] args) throws Exception
{
// 1.加载驱动,使用反射的知识,现在记住这么写。
Class.forName("com.mysql.jdbc.Driver");
try(
// 2.使用 DriverManager 获取数据库连接,
// 其中返回的 Connection 就代表了 Java 程序和数据库的连接
// 不同数据库的 URL 写法需要查驱动文档知道,用户名、密码由 DBA 分配
Connection conn = DriverManager.getConnection(
"jdbc:mysql://127.0.0.1:3306/select_test"
, "root" , "32147");
// 3.使用Connection来创建一个Statment对象
Statement stmt = conn.createStatement();
// 4.执行SQL语句
/*
Statement有三种执行 sql 语句的方法:
1 execute 可执行任何 SQL 语句。- 返回一个 boolean 值,
如果执行后第一个结果是 ResultSet,则返回 true,否则返回 false
2 executeQuery 执行 Select语句 - 返回查询到的结果集
3 executeUpdate 用于执行 DML 语句。- 返回一个整数,
代表被 SQL 语句影响的记录条数
*/
ResultSet rs = stmt.executeQuery("select s.* , teacher_name"
+ " from student_table s , teacher_table t"
+ " where t.teacher_id = s.java_teacher"))
{
// ResultSet 有系列的 getXxx(列索引 | 列名),用于获取记录指针
// 指向行、特定列的值,不断地使用 next() 将记录指针下移一行,
// 如果移动之后记录指针依然指向有效行,则 next() 方法返回 true。
while(rs.next())
{
System.out.println(rs.getInt(1) + "\t"
+ rs.getString(2) + "\t"
+ rs.getString(3) + "\t"
+ rs.getString(4));
}
}
}
}
结束:运行结果根据自身的数据库确定。