JDBC
jdk提供,java连接数据库的规范
java提供接口:java.sql
接口实现类:数据库厂商完成
连接数据库
1.创建连接 Connection
2.操作数据 Statement
3.结果 ResultSet
1.创建连接
1.导jar包 - 数据库驱动包 - JDBC实现类
2.连接数据库
1.加载驱动
Class.forName("com.mysql.jdbc.Driver");//mysql连接
Class.forName("oracle.jdbc.OracleDriver");//Oracle连接
可能产生异常:ClassNotFoundException
产生原因:
1.类名写错
2.jar丢失
2.获得数据库连接 - 工具类DriverManager
//SQL连接
Connection conn = DriverManager.getConnection(
"jdbc:mysql://127.0.0.1:3306/test",//url
"root",//用户名
"123456"//密码
);
//Oracle
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@192.168.6.66:1521:orcl",
"student",
"123456"
);
2.操作数据库
//通过连接获得操作数据库的Statement对象 - sql语句
String sql = "";//DDL DML DQL
Statement stmt = conn.createStatement();
执行sql语句
1.execute(sql)
执行DDL DML DQL =>一般执行DDL
返回值:是否有结果集resultSet
sql="select * from emp";
stmt = conn.createStatement();
System.out.println(stmt.execute(sql));//true
2.executeUpdate(sql)
执行DML语句
返回值:返回共有几条语句更新
sql = "update emp set name='lucy'where id=2";
int x = stmt.executeUpdate(sql);
3.executeQuery(sql)
返回值:结果集ResultSet
ResultSet所有查出来的数据都存储在这里
ResultSet中一条数据,查询结果的一行
rs表示一整行数据
sql=select * from emp;
ResultSet rs = stmt.executeQuery(sql);
rs.next():问有没有下一个,如果有直接取下一个
rs.next():迭代器中的两句话的效果
hasNext();->boolean
next ->下一个元素
//JDBC索引从1开始,
while(rs.next()){
int empno = rs.getInt(1);//通过索引下标获得查询对象
String name = rs.getString("ename");//通过字段名获得查询对象
}