IntelliJ IDEA 连接数据库 详细过程


IntelliJ IDEA集成了众多插件,方便开发者使用,使用其自带的Database模块就可以很方便的配置、连接到数据库,本次操作以MySQL为例,其中testjdbc数据库已经提前建好,里面有两张表emp_table 和 t_user,相关信息如下图。

1397676-20180914140428988-650140724.png

连接到MySQL数据库

1、选择数据源

在IDEA中新建一个Java工程后,最右侧侧边栏会有个 Database 标签,点击此标签,然后点击+按钮
,选择Data Source,选择MySQL,如果是其他数据源,选择其他对应按钮即可。过程如下图所示。

1397676-20180914135750615-1050365771.png

2、下载驱动

如下图是下载好MySQL驱动的情况。如果是第一次进入此界面并且没有驱动,IDEA会在Driver处提示没有下载对应数据库类型的驱动,直接点击,就会自动下载,稍作等待后,结果显示为MySQL,若点击此标签,可以对MySQL的驱动文件进行进一步配置。

1397676-20180914135759749-1466449314.png

3、配置账户、密码信息

如上图所示,需要填写数据库账户信息,这里我的用户名User为root,由于是本地数据库,所以Host填写为localhost,端口Port为3306,Password填写用户名对应的密码即可,Database可以填写想连接的数据库名,也可以暂时不填,待连接上后再设置。填写以上所有信息后,点击Test Connection按钮,如果显示成功Successful,说明连接成功,点击OK按钮,配置完成。

4、查看、修改数据库

  • 连接到数据库后,在Database标签下,可以查看数据库结果,如下图所示,可以看到testjdbc库下有两张表,分别是emp_table 和 t_user,并且能看到表的列信息。如下图所示。

1397676-20180914135810807-1026069661.png

  • 点击表名或者列名,就可以查看表信息,也可以修改表信息,如下图所示。

1397676-20180914135826023-736982158.png

使用JDBC操作数据库

1、导入驱动包到工程

  • Database标签下,右键刚刚建立的数据源名,选择属性Properties,进入之前配置数据源的界面,如下图所示。

1397676-20180914135837093-1252189974.png

  • 点击Driver处MySQL,查看驱动信息,如下图所示。

1397676-20180914135844403-2107412078.png

  • 查看驱动包在计算机中的位置,记下这个路径,方便后面导入这个jar包,如下图。

1397676-20180914135852756-928275005.png

  • 查看到MySQL驱动包的位置后,关闭窗口,在主界面点击File->Project Structure,进入工程设置界面。然后在左侧栏,点击Modules,再选择Dependencies,再点击右侧的+按钮,选择JARs or directories,找到上面MySQL驱动jar包的位置,选择这个jar文件。成功导入后,在Export栏下会有两项,分别是jdk和刚刚导入的jar包,如下图所示。

1397676-20180914135902742-2091505809.png

导入成功后,在工程目录External Libraries下面也会出现导入的驱动包名称,如下图所示。

1397676-20180914135913001-238360162.png

2、使用jdbc操作数据库

