JavaWeb课程复习资料——idea创建JDBC

news2024/11/25 19:48:21

1、创建空的Java Project

在这里插入图片描述

输入项目名称
在这里插入图片描述

空项目

在这里插入图片描述

2、引入jar包步骤

依次点击 File -> Project Structure(快捷键 Ctrl + Alt + Shift + s),点击Project Structure界面左侧的“Modules”如图:

在这里插入图片描述

在这里插入图片描述

在 【Dependencies】 标签界面下,点击左边的 “+”号,选择第一个选项“JARs or directories…”,选择相应的jar包,点“OK”,jar包添加成功

在这里插入图片描述
获取驱动包:
链接:https://pan.baidu.com/s/1VQvpbcsYska_i5JVOCMxqg
提取码:yyds

在这里插入图片描述

在这里插入图片描述

3、驱动位置

【com.mysql.jdbc.Driver】

private static final String URL = "jdbc:mysql://localhost:3306/test?useUnicode&CharacterEncoding=utf-8";
private static final String USE = "root";
private static final String PASSWORD = "root";

4、创建【工厂类】的包与类

在这里插入图片描述

在这里插入图片描述

5、输入链接路径与账号密码

package com.item.jdbc;

/**
 * @author 为一道彩虹
 */
public class FactoryDB
{
    private static final String URL = "jdbc:mysql://localhost:3306/test?characterEncoding=utf-8";
    private static final String USER = "root";
    private static final String PASSWORD = "root";
}

6、创建访问数据链接方法

package com.item.jdbc;

import java.sql.*;

/**
 * @author 为一道彩虹
 */
public class FactoryDB
{
    private static final String URL = "jdbc:mysql://localhost:3306/test?characterEncoding=utf-8";
    private static final String USER = "root";
    private static final String PASSWORD = "root";

    //1.加载驱动
    static
    {
        try
        {
            Class.forName("com.mysql.cj.jdbc.Driver");
        }
        catch (ClassNotFoundException e)
        {
            e.printStackTrace();
        }
    }

    // 2.获取数据库连接
    public static Connection getConnection()
    {
        try
        {
            return DriverManager.getConnection(URL, USER, PASSWORD);
        }
        catch (SQLException throwables)
        {
            throwables.printStackTrace();
        }
        return null;
    }

    // 3.关闭资源
    public static void Close(Connection connection, PreparedStatement preparedStatement, ResultSet resultSet)
    {
        try
        {
            if (resultSet != null)
            {
                resultSet.close();
            }
            if (preparedStatement != null)
            {
                preparedStatement.close();
            }
            if (connection != null)
            {
                connection.close();
            }
        }
        catch (SQLException e)
        {
            e.printStackTrace();
        }
    }
}

7、创建测试数据表

