import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* jdbc java数据库连接
* jdbc是java官方提供的一套接口,用于连接并操作数据库
* 不同的数据库厂商都提供了一套jdbc的实现类,并以jar包形式发布,
* 用于使我们的程序可以通过这套实现类来操作其数据库,这套jar称为驱动。
*
* 1.DriverManager
* DriverManager是实现类,用于加载数据库驱动,并与数据库连接,之后产生Connection
* 2.Connection接口
* 表示与数据库的连接,负责管理事务,创建Statement实例
* 3.Statement 接口
* 负责执行sql语句
* 4.ResultSet接口
* 表示查询结果集
*/
public class day_8_18 {
public static void main(String[] args) {
Connection conn=null;
try{
/**
* 连接数据库的步骤:
* 1.加载类库(驱动jar包)到jvm
* 2.通过DriverManager建立连接,这里会加载jar包中的jdbc实现类来与数据库建立连接
* 3.通过Connection创建Statement对象
* 4.通过Statement执行sql语句
* 5.若执行的是DQL语句,则会得到查询结果集Result,遍历该结果集得到查询内容
* 6.关闭连接
*/
/**
* 1.加载驱动包
* 不同的数据库,驱动包路径不同
*/
Class.forName("oracle.jdbc.driver.OracleDriver");
/**
* 2.加载驱动建立连接
* 使用DriverManager的静态方法getConnection
* 该方法要求传入三个参数:
* 1.数据库地址 --- oracle数据库的端口号(默认):1521,sid:xe
* 2.登陆数据库的用户名
* 3.密码
* oracle的格式:
* jdbc:oracle:thin:@url:port:sid
*/
conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","ZSP","123");
System.out.println("与数据库建立连接!");
/**
* 3创建Statement
* 执行不同种类的SQL语句有相应的方法
* (1)int executeUpdate(String sql):专门执行DML语句的方法,返回值是整数,表示执行了该DML语句后,影响了表中多少条数据
* (2)ResultSet executeQuery(String sql):专门执行DQL语句的方法,返回值为查询结果集
* (3)boolean execute(String sql):sql语句都可以执行,一般用来执行DDL语句,返回true时执行的是DQL语句(有结果集),否则是其他类型语句
*/
Statement state=conn.createStatement();
/**
* 执行DDL语句,创建表userinfo
* 字段:
* id number(6) 主键
* username varchar2(32) 用户名
* password varchar2(32) 密码
* email varchar2(50) 邮箱
* nickname varchar2(32) 昵称
* account number(10,2) 账户余额
*/
String sql="create table userinfo( "
+ "id number(6), "
+ "username varchar2(32), "
+ "password varchar2(32), "
+ "email varchar2(50), "
+ "nickname varchar2(32), "
+ "account number(10,2) "
+ ")";
/**
* 创建一个序列
* seq_userinfo_id
*/
String sql_seq="create sequence seq_userinfo_id start with 1 increment by 1";
/**
* DQL
* 查询表记录
*/
String sql_dql="select id,username,password,email,nickname,account from userinfo";
/**
* ResultSet表示查询的结果集
* 遍历结果集的步骤为:
* 1.先判断结果集是否还有下一条记录
* 2.若有,可以获取该条记录各个字段的值,如此反复遍历完结果集
* 遍历的方法:
* boolean next():该方法会让指针指向结果集下一条记录并是让ResultSet表示该条记录,若返回值为false则表示没有记录了
* 一组getXXX(String colName)方法:获取字符串类型字段值用getString,获取整数用getInt,小数用getDouble等
*
*/
ResultSet rs=state.executeQuery(sql_dql);//获取结果集
while(rs.next()) {
//获取id
int id=rs.getInt("id");
//获取username
String username=rs.getString("username");
String password=rs.getString("password");
String email=rs.getString("email");
String nickname=rs.getString("nickname");
//获取account
double account=rs.getDouble("account");
System.out.println(id+","+username+","+password+","+email+","+nickname+","+account);
}
// String sql_drop="drop table userinfo";//删除表
// System.out.println(sql);//打桩
// state.execute(sql_seq);
// System.out.println("序列创建完毕!");
}catch(Exception e) {
e.printStackTrace();
}finally {
if(conn!=null) {
try {
conn.close();//断开连接
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
eclipse通过ojdbc连接oracle
最新推荐文章于 2024-04-19 17:46:46 发布