java JDBC连接数据库操作详解
1.JDBC连接数据库流程
在java之中,所有的数据库操纵的类和接口都保存在了java.sql包下
一个类:DriverManage
四个接口:Connection,Statement,ResultSet,PreparedStatement
所有JDBC操作数据库操作流程都是固定的
1,加载数据库的驱动(向容器中加载)
2,进行数据库的连接(通过DriverManage类完成,Connection表示连接)
3,进行数据库的增删改查(Statement,ResultSet,PreparedStatement)
4,关闭数据库操作以及连接
2.加载数据库驱动
1,在eclips中鼠标右键点击工程,选择Properties
2.点击Java Build Path 选择Libraries下的Add External
3.点击要加入的对应数据库jar包,再点击打开
4,最后选择OK
Oracle驱动程序类:oracle.jdbc.driver.OracleDriver(导入的oracle包下的jbdc子包下的driver子包下的OracleDriver类)
加载类使用Class.forName完成:
Class.forName("oracle.jdbc.driver.OracleDriver");
加载数据库的驱动就完成了
3.进行数据库的连接
连接数据库需要提供有如下几个信息(前提数据库服务要右键启动)
1,数据库连接地址(这个是有不同的数据库厂商提供的):jdbc:oracle:连接方式:主机名称:端口名称:数据库的SID
jdbc:oracle:thin:@localhost:1521:orcl
2,数据库的用户名:scott
3,数据库的密码:tiger(默认密码,如有修改请改为对应密码)
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.PreparedStatement;
public class TestConnection {
static Connection con=null;
static PreparedStatement stmt=null;
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//加载数据库驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//连接数据库
con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","tiger");
//进行数据库操作
stmt = con.createStatement();
System.out.println(con);
//关闭数据库
stmt.close();
con.close();
}
}
输出该对象则表示连接数据库成功
4.进行数据库操作
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.util.Date;
public class TestConnection {
static Connection con=null;
static PreparedStatement stmt=null;
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//第一步加载数据库驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//第二步连接数据库
con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","a");
//第三步编写sql
String sql="select info.* from info where info.id=? and info.name=? and info.birthday=? ";//问号表示占位符
//第四步预编译
stmt = con.prepareStatement(sql);
//第五步向占位符赋值
stmt.setInt(1, 1);
stmt.setString(2, "小王");
Date birthday= new Date();
stmt.setDate(3,new java.sql.Date(birthday.getTime()));//将util型的date转为sql型date
//第六步执行sql
result=stmt.executeQuery();//如果是更新则使用:int len= stmt.executeUpdate();得到更新的数量
//第七步输出搜索到的值
while(result.next()) {
int id=result.getInt(1);
String name=result.getString(2);
Date info_birthday=result.getDate(3);
System.out.println("id是:"+id+"名字是:"+name+"生日是:"+info_birthday);
}
//第八步关闭数据库
stmt.close();
con.close();
}
}