目录
概述
JDBC就是使用java语言操作关系型数据库的一套api
JDBC入门案例
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获取连接
String url="jdbc:mysql://127.0.0.1:3306/demo";
String username="root";
String password="a7078796123";
Connection conn=DriverManager.getConnection(url,username,password);
//3.定义sql
String sql="update employee set age=50 where id=1";
//4.获取执行sql的对象Statement
Statement stmt=conn.createStatement();
//5.执行sql
int count =stmt.executeUpdate(sql);
//6.处理结果
System.out.println(count);
//7.释放资源
stmt.close();
conn.close();
JDBC API详解
DriverManager作用类:
1.注册驱动
2.获取数据库连接
Connection:
1.获取执行SQL的对象
2.管理事务
try {
//开启事务
conn.setAutoCommit(false);
//5.执行sql
int count = stmt.executeUpdate(sql);
//6.处理结果
System.out.println(count);
//提交事务
conn.commit();
}catch (Exception throwables){
//回滚事务
conn.rollback();
throwables.printStackTrace();
}
Statement作用:
1.执行SQL语句
ResultSet:
封装了DQL查询语句的结果
//5.执行sql
ResultSet rs=stmt.executeQuery(sql);
//6.处理结果,遍历rs中所有数据
//6.1光标向下移动一行,并且判断当前行是否有数据
while(rs.next()){
//6.2获取数据 getXxx()
int id=rs.getInt(1);
String name=rs.getString(2);
double money=rs.getDouble(3);
System.out.println(id);
System.out.println(name);
System.out.println(money);
System.out.println("------------");
案例
package com.itheima.jdbc;
import com.itheima.pojo.Account;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class JDBCDemo5_Result {
/**
* 查询account账户表数据,封装为Account对象中,并且存储ArrayList集合中
* 1.定义实体类Account
* 2.查询数据,封装到Account对象中
* 3.将Account对象存入ArrayList集合中
*
*/
public static void main(String[] args) throws Exception {
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获取连接
String url="jdbc:mysql://127.0.0.1:3306/demo";
String username="root";
String password="a7078796123";
Connection conn= DriverManager.getConnection(url,username,password);
//3.定义sql
String sql="select * from account";
//4.获取执行sql的对象Statement
Statement stmt=conn.createStatement();
//5.执行sql
ResultSet rs=stmt.executeQuery(sql);
//创建集合
List<Account> list=new ArrayList<>();
//6.处理结果,遍历rs中所有数据
//6.1光标向下移动一行,并且判断当前行是否有数据
while(rs.next()){
Account account=new Account();
//6.2获取数据 getXxx()
int id=rs.getInt(1);
String name=rs.getString(2);
double money=rs.getDouble(3);
//赋值
account.setId(id);
account.setName(name);
account.setMoney(money);
//存入集合
list.add(account);
}
System.out.println(list);
//7.释放资源
stmt.close();
conn.close();
}
}