今天主要学习JDBC开发
思维导图:
一.JDBC的概述
1.JDBC是一个用于执行SQL语句的API组件。
2.JDBC是一个用于Java去访问数据的标准和规范,可以和不同的关系型数据库进行统一标准和规范的约束。
二.JDBC的使用主要依赖于如下3个类和一个接口
1.DriverManager:驱动管理类,主要是帮助我们加载各种驱动包的类文件
2.Connection:数据库的连接接口,主要是将JAVA和数据库连接
3.Statement:负责操作数据库的语句
4.ResultSet:结果集,负责将我们查询的结果进行存储
三.如何去使用JDBC操作数据库:
1.将我们数据库厂商提供给我们的驱动包添加到我们的项目工程进行构建
2.注册驱动,使我们的java程序能够调用厂商提供给我实现类资源
3.连接数据库,使我们java程序和数据库产生连接关系
4.操作SQL语句,将我们在JAVA当中的SQL语句发送到Mysql执行
5.获取数据库的处理结果,Mysql处理好了我们的SQL语句,会将结果返回到JAVA当中
四.具体JDBC连接数据库的代码:
public class Demo01 {
static String password = "root";
static String username = "root";
public static void main(String[] args) throws Exception {
//test01();
test02();
//推荐使用
//test03();
}
public static void test03() throws ClassNotFoundException, SQLException {
//这种方式连接数据库其实不推荐,因为会导致驱动注册两次
//Driver driver = new Driver();
//通过反射机制来注册驱动
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection("jdbc:mysql://115.28.67.10:3306/jdbc_demo", "seehope_demo", "test");
System.out.println(connection);
}
public static void test02() throws SQLException {
//1.注册驱动:使用DriverManager来进行驱动的注册
Driver driver = new Driver();
//2.连接数据库username
//Mysql数据库url协议 jdbc:mysql://地址:端口/连接的数据库
Properties prop = new Properties();
prop.setProperty("username",username);
prop.setProperty("password",password);
System.out.println(prop);
Connection conn = DriverManager.getConnection("jdbc:mysql://115.28.67.10:3306/jdbc_demo",prop);
System.out.println(conn);
conn.close();
}
public static void test01() throws SQLException {
//1.注册驱动:使用DriverManager来进行驱动的注册
Driver driver = new Driver();
//2.连接数据库
//Mysql数据库url协议 jdbc:mysql://地址:端口/连接的数据库
Connection conn = DriverManager.getConnection("jdbc:mysql://115.28.67.10:3306/jdbc_demo", "seehope_demo", "test");
//3.创建一个可以操作SQL语句的Statement
Statement stmt = conn.createStatement();
//4.实际操作一个SQL,并且将这个SQL执行的结果存储到ResultSet
ResultSet res = stmt.executeQuery("select * from account;");
//5.从ResultSet取出结果
// res.next();
// Object obj = res.getObject("username");//自动拆装箱
// res.next();
// Object obj1 = res.getObject("username");//自动拆装箱
// res.next();Object obj = res.getObject("username");//自动拆装箱
// Object obj2 = res.getObject("username");//自动拆装箱
// res.next();
// Object obj3 = res.getObject("username");//自动拆装箱
// System.out.println(obj1 + "-" + obj2 + "--" + obj);
// if(b){
// //有数据则取出数据
// Object obj = res.getObject("username");//自动拆装箱
// System.out.println(obj);
// }
while (res.next()){
Object user = res.getObject("username");//自动拆装箱
Object pwd = res.getObject("password");//自动拆装箱
System.out.println("账号:"+user + "\t"+"密码:"+pwd);
}
//释放资源
res.close();
stmt.close();
conn.close();
}
}