import java.sql.*;public class ConnMySQL {public static void main(String[] args) throws Exception {Connection conn = null;try {// 加载驱动类Class.forName("com.mysql.jdbc.Driver");long start =System.currentTimeMillis();// 建立连接conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc","root", "【填写对应的密码】");long end = System.currentTimeMillis();System.out.println(conn);System.out.println("建立连接耗时: " + (end - start) + "ms 毫秒");// 创建Statement对象Statement stmt = conn.createStatement();// 执行SQL语句ResultSet rs = stmt.executeQuery("select * from t_user");System.out.println("id\tusername\tpwd\t\tregTime");while (rs.next()) {System.out.println(rs.getInt(1) + "\t" + rs.getString(2)+ "\t\t" + rs.getString(3) + "\t\t" + rs.getString(4));}} catch (SQLException e) {e.printStackTrace();} finally {try {if (rs != null) {rs.close();}} catch (SQLException e) {e.printStackTrace();}try {if (stmt != null) {stmt.close();}} catch (SQLException e) {e.printStackTrace();}try {if (conn != null) {conn.close();}} catch (SQLException e) {e.printStackTrace();}}}
}

3、程序执行结果

  • 上面的程序中,使用了一条查询语句,查询表t_user的内容,执行程序后的结果如下图。

1397676-20180914135927107-2096573403.png

转载于:https://www.cnblogs.com/Ran-Chen/p/9646187.html

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

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

相关文章

Linux线程编程

参考:Linux多线程编程初探 作者:峰子_仰望阳光 网址:https://www.cnblogs.com/xiehongfeng100/p/4620852.html 目录线程概述线程概念线程与进程区别为何用线程线程开发api概要线程创建、等待、退出线程创建线程退出线程等待线程ID获取及比较线…

LuoGu P2002 消息扩散

题目传送门 这个题其实就是tarjan缩点的板子题对吧....至少我是这么想的 首先这是个有向图,对于一个有向图,我们肯定要考虑环的存在与否,恰好这个题又是让我们找出最少的点,使得这几个点能够走遍全图 那么,显然&#x…

Controlling Execution

2019独角兽企业重金招聘Python工程师标准>>> 逗号操作符 逗号操作符在java中特殊之处在于两个地方: 1. 定义同种类型的变量时可以这样写: int i10,j20;//只有同种变量才行 2. 在for循环中的初始化条件和变化的步骤中对于同种类型的可以连接…

前端 js 非控件 使用标签打印机 打印二维码和文本_青岛Web前端(HTML5)面试题分享...

HTML5是前端开发人员必须掌握的技能之一,那么在面试时,面试官常问到的HTML5的问题有哪些呢?青岛HTML51、Doctype作用?严格模式与混杂模式如何区分?它们有何意义?答:告知浏览器的解析器&#xff…

SpringBoot整合SpringBatch实用简例

SpringBatch主要是一个轻量级的大数据量的并行处理(批处理)的框架。 作用和Hadoop很相似,不过Hadoop是基于重量级的分布式环境(处理巨量数据),而SpringBatch是基于轻量的应用框架(处理中小数据)。 这里使用SpringBatch做了一个能跑的最简单例子&#xff…

安卓APP_ Fragment(1)—— Fragment概念、基础用法、动态变换、管理栈

摘自:安卓APP_ Fragment(1)—— Fragment概念、基础用法、动态变换、管理栈 作者:丶PURSUING 发布时间: 2021-04-15 23:32:31 网址:https://blog.csdn.net/weixin_44742824/article/details/115716359 目录…

谷歌五笔输入法电脑版_“五笔输入法”打字速度更快,为什么却没啥人用?

现如今,随着国内经济水平的不断发展,电脑和手机都已经不再是稀罕玩意,因为现在国内有很多的厂家都在生产手机和电脑,导致这些电子产品的价格下降,所以我们很轻易就能够买得起这样的产品。而在手机、电脑普及之后&#…

邮件系统磁盘监控脚本

#!/bin/shecho "邮件系统磁盘每周检测情况" >> /var/wangyang/checkdisk.txtuse"38.4G"var"819.2G"boot"160M"wang"/var/wangyang"cd $wangdf -h > /var/wangyang/disk.txt####根分区取值######warncat disk.txt |…

安卓APP_ Fragment(2)—— Activity与Fragment的通信

摘自:安卓APP_ Fragment(2)—— Activity与Fragment的通信 作者:丶PURSUING 发布时间: 2021-04-16 17:23:44 网址:https://blog.csdn.net/weixin_44742824/article/details/115743009 目录 Activity与Fragm…

常用python分析数据包pipinstallnumpy_安装numpy和matplotlib时,pip依赖关系解析失败

从一个干净的python2.7.3安装开始,如果我运行pip install -r requirements.txt包括以下内容要求.txt公司名称:^{pr2}$然后pip尝试在numpy之前安装matplotlib,但失败的原因是:BUILDING MATPLOTLIBmatplotlib: 1.2.1python: 2.7.3 (…

java socket 判断Socket连接失效

要判断socket连接链路是否可用时,不能通过socket.isClosed() 和 socket.isConnected() 方法判断,要通过心跳包 socket.sendUrgentData(0xFF) 。 当第一次连接成功后, socket.isClosed() false, socket.isConnected()true,只有在自…

MySQL存储过程权限检查主要点

一、权限相关:1.修改sql security Sql代码 ALTER PROCEDURE www SQL SECURITY INVOKER ; ALTER PROCEDURE www SQL SECURITY DEFINER ; (1)MySQL存储过程是通过指定SQL SECURITY子句指定执行存储过程的实际用户&…

安卓APP_ Fragment(3)—— Fragment的生命周期

摘自:安卓APP_ Fragment(3)—— Fragment的生命周期 作者:丶PURSUING 发布时间: 2021-04-16 22:32:12 网址:https://blog.csdn.net/weixin_44742824/article/details/115768202 目录 Fragment生命周期函数一…

BZOJ 1016--[JSOI2008]最小生成树计数(kruskal搜索)

1016: [JSOI2008]最小生成树计数 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 7429 Solved: 3098[Submit][Status][Discuss]Description 现在给出了一个简单无向加权图。你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树。&…

python until语句_详解Lua中repeat...until循环语句的使用方法

与for和while循环不同,在循环的顶部测试循环条件,Lua编程语言的repeat...until 循环检查循环底部的状态。repeat...until 循环类似于while循环,不同的是do ... while循环是保证至少执行一次。语法Lua编程语言repeat...until循环的语法是&…

Javascript s08

AJAX ------------------------- AJAX 指异步 JavaScript 及 XML(Asynchronous JavaScript And XML)。 举例! 异步是发短信,同步是打电话. 异步的时候,会有回调. 想用JS去服务器拿数据? 客户端的JS.所以没有能力去服务器拿信息 借用服务端的PHP,JS模拟一…

linux驱动开发---并发控制

中断屏蔽 local_irq_disable();/* 临界代码*/local_irq_enable();2.原子操作 整形原子操作:void atomic_set(atomix_t *v,int i) //设置原子变量值为iatomic_t v ATOMIC_INIT(2); //设原子变量v值为2atomic_read(atomic_t *v);void atomic_add(int i,atomic_t *…

安卓APP_ 布局(8) —— 基于 RecyclerView 的 ViewPager2翻页

摘自:安卓APP_ 布局(8) —— 基于 RecyclerView 的 ViewPager2翻页 作者:丶PURSUING 发布时间: 2021-04-20 15:37:54 网址:https://blog.csdn.net/weixin_44742824/article/details/115803077 viewpager2 是对Recycler…

Python基础—06-函数基础

函数基础 函数简介 定义:就是具有特定功能的一段代码优点: 解决代码的重复书写可以将功能的实现着和使用者分开,提高开发效率分类: 库函数:print、input、abs等自定义:用户自己封装的函数函数使用 定义函数…

python encode gbk_[转]Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法

使用Python写文件的时候,或者将网络数据流写入到本地文件的时候,大部分情况下会遇到:UnicodeEncodeError: gbk codec cant encode character \xa0 in position ... 这个问题。 网络上有很多类似的文件讲述如何解决这个问题,但是无…