java的数据获取方式:
1.直接声明变量并赋值
2.Scanner类控制台输入
3.IO流(将硬盘存储中的数据读取到java中)
4.socket-io
5.从数据库中获取
JDBC的概念:
java与数据库间沟通不一致
解决:
数据库厂商对外提供java支持的接口
使用:
创建类实现接口(操作数据库)
数据库厂商对外提供数据库操作驱动包
JDBC使用:
1.加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
2.获取数据库连接对象(连接指定的数据库)
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","用户名","密码");
3.获取sql命令对象(编译和发送sql命令给数据库)
Statement stmt=conn.createStatement();
4.创建sql命令
String sql="insert into dept values(10,'123','123')";
5.执行sql命令
int i=stmt.executeUpdate(sql);
6.关闭资源
stmt.close();
ojdbc6与ojdbc5内部封装好驱动类路径,jvm加载时会自动加载驱动类,即5与6可不写Class.forName加载。
JDBC查询:
import java.sql.*;
import java.util.ArrayList;
public class JDBCQuery {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "tiger");
Statement statement = connection.createStatement();
String sql = "select * from dept";
// ResultSet基于指针存储数据
ResultSet resultSet = statement.executeQuery(sql);
// 为便于取出数据,可以将数据存储到ArrayList中
ArrayList<DeptEntity> list = new ArrayList();
while (resultSet.next()) {
System.out.println(resultSet.getInt("deptno") + "-" + resultSet.getString("dname") + "-" + resultSet.getString("loc"));
list.add(new DeptEntity(resultSet.getInt("deptno"), resultSet.getString("dname"), resultSet.getString("loc")));
}
for (DeptEntity entity : list) {
System.out.println(entity);
}
statement.close();
connection.close();
}
}
网友评论