实验名称 JDBC数据库访问与操作
实验类型 验证性 实验学时 2
实验目的 1.了解JDBC的概念和工作原理。
2.掌握使用JDBC实现简单的数据库管理。
3.掌握常用的JDBC API。
实验设备
Windows计算机、JDK开发包、eclipse软件开发工具。
一、实验原理(要求、任务等)
JDBC(Java DataBase Connection)是Java数据库连接API。JDBC API包含在两个包里:第一个包是java.sql,它包含了JDBC API的核心Java数据对象,这包括为DBMS(数据库管理系统)连接和存储在DBMS里的数据进行交互而提供的Java数据对象;另外一个包含JDBC API的包是javax.sql,它扩展了java.sql,是J2EE/Java EE的一部分。除其他高级JDBC特性外,javax.sql还包含了那些与Java命名与目录接口(JNDI)进行交互的Java数据对象,以及管理连接池的Java数据对象。
借助于JDBC API能够与一个数据库建立连接,基于该连接向数据库发送SQL语句,并获取数据库处理后返回的结果。
二、实验内容和步骤
使用JDBC API对MySQL数据库进行访问控制操作。
- JDBC数据库驱动器的加载:java.sql.DriverManager。
2.数据库连接:java.sql.Connection。
3.传送执行SQL语句:java.sql.Statement。
4.获取数据集:java.sql.ResultSet。
三、实验结果与分析
详细代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcTest {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver"); //加载驱动程序
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Connection con = null; //存储连接,为的是变成全局变量在try外面还可以继续使用
Statement st = null; //存储发送
ResultSet rs = null; //存户结果
String url = "jdbc:mysql://127.0.0.1:3306/myjdbc"; //本地的数据库地址链接
String user = "root"; //用户名
String password = "root"; //用户密码
try {
con = DriverManager.getConnection(url, user, password); //使用方法传入信息
st = con.createStatement(); //利用查询分析器发送一个SQL语句
rs = st.executeQuery("SELECT * FROM students"); //使用executeQuery方法来查询并接收结果
rs.next(); //用来读取一行信息,如果是读取多行信息的话,可以用while循环,
//因为这个next()方法如果这行为空将会返回false
System.out.println("学生的姓名为:" + rs.getString(1)); //获取第一个字符串
System.out.println("学生的密码为:" + rs.getString(2)); //获取第二个字符串
System.out.println();
} catch (SQLException e) {
System.out.println(e);
} finally {
try {
rs.close(); //倒着关闭
st.close();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
输出结果如下图所示:
代码思路分析:
实验要求是使用JDBC API对MySQL数据库进行访问控制操作。首先我们应该下载一个jar包,再创建一个lib文件夹,把这个jar包复制过来,生成一个小奶瓶。然后开始写代码,Class.forName(“com.mysql.jdbc.Driver”); 这行代码的意思是将JDBC数据库驱动器加载进来,用的是反射,具体还不太了解。然后通过实现jdbc这个接口中的抽象方法来完成java访问数据类型库。getConnection这个方法是用来进行连接的,传入SQL的地址连接、用户名和密码,返回值是一个connect连接对象。然后使用createStatement()方法生成一个Statement对象,这个对象里面有增删改查的方法,本次实验做的是查询操作,用的是executeQuery方法,传入的参数是字符串一个SQL语句,返回一个resultset对象。同时这几步都会抛出异常,而且是同一种异常,所以可以放在一个try里面。用next来读取这个对象的第一行信息,然后getstring()获取到第一个字符串作为姓名,第二个作为学号。接下来,要将这些对象倒着关闭,同时会抛出同样的异常,用try抓住。如果想要读取多行的信息,可以直接用while循环,因为next()这个方法,如果读取为空将会返回一个false。
四、总结与心得体会
思考题
1、谈谈你对jdbc的理解
经过老师的讲解,我觉得jdbc就是一个存放着一些用于java链接数据库的接口的驱动程序,他就是用来模拟我们常见的navicate访问数据库的过程。比如说jdbc里面的connection接口就是用来连接java和MySQL的,statement就是有一些方法可以实现增删改查,Resultset就是用来接收结果的。虽然这些东西看起来很麻烦,但是内部的实现都不用管,我们只需要掌握它的流程,就可以实现java访问MySQL,当然,这里面也有很多的增、删、改、查方法需要去掌握。
总结
本次实验中,我们主要练习java访问数据库的实验流程。我在运行这个代码的时候出现了问题,我没有在mysql里面创建数据库和表,因为我们这个代码用的是查询语句。老师还在讲课的时候把建库建表放在第0位,我还是给忘记了。当然用java也可以创建库和表。然后还有就是我更加深入的了解到了java学习的侧重点,我们不应该把重点放在如何去实现方法内部的事情,有些很困难的代码已经被实现了,我们要做的就是如何去寻找和使用对象。