您的位置:首页 > 编程语言 > Java开发

Java JDBC学习笔记

2016-02-14 23:54 633 查看

JDBC

       JDBC是一个Java应用程序接口,作用是封装了对数据库的各种操作。JDBC由类和接口组成,使用Java开发数据库应用都需要4个主要的接口:Driver、Connection、Statement、ResultSet,这些接口定义了使用SQL访问数据库的一般架构。

       当程序远程访问mysql时,不能使用root账号和密码登录,这样是为了mysql的安全考虑,可以先新建一个mysql账号用来测试。

使用JDBC访问数据库步骤

以下是典型Java程序访问数据库的步骤

1、加载驱动程序

       在连接数据库前,需要加载一个合适的驱动程序(驱动具体的数据库)。

Class.forName(“JDBCDriverClass”);
驱动程序是一个实现接口java.sql.Driver的具体类,如下表所示:



2、建立连接

       建立连接,需要使用DriverManager类中的静态方法getConnection(databaseURL)。

Connection conn = (Connection)DriverManager.getConnection(databaseURL);
databaseURL是数据库在Internet上的唯一标识,以下是示例:



Connection connection = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/test", "luoxn28", "123456");

3、创建语句

       Statement为数据库传输SQL语句,并把结果集返回给程序。

Statement statement = (Statement) connection.createStatement();
4、执行语句

       使用方法executeUpdate(String sql)来执行SQL DDL或更新语句,使用方法executeQuery(String sql)来执行查询,查询结果在ResultSet中返回。

statement.executeUpdate(“createtable persion (name char(10), age int)”); // 更新操作
ResultSet resultSet =statement.executeQuery("select * frompersion"); // 查询操作
5、处理ResultSet

       结果集ResultSet中有一个表,该表的当前行可以访问。当前行的起始位置null,可以使用next()移动到下一行,可以使用各种get()方法从当前行中获取值,如下所示:

while (resultSet.next()){
System.out.println(resultSet.getString(1) + " " + resultSet.getString(2));
}

jdbc连接mysql程序示例

package JDBC;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import com.mysql.jdbc.Statement;

public class DemoMysql {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Deriver loaded ok");

// 这个是本地IP地址,127.0.0.1
Connection connection = (Connection) DriverManager.getConnection(
"jdbc:mysql://localhost/test", "luoxn28", "123456");

Statement statement = (Statement) connection.createStatement();
ResultSet resultSet = statement.executeQuery("select * from persion");
while (resultSet.next()) {
System.out.println(resultSet.getString(1) + " " + resultSet.getString(2));
}

connection.close();
}
}

PreparedStatement

       Statement用于执行不含参数的静态sql语句,PreparedStatement由Statement扩展而来,用于执行含有或不含参数的预编译SQL语句,由于SQL语句是预编译的,所以重复执行它效率较高。PreparedStatement由Connection接口中的preparedStatement方法创建。

PreparedStatement preparedStatement= (PreparedStatement) connection.prepareStatement(
"insert into persion (name, age) values (?, ?)");
 

jdbc使用PreparedStatement程序示例

package JDBC;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import com.mysql.jdbc.Statement;

public class DemoMysql {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Deriver loaded ok");

// 这个是本地IP地址,127.0.0.1
Connection connection = (Connection) DriverManager.getConnection(
"jdbc:mysql://localhost/test", "luoxn28", "123456");

Statement statement = (Statement) connection.createStatement();
ResultSet resultSet = statement.executeQuery("select * from persion");
while (resultSet.next()) {
System.out.println(resultSet.getString(1) + " " + resultSet.getString(2));
}

// 插入一条记录
PreparedStatement preparedStatement = (PreparedStatement) connection.prepareStatement(
"insert into persion (name, age) values (?, ?)");
preparedStatement.setString(1, "hdu");
preparedStatement.setInt(2, 23);
preparedStatement.executeUpdate();

connection.close();
}
}

参考资料

       《Java语言程序设计 第8版》进阶篇 JDBC章节
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jdbc jdbc学习笔记