🙉专栏推荐:Java入门知识🙉
🙉 内容推荐:🙉
🐹今日诗词:🐹
⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏
⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏
概念
JDBC编程就是数据库提供API接口到主流编译器中,通过API进行数据库操作
如何使用IDEA进行MySQL操作
我们需要将MySQL驱动包导入到IDEA编译器中
驱动包下载地址: Maven 存储库:mysql >> mysql-connector-java (mvnrepository.com)
根据你的MySQL版本下载即可,高版本兼容低版本
如果你的MySQL是5.7版本,只需要下载5开头的驱动包即可
文件导入
将下载的文件导入到项目中
名字随便取,一般写lib, lib是library的缩写,图书馆的意思,在Java中表示库的意思
复制下载的MySQL驱动包,点击IDEA的lib,然后粘贴就会自动导入了
接下来
创建数据源
数据源是描述你要操作的数据库的位置,是MySQL,SQL sever,还是oracle数据库以及具体位置
数据源格式: IP地址 + 端口号 + 库名
由于我们日常学习使用的MySQL,客户端和服务端都是我们自己的电脑
所以IP地址写成: 127.0.0.1 (这个IP叫做环回地址,表示客户端和服务器都在一台主机上面)
MySQL默认端口号是: 3306
如果使用第二种写法,当我们换成oracle数据库是就会出现对不上的情况
而第一种情况由于DataSource是父类,转型调用就会非常方便,代码耦合性更低
耦合性
比如一串代码调用了MySQL数据库的方法,如果这串代码只能在MySQL上运行,说明代码耦合性很高,但是如果换了其他数据库还能继续使用说明耦合性低
内聚
我们写代码一般追求低耦合,高内聚
高内聚就是将有关系的代码放在一起,便于阅读,类似于文件分类
低内聚就像是七龙珠散落在世界各地,实现愿望还要满世界找来找去
JDBC增删改操作
以下是一个较为完整的JDBC操作(以插入数据为例子),所有源码放在最后了
设置数据源
这样就把数据源设置完毕了
数据库名是create database创建的库
连接数据库服务端
数据源设置完毕,我们就可以通过getConnection方法连接数据库服务器了
构建SQL语句
Statement是语句的意思直接将我们写的代码发送给服务器,由服务器解析并执行
PreparedStatement是预处理语句,可以将我们写的代码在本地进行解析,变成SQL语句后在发给服务器执行很明显PreparedStatement更好,减少了服务器的开销,因为服务器会收到许多请求,如果都在服务器上解析执行,显然不如把解析后的代码发送到服务器上效率高
发送到服务器执行
释放资源
一般释放资源都是close, 同时释放资源时要注意释放顺序
所有演示代码
java
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class TestJDBC {
public static void main(String[] args) throws SQLException {
DataSource dataSource = new MysqlDataSource();
//1.设置数据源
((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java?characterEncoding=utf8&useSSL=false");
((MysqlDataSource)dataSource).setUser("root"); //设置用户名
((MysqlDataSource)dataSource).setPassword("qwer1234"); //设置密码
//2.和数据库服务器建立连接
Connection connection = dataSource.getConnection();
//3.构造SQL语句
String sql = "insert into student values(1,'张三');";
PreparedStatement statement = connection.prepareStatement(sql);
//通过connection里的prepareStatement方法生成一个预处理语句对象
//4.将构造好的SQL语句发送给服务器执行
int n = statement.executeUpdate();
System.out.println("n = " + n );
//5.释放资源
statement.close(); //先创建的后释放,顺序不能颠倒了
connection.close();
}
}
PreparedStatement的占位符使用
我们发现上面的插入操作是写死了的,这时就可以通过PreparedStatement提供的?占位符进行优化,就能实现动态构造SQL语句了
占位符?的作用: 占位的目的是为了替换,如何操作呢?
JDBC查询操作
大致和插入操作差不多,区别在于查询返回了一个ResultSet结果集,如何遍历结果集才是我们关注的,前面的操作和插入类似
具体操作: 使用resultSet.next()方法遍历
javaimport com.mysql.jdbc.jdbc2.optional.MysqlDataSource; import javax.sql.DataSource; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class SelectJDBC { public static void main(String[] args) throws SQLException { //1.设置数据源,用户名密码 DataSource dataSource = new MysqlDataSource(); ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java?characterEncoding=utf8&useSSL=false"); ((MysqlDataSource) dataSource).setUser("root"); ((MysqlDataSource) dataSource).setPassword("qwer1234"); //2.连接数据库服务器 Connection connection = dataSource.getConnection(); //3.构建SQL语句,并进行预处理 String sql = "select * from student;"; PreparedStatement preparedStatement = connection.prepareStatement(sql); //4.发送SQL语句到服务器执行 ResultSet resultSet = preparedStatement.executeQuery(); while (resultSet.next()) { int id = resultSet.getInt("id"); String name = resultSet.getString("name"); System.out.print("学号: " + id + " 姓名: " + name ); System.out.println(); } //5.释放资源 resultSet.close(); preparedStatement.close(); connection.close(); } }
✨🎆谢谢你的阅读和耐心!祝愿你在编程的道路上取得更多的成功与喜悦!"🎆✨🎄
⭐️点赞收藏加关注,学习知识不迷路⭐️
🎉✔️💪🎉✔️💪🎉✔️💪🎉✔️💪🎉
👍😏⛳️点赞☀️收藏⭐️关注😏👍
👍😏⛳️点赞☀️收藏⭐️关注😏👍
👍😏⛳️点赞☀️收藏⭐️关注😏👍
🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️