Java中JDBC的使用

发布于:2023-01-16 ⋅ 阅读:(493) ⋅ 点赞:(0)

这边带来的是java中JDBC的使用,在后端中必不可少的是于数据库的交互,所以我们使用JDBC,JDBC就是Java为了连接数据库写的大量的接口与之进行交互,接下来我会教大家如何使用JDBC和数据库连接以及和如何操作数据库。

我们在操作之前需要下载SQL的驱动包,这样才能保证能运行起来,我们需要的是下载jar包,在MySQL的官网,直接进这个下载的吧MySQL :: MySQL Community Downloadshttps://dev.mysql.com/downloads/点击下载这个

 下载这个zip格式的

 下载完成后解压一下,我们在idea中配置一下

点击这个,然后在modules中添加这个jar包

根着步骤走哈,不会出问题的,把包选中添加进去就可以了

我们配置完成了,接下来我们正式的使用JDBC

try{
            //注册驱动
            Class.forName("com.mysq.jdbc.Driver");
            //这里的URL是用来连接数据的URL,前面jdbc:mysql://是固定写法,后面是跟地址+端口号+库名(编码也直接抄上就OK)
            String url = "jdbc:mysql://localhost:3306/student?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8";
            // DriverManager主要是用来做驱动管理的,获取数据库的连接
            Connection root = DriverManager.getConnection(url, "root", "");
            //创建statement用来执行SQL语句
            Statement statement = root.createStatement();
            //定义sql语句
            String sql = "select * from tb_stu1 where id =1";
            //执行SQL语句,并获取执行的结果,这个Resultset当中有两个重要的方法,
            //resultSet.next()   游标在数据库的每一段去判断下一行是否有值,返回值是boolean,有值返回true,没有值返回false
            //resultSet.get+数据类型()  游标获取每一行的数据的类型为什么样的数据类型,需要与其匹配的数据类型进行数据的匹配
            ResultSet resultSet = statement.executeQuery(sql);
            //我们定义一个Arraylist集合去接收返回的值
            ArrayList list = new ArrayList();
            while(resultSet.next()){
                int id = resultSet.getInt("id");
                String name = resultSet.getString("name");
                String sex = resultSet.getString("sex");
                list.add(id);
                list.add(name);
                list.add(sex);
            }
            System.out.println(list);
            root.close();
            statement.close();
        }catch (Exception e){
            e.printStackTrace();
        }

 我们运行后拿到结果

这里基本上就完了,但是我补充当中一些小细节,我们可以更改当中creatStatement,还有其他的方法对于不同的情况,

使用preparedStatement preparedStatement(sql) 预编译sql的执行sql对象,防止sql注入,

callableStatement prepareCall(sql) 执行存储过程的对象

JDBC事务管理步骤如下:setAutocommit(boolean)true为自动提交事务,false为手动提交事务

commit() 提交事务

rollback() 回滚事务

除了我们使用的这种,更多的是使用数据库连接池用来做比这个性能强且复用性高的用途,我也更推荐使用阿里云的Druid连接池用来做,哪天有时间写一篇关于Druid的连接池的,我们这个是Java中的和数据库交互的用法,后面也会普及一下node.js的交互用法


网站公告

今日签到

点亮在社区的每一天
去签到