CREATE TABLE `userinfo` (
  `id` int(8) NOT NULL AUTO_INCREMENT,
  `createDate` datetime NOT NULL,
  `userName` varchar(32) NOT NULL,
  `introduce` varchar(200) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO userinfo VALUES (0,NOW(),'admin','管理员很厉害');
INSERT INTO userinfo VALUES (0,NOW(),'zhangsan','张三不认李四');
INSERT INTO userinfo VALUES (0,NOW(),'lisi','李四都认识');
INSERT INTO userinfo VALUES (0,NOW(),'wangwu','大刀王五');
INSERT INTO userinfo VALUES (0,NOW(),'zhaoliu','赵家老六');
INSERT INTO userinfo VALUES (0,NOW(),'ruanxiaoqi','打鱼的阮小七');
INSERT INTO userinfo VALUES (0,NOW(),'baxianwang','贤王一名');
select * from userinfo;

在这里插入图片描述

时间我没随机给,比较麻烦,自己改一下也行的哦。

8、创建测试类

包名:【com.item.demo】

类名:【Action】

package com.item.demo;

import com.item.jdbc.FactoryDB;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * @author 为一道彩虹
 */
public class Action
{
    public static void main(String[] args)
    {
        Connection conn = FactoryDB.GetConnection();
        PreparedStatement pre = null;
        ResultSet res = null;
        
        try
        {
            pre = conn.prepareStatement("select * from userinfo");
            res = pre.executeQuery();
            while (res.next())
            {
                System.out.print("id:"+res.getInt(1)+"\t");
                System.out.print("createDate:"+res.getTime(2)+"\t");
                System.out.print("userName:"+res.getString(3)+"\t");
                System.out.println("introduce:"+res.getString(4));
            }
        }
        catch (SQLException e)
        {
            e.printStackTrace();
        }
        finally
        {
            FactoryDB.Close(conn,pre,res);
        }
    }
}

查询成功:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1182966.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言学习笔记之结构篇

C语言是一门结构化程序设计语言。在C语言看来,现实生活中的任何事情都可看作是三大结构或者三大结构的组合的抽象,即顺序,分支(选择),循环。 所谓顺序就是一条路走到黑;生活中在很多事情上我们都…

MVCC中的可见性算法

在之前的文章 MVCC详解-CSDN博客中我们已经介绍过了MVCC的原理(read viewundo log),今天来详细的说一下readview的匹配规则(可见性算法) 隔离级别在RC,RR的前提下 Read View是如何保证可见性判断的呢&#…

微服务-grpc

微服务 一、微服务(microservices) 近几年,微服这个词闯入了我们的视线范围。在百度与谷歌中随便搜一搜也有几千万条的结果。那么,什么是微服务 呢?微服务的概念是怎么产生的呢? 我们就来了解一下Go语言与微服务的千丝…

机器学习——回归

目录 一、线性回归 1、回归的概念(Regression、Prediction) 2、符号约定 3、算法流程 4、最小二乘法(LSM) 二、梯度下降 梯度下降的三种形式 1、批量梯度下降(Batch Gradient Descent,BGD)&#xff…

Unity地面交互效果——4、制作地面凹陷轨迹

大家好,我是阿赵。   上一篇介绍了曲面细分着色器的基本用法和思路,这一篇在曲面细分的基础上,制作地面凹陷的轨迹效果。 一、思路分析 这次需要达到的效果是这样的: 从效果上看,这个凹陷在地面下的轨迹&#xff0…

BigDecimal使用的时候需要注意什么?

BigDecimal只要涉及到浮点数运算都会用到BigDecimal,并且面试的时候经常会问到,那么BigDecimal使用的时候需要注意什么? 目录 1.为什么不能用浮点数表示金额?2.十进制转换二进制3.科学记数法4.IEEE 7545.在线浮点数转换二进制6.原…

Go uuid库介绍

简介: 在现代软件开发中,全球唯一标识符(UUID)在许多场景中发挥着重要的作用。UUID是一种128位的唯一标识符,它能够保证在全球范围内不重复。在Go语言中,我们可以使用第三方库github.com/google/uuid来方便…

怎样在iOS手机上进行自动化测试

Airtest支持iOS自动化测试,在Mac上为iOS手机部署iOS-Tagent之后,就可以使用AirtestIDE连接设备,像连接安卓设备一样,实时投影、控制手机。iOS测试不仅限于真机测试,iOS模拟器也可以进行。Mac端上部署完成后还可以提供给…

python-re模块

python之正则表达式-基础匹配https://blog.csdn.net/Python_1981/article/details/133777795python之正则表达式-元字符匹配https://blog.csdn.net/Python_1981/article/details/133778805 一、查找 1、findall 2、search 如果没有匹配到,会返回None, 使用group会报…

大文件传输小知识 | UDP和TCP哪个传输速度快?

在网络世界中,好像有两位“传输巨头”常常被提起:UDP和TCP。它们分别代表着用户数据报协议和传输控制协议。那么它们是什么?它们有什么区别?它们在传输大文件时的速度又如何?本文将深度解析这些问题,帮助企…

基于若依的ruoyi-nbcio流程管理系统仿钉钉流程json转bpmn的flowable的xml格式(简单支持发起人与审批人的流程)续

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 之前生产的xml,在bpmn设计里编辑有些内容不正确,包括审批人,关联表单等…

利用python找出偏序集中极大元、极小元、最大元和最小元

1 问题 在离散数学“关系”这一章的学习过程中,学到偏序集中极大元、极小元、最大元和最小元的求解方法,于是提出能不能用python语言实现偏序集中极大元、极小元、最大元和最小元的求解? 2 方法 判断偏序集中的极大元、极小元、最大元和最小元…

Java TCP服务端多线程接收RFID网络读卡器上传数据

本示例使用设备介绍:WIFI/TCP/UDP/HTTP协议RFID液显网络读卡器可二次开发语音播报POE-淘宝网 (taobao.com) import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; impor…

Vue路由介绍及使用

一、单页应用程序介绍 1.概念 单页应用程序:SPA【Single Page Application】是指所有的功能都在一个html页面上实现,当切换不同的功能时,页面不会进行刷新,类似Ajax请求,但请求地址会发生部分变化。 2.具体示例 单…

微型计算机原理1

一、选择题 1.8086CPU的字长是()位。 A. 32 B. 128 C. 64 D. 16 2 间接寻址方式中,操作数在()中。 A. 通用寄存器 B. 内存单元 C. 程序计数器 D.堆栈 3.在循环指令LOOP和串操作指令中,用作计数器的寄存器是() A. AX B. BX C. C…

深度学习(CNN+RNN)笔记1

文章目录 视频课 第四课:卷积神经网络(Convolutional Neural Networks)第一周:Convolutional Neural Networks 卷积神经网络第二周:Case Studies 案例学习第三周:Object Detection 目标检测第四周&#xff…

Jupyter Notebook快速上手

Jupyter Notebook快速上手 文章目录 Jupyter Notebook快速上手1 运行Jupyter Notebook1.1 通过图形化界面打开1.2 通过命令行打开1.3 在指定项目目录下打开 2 Jupyter Notebook运行后无法自动打开网页3 Jupyter Notebook运行代码没反应4 退出4.1 终端退出4.2 命令行退出 此教程…

[PHP]ShopXO企业级B2C免费开源商城系统 v2.3.1

ShopXO 企业级B2C免费开源电商系统! 求实进取、创新专注、自主研发、国内领先企业级B2C电商系统解决方案。 遵循Apache2开源协议发布,无需授权、可商用、可二次开发、满足99%的电商运营需求。 PCH5、支付宝小程序、微信小程序、百度小程序、头条&抖音…

Chrome插件精选 — 屏幕录像插件

Chrome实现同一功能的插件往往有多款产品,逐一去安装试用耗时又费力,在此为某一类型插件挑选出比较好用的一款或几款,尽量满足界面精致、功能齐全、设置选项丰富的使用要求,便于节省一个个去尝试的时间和精力。 1. 屏幕录像机 - S…

Java GC机制 —— 个人笔记

文章目录 JVM内存区对象是否需要回收?1. 引用计数法2. 可达性分析法(根搜索算法)Java的引用 对象何时被回收?回收策略回收策略1:引用计数算法回收策略2:标记清除算法(Mark-Sweep)回收…