连接数据库
要访问数据库,首先要加载数据库的驱动程序(只需要第一次访问数据库时加载一次),然后每次访问数据时创建一个Connection对象,接着执行操作数据库的SQL语句,最后在完成数据库操作后销毁前面的Connection对象,释放与数据库的连接。
示例1:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Conn {
Connection con; // 声明Connection对象
private Connection getConnection() {
//建立返回值为Connection方法
try {
//加载数据库驱动类
Class.forName("com.mysql.jdbc.Driver");
System.out.println("数据库驱动加载成功");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
//通过范围数据库的URL获取数据库连接对象
con = DriverManager.getConnection("jdbc:mysql//" +
"localhost:3306/db1", "root", "123456");
} catch (SQLException e) {
e.printStackTrace();
}
return con; //按方法要求返回一个Connection对象
}
public static void main(String[] args) {
Conn c = new Conn(); //创建本类对象
c.getConnection(); //调用数据库的方法
}
}
本示例中将数据库作为单独的一个方法,并以Connection对象作为返回值。这样写的好处是在遇到对数据库执行操作的程序时可以直接调用Conn类的getConnection()方法获取连接,增加了代码的重用性。
向数据库发送SQL语句
上面的示例1中的getConnection()方法只是获取数据库的连接,要执行SQL语句首先要获得Statement类对象。通过示例1创建的连接数据库对象con的createStatement( )方法可以获得Statement对象。
代码如下:
try {
Statement sql = con.createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
处理查询结果集
有了Statement对象以后,可调用相应的方法实现对数据库的查询和修改,并将查询的结果集存放在ResultSet类的对象中。
代码如下:
try {
ResultSet res = sql.executeQuery("select * from student");
} catch (SQLException e) {
e.printStackTrace();
}
运行结果为返回一个ResultSet对象,ResultSet对象一次只可以看到结果集中的一行数据,使用该类的next( )方法可以将光标从当前位置移到下一行。
顺序查询
ResultSet类的next( )方法的返回值是boolean类型的数据,当游标移动到最后一行之后会返回false。
下面的实列就是将数据表tb_emp中的全部信息显示在控制台上。
public class Gradation {
static Connection con; // 声明Connection对象
static Statement sql; // 声明Statement对象
static ResultSet res; // 声明ResultSet对象
private Connection getConnection() {
// 建立返回值为Connection方法
try {
Class.forName("com.mysql.jdbc.Driver"); // 加载数据库驱动类
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
// 通过范围数据库的URL获取数据库连接对象
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/db1", "root", "123456");
}