博主主页: 码农派大星.
数据结构专栏:Java数据结构
数据库专栏:MySQL数据库
关注博主带你了解更多数据结构知识
1. Java的数据库编程:JDBC
数据库驱动包:不同的数据库,对应不同的编程语言提供了不同的数据库驱动包,如:MySQL提 供了Java的驱动包mysql-connector-java,需要基于Java操作MySQL即需要该驱动包。
JDBC,即Java Database Connectivity,java数据库连接。是一种用于执行SQL语句的Java API,它是 Java中的数据库连接规范。这个API由 java.sql.*,javax.sql.* 包中的一些类和接口组成,它为Java 开发人员操作数据库提供了一个标准的API,可以为多种关系数据库提供统一访问。
2. JDBC工作原理
JDBC 为多种关系数据库提供了统一访问方式,作为特定厂商数据库访问API的一种高级抽象,它主要包 含一些通用的接口类。
JDBC访问数据库层次结构:
JDBC优势:
Java语言访问数据库操作完全面向抽象接口编程
开发数据库应用不用限定在特定数据库厂商的API
程序的可移植性大大增强
3. JDBC使用
3.1准备数据库驱动包,并添加到项目的中:
在项目中创建文件夹lib,并将依赖包mysql-connector-java-5.1.47.jar复制到lib中。再配置该jar 包到本项目的中:
先选中lib,再Ctrl+v,再点击ok即可.
然后再右键lib,点击Add as library,最后点击ok即可.
此时添加完 "库" 之后,idea就能分析出jar包里有什么.
3.2创建数据源对象
DataSource是Java标准库JDBC自带的一个接口,不能直接new,只能new它的子类
还要给这个对象创建必要的属性 :
1)数据库服务器在哪里
2)访问服务器账户是什么
3)访问服务器账户密码是什么
这几个部分都是子类具有
DataSource本身没有相关方法和属性.
DataSource dataSource = new MysqlDataSource();
((MysqlDataSource) dataSource).setUrl();
((MysqlDataSource) dataSource).setUser();
((MysqlDataSource) dataSource).setPassword();
MysqlDataSource dataSource1 = new MysqlDataSource();
dataSource1.setUrl();
dataSource1.setUser();
dataSource1.setPassword();
这里只是针对数据源对象初始化做的一些准备工作,并没有真正与数据库服务器进行网络通信.
3.3 和数据库服务器进行网络连接
Connection connection = dataSource.getConnection();
3.4 构造SQL语句
//让用户输入id和name
Scanner scanner = new Scanner(System.in);
System.out.println("请输入id: ");
int id = scanner.nextInt();
System.out.println("请输入name: ");
String name = scanner.next();
String sql1 ="insert into student values(?,?) ";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setInt(1,id);
statement.setString(2,name);
我们也可以手动输入来插入数据
String sql ="insert into student values(1,'张三') ";
PreparedStatement statement = connection.prepareStatement(sql);
3.5把SQL语句发送到服务器上执行
int n = statement.executeUpdate();
3.6释放上述资源
statement.close();
connection.close();
总结:
在实际开发中JDBC一般不会使用,因为写起来比较麻烦,后来就有了很多库和框架,针对JDBC进行封装和简化.
后续会带来MyBaits框架,就是针对JDBC简化后的组件.
标签:JDBC,Java,MysqlDataSource,数据库,编程,dataSource,statement From: https://blog.csdn.net/jj666mhhh/article/details/139352895