说明:我在Editplus中编写了一个简单的JDBC程序,用来测试是否和数据库连接正确。读者如有其它疑问,可以留言交流。
【1】程序如下:
1 import java.sql.*; 2 public class ConnMySql 3 { 4 public static void main(String[] args) throws Exception 5 { 6 // 1.加载驱动,使用反射的知识,现在记住这么写。 7 Class.forName("com.mysql.jdbc.Driver"); 8 try( 9 // 2.使用DriverManager获取数据库连接, 10 // 其中返回的Connection就代表了Java程序和数据库的连接 11 // 不同数据库的URL写法需要查驱动文档知道,用户名、密码由DBA分配 12 Connection conn = DriverManager.getConnection( 13 "jdbc:mysql://127.0.0.1:3306/select_test" 14 , "root" , "258080"); 15 // 3.使用Connection来创建一个Statment对象 16 Statement stmt = conn.createStatement(); 17 // 4.执行SQL语句 18 /* 19 Statement有三种执行sql语句的方法: 20 1 execute 可执行任何SQL语句。- 返回一个boolean值, 21 如果执行后第一个结果是ResultSet,则返回true,否则返回false 22 2 executeQuery 执行Select语句 - 返回查询到的结果集 23 3 executeUpdate 用于执行DML语句。- 返回一个整数, 24 代表被SQL语句影响的记录条数 25 */ 26 ResultSet rs = stmt.executeQuery("select s.* , teacher_name" 27 + " from student_table s , teacher_table t" 28 + " where t.teacher_id = s.java_teacher")) 29 { 30 // ResultSet有系列的getXxx(列索引 | 列名),用于获取记录指针 31 // 指向行、特定列的值,不断地使用next()将记录指针下移一行, 32 // 如果移动之后记录指针依然指向有效行,则next()方法返回true。 33 while(rs.next()) 34 { 35 System.out.println(rs.getInt(1) + " " 36 + rs.getString(2) + " " 37 + rs.getString(3) + " " 38 + rs.getString(4)); 39 } 40 } 41 } 42 }
【2】然后在DOS命令行中执行这个程序,执行过程如下:
从上图中可以看到,在我编写的源程序的第7行出现了错误,到源程序中查看第7行的代码如下:
【3】由此可以猜测,应该是JDBC驱动没有正确配置。下面开始配置JDBC驱动。
在配置JDBC驱动之前,首先在%JAVA_HOME%目录(解释:%JAVA_HOME%目录就是我们在配置Java JDK环境变量时所用到JAVA_HOME变量,相信读者应该都很清楚。)下建立一个mysqlforjdbc文件夹,然后把mysql-connector-java-5.1.26-bin.jar复制到该目录下(我的是mysql-connector-java-5.1.26-bin.jar,读者的版本可能和我的不一样。)
我的操作后结果如下图:
【4】进入到%JAVA_HOME%lib目录下,将mysql-connector-java-5.1.26-bin.jar复制到该目录下。
我操作后的结果如下图:
【5】接下来配置CLASSPATH,在以前配置Java JDK环境变量时,配置的CLASSPATH环境变量后追加%JAVA_HOME%libmysql-connector-java-5.1.26-bin.jar ;%JAVA_HOME%mysqlforjdbcmysql-connector-java-5.1.26-bin.jar 然后确定。 (注意:不能有空格)
我操作后的结果如下:
【6】关掉之前的那个DOS命令行窗口,重新打开一个DOS命令行窗口,再次依次执行【1】、【2】步骤。
如下图:
可以看到成功执行了。