(1)JDBC编程步骤:
第一步:加载数据库驱动。通常使用Class类的forName()静态方法来加载驱动:
//加载驱动
Class.forNamed(DriverClass);
其中DriverClass就是数据库驱动类所对应的字符串。例如,加载MySQL的驱动代码如下
//加载MySQL驱动
Class.forName(“com.mysql.jdbc.Driver”);
第二步:通过DriverManager获取数据库连接,DriverManager提供了如下方法:
//获取数据库连接
DriverManager.getConnection(String url,String user,String pass);
第三步:通过Connection对象创建Statement对象。Connection创建Statement的方法有三个:
**createStatement() 创建基本的Statement对象
**prepareStatement(String sql) 根据传入的sql语句创建预编译的Statement对象
**prepareCall(String sql) 根据传入的sql语句创建CallableStatement对象
使用Statement执行SQL语句。所有的Statement都有以下三个方法来执行SQL语句:
****excute() : 可以执行任何SQL语句,但是比较麻烦
****excuteUpdate() 主要用于执行DDL和DML语句,执行DML语句返回受SQL语句影响的行数,执行DDL语句返回0
****excuteQuary() 只能执行查询语句,执行后返回代表查询结果的ResultSet对象。
第五步:操作结果集
如果执行的SQL语句是查询语句,则执行结果将返回一个ResultSet对象,该对象里保存跑SQL语句的查询结果。程序可以通过操作该ResultSet对象来取出查询结果。ResultSet对象提供了如下两类方法:
**next() previous() first() last() beforeFirst() afterLast() absolute() 等移动记录指针的方法
**getXxx()方法获取记录指针指向行 特定列的值,该方法既可以使用列索引作为参数,也可以使用列名作为参数。使用列索引做参数的性能更好,使用列名的可读性更好。
第六步:回收数据库资源,包括关闭ResuleSet,Statement和Connection等资源。
简单的JDBC编程程序;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class ConnectionMysql {
public static void main(String[] args)
throws Exception
{
//使用DriverManager获取数据库连接,其中返回的connection就代表Java金额数据库的连接
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "root");
//使用Connection来创建一个Statement对象
Statement stmt =conn.createStatement();
//执行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));
}
}
}
}
//本程序可以使用自动关闭资源的try语句来关闭各种数据库资源,Java7改写了Connection Statement ResultSet等接口,他们都继承了AutoCloseable接口,因此他们都有可以用try语句来关闭。
————————————————————————————————————————
执行SQL语句的方式:JDBC不仅可以实现查询,也可以实现DDL、DML等语句。
(1)实例:下面程序使用excuteUpdate()方法(没有使用excuteLargeUpdate(),因为目前MySQL驱动还不支持),来创建数据表,该实例并没有把数据库连接信息写在程序里,而是使用一个mysql.ini文件(properties文件)来保存数据库连接信息,这是比较成熟的做法–当需要将应用程序从开发环境移到生产环境时,无需修改源代码,只需要修改mysql.ini文件即可。
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.Properties;
public class ExecuteDDL {
String driver;
String url;
String user;
String pass;
public void initParam(String paramFile)
throws Exception
{
//使用Propertics类来加载属性文件
Properties pro=new Properties();
pro.load(new FileInputStream(paramFile));
driver=pro.getProperty(driver);
url=pro.getProperty(url);
user=pro.getProperty(user);
pass=pro.getProperty(pass);
}
public void createTable(String sql)
throws Exception{