JDBC学习

Posted 学好编程不秃头

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDBC学习相关的知识,希望对你有一定的参考价值。

才疏学浅,第一次写博客,仅供参考吧,主要是用于自己的复习

JDBC

概念

JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口(一组API),定义了用来访问数据库的标准Java类库,(java.sql,javax.sql)使用这些类库可以以一种标准的方法、方便地访问数据库资源。

JDBC实战

准备工作

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (
  `name` varchar(255) CHARACTER,
  `password` varchar(255) CHARACTER 
)
INSERT INTO `user` VALUES ('lucy', '12345');
INSERT INTO `user` VALUES ('jack', '54321');

添加驱动依赖(这里添加的是mysql的依赖)
用maven仓库的形式来导入jar包
点击访问仓库地址

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.22</version>
</dependency>

如果不会maven也没有关系
可以进入仓库

点击红圈位置即可下载jar包
然后进行以下步骤:
(1)将DBMS数据库管理软件的驱动jar拷贝到项目的libs目录中
(2)把驱动jar添加到项目的build path中
(3)将驱动类加载到内存中


以上完成后便已经导入了依赖 创建工程加入以下代码(其中的配置按自己的实际进行修改)
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/test";
String userName = "root";
String passWord = "root";

效果图如下

打印connection的原因是看是否连接到了数据库
结果出现报错


这是时区问题,是mysql8.0出现的问题,解决的办法就是在url后面加上时区
?serverTimezone=GMT%2B8 即可

发现报错已经解决


以上解决完成后便成功连接到了数据库

JDBC增删改查

我们之前得到了connection对象,我们可以通过connection得到一个statement
,我们对数据库的增删改查操作便是对statement进行操作
实现代码如下

Statement statement = connection.createStatement();  //得到statement对象

然后自己编写sql语句进行对数据库进操作

statement可以调用的方法有很多

一般来说我们可以通过方法名大致了解方法的作用
像我们刚才调用的executeUpdate就是更新插入

控制台打印的1便是数据库有几条语句受到了影响

数据已经插入到了数据库中

为了避免资源的浪费我们还应该操作完成后对这些对象进行关闭
完整代码如下

            Class.forName("com.mysql.cj.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8";
            String userName = "root";      //数据库的账号名字
            String passWord = "root";      // 数据库的密码
            Connection connection = DriverManager.getConnection(url, userName, passWord);

            Statement statement = connection.createStatement();

            String sql = "insert into user values('张三',77777777)";

            int update = statement.executeUpdate(sql);

            System.out.println(update);
            //5.释放资源
            if (statement != null) 
                statement.close();
            
            if (connection != null) 
                connection.close();
            

其实都了增加,删除的道理也差不多
我们还是对sql语句进行改变

将之前的String sql 进行修改即可
String sql = "delete from user where name='张三'";


数据已经就可以被删除了

类似增加和删除,到了这你自己应该也可以写出自己的修改程序了吧

将之前的String sql 进行修改即可
String sql = "update user set  password = '88888888' where name = 'lucy'";


完成对数据修改

查找需要多一步操作,你需要创建一个bean来封装数据库得到的数据


创建一个与数据库对应的对象

  1. 然后进行修改sql语句
String sql = "select * from user";
  1. 然后通过statement调用方法进行查找

  2. 查找返回的是一个set

  3. 我们通过一个while循环取出里面的数据加到集合中

  4. 最后查出所有数据
    相信到这你应该明白怎么查询语句了吧


以上就可以对数据进行一个查询
到这增删改查已经都聊完了

Statement其实有很多的问题
如每次执行一个SQL语句都需要先编译 和 sql语句拼接 和 sql注入等问题
所以我们会使用PreparedStatement解决问题
这个PreparedStatement我们下一篇博客再说吧,大家先把这个增删改查弄懂吧

纸上得来终觉浅,绝知此事要躬行

以上是关于JDBC学习的主要内容,如果未能解决你的问题,请参考以下文章

面试常用的代码片段

mysql jdbc源码分析片段 和 Tomcat's JDBC Pool

IOS开发-OC学习-常用功能代码片段整理

java SpringRetry学习的代码片段

python 机器学习有用的代码片段

JDBC操作数据库之查询数据