IDEA下Maven项目中通过JDBC连接MySQL数据库
### 1. 在当前Maven项目的pom.xml文件中导入数据库依赖:
```<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
```
### 2. 在IDEA中连接数据库
#### 通过IDEA图形化界面连接数据库
根据图中提示,进行数据库连接


然后,我们可以看到我们我们本地的数据库出现在IDEA中:

通过图形化界面,我们可以操作数据库,实现CURD。
#### 通过Java程序连接数据库
固定步骤如下:
1.配置连接信息
```
String url = "jdbc:mysql://localhost:3306/jdbc_db?useSSL=false&useUnicode=true&characterEncoding=UTF-8";
String username = "jdbc_acc";
String password = "123456";
```
2. 加载驱动
```
Class.forName("com.mysql.jdbc.Driver");
```
3. 连接数据库,代表数据库
```
Connection connection = DriverManager.getConnection(url, username, password);
```
4.向数据库发送SQL对象Statement:CRUD
```
Statement statement = connection.createStatement();
```
5.编写SQL(根据业务,不同的SQL)
```
String sql = "select * from stu;" ;
```
6.执行SQL
```
ResultSet resultSet = statement.executeQuery(sql);
while(resultSet.next()){
System.out.println("id=" + resultSet.getObject("id"));
System.out.println("name=" + resultSet.getObject("name"));
System.out.println("profession=" + resultSet.getObject("profession"));
System.out.println("age=" + resultSet.getObject("age"));
System.out.println("birthday=" + resultSet.getObject("birthday"));
System.out.println();
}
```
7.关闭连接
```
resultSet.close();
statement.close();
connection.close();
```
运行代码,可以看到在控制台输出了stu表的所有信息。

(由于IDEA编码原因,本人的IDEA无法正常显示中文,试了网上的方法都没有效果,目前还在解决中)
### 3.使用预编译+事务提交,一种更加安全的方式
基本流程与上面几乎一致,这里不再赘述。直接给出代码:
```
//配置信息
String url = "jdbc:mysql://localhost:3306/jdbc_db?useSSL=false&useUnicode=true&characterEncoding=UTF-8";
String username = "jdbc_acc";
String password = "123456";
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.连接数据库,代表数据库
Connection connection = DriverManager.getConnection(url, username, password);
//开启事务
connection.setAutoCommit(false);
//3.编写SQL
String sql = "insert into stu values(null,?,?,?,?);";
//4.预编译
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1,"Tom");
preparedStatement.setString(2,"会计学");
preparedStatement.setInt(3,23);
preparedStatement.setDate(4,new Date(new java.util.Date().getTime()));
//提交事务
connection.commit();
//5.执行SQL
int i = preparedStatement.executeUpdate();
if(i > 0){
System.out.println("插入成功@");
}
//6.关闭连接,释放资源(一定要做) 先开后关
preparedStatement.close();
connection.close();
```
IDEA下Maven项目中通过JDBC连接MySQL数据库的更多相关文章
- JSP中使用JDBC连接MySQL数据库的详细步骤
1,首先在自己新建的项目文本框中输入Web Project的名称,然后单击下一步. 2,继续单击下一步 3,把Generate web.xml deployment descriptor复选框勾上. ...
- 在java程序中使用JDBC连接mysql数据库
在java程序中我们时常会用到数据库中的数据或操作数据库中的数据,如果java程序没有和我们得数据库连接,就不能实现在java程序中直接操作数据库.使用jdbc就能将java程序和数据库连起来,此时我 ...
- VS2017项目中使用代码连接MySQL数据库,以及进行数据添加
//头文件 #include "mysql.h" //函数定义 // 执行sql语句, 包括增加.删除.更新数据 bool ExecuteSql(MYSQL m_mysql,con ...
- 被缠上了,小王问我怎么在 Spring Boot 中使用 JDBC 连接 MySQL
上次帮小王入了 Spring Boot 的门后,他觉得我这个人和蔼可亲.平易近人,于是隔天小王又微信我说:"二哥,快教教我,怎么在 Spring Boot 项目中使用 JDBC 连接 MyS ...
- JDBC连接MySQL数据库及演示样例
JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...
- JDBC连接MySQL数据库及示例
JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一 ...
- 在Eclipse中使用JDBC访问MySQL数据库的配置方法
在Eclipse中使用JDBC访问MySQL数据库的配置方法 分类: DATABASE 数据结构与算法2009-10-10 16:37 5313人阅读 评论(10) 收藏 举报 jdbcmysql数据 ...
- java用JDBC连接MySQL数据库的详细知识点
想实现java用JDBC连接MySQL数据库.需要有几个准备工作: 1.下载Connector/J的库文件,下载Connector/J的官网地址:http://www.mysql.com/downlo ...
- java jdbc 连接mysql数据库 实现增删改查
好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...
- 分页查询信息(使用jdbc连接mysql数据库实现分页查询任务)
分页查询信息 使用jdbc连接mysql数据库实现分页查询任务 通过mysql数据库提供的分页机制,实现商品信息的分页查询功能,将查询到的信息显示到jsp页面上. 本项目 ...
随机推荐
- Pytorch————学习1
torch.nn 仅支持小批量.整个torch.nn程序包仅支持作为小批量样本的输入,而不支持单个样本. 例如,nn.Conv2d采用的是4D张量:nSamples x nChannels x He ...
- Mysql5.5命令行修改密码(免安装)
1. 命令行运行 mysql -uroot -p my.ini文件设置跳过密码验证(详情见https://www.cnblogs.com/chaoge666/p/13626037.html) 2.输 ...
- 实时中文语音克隆——开源项目MockingBird体验
[引子] 在今年大型网络攻防演练前不久,笔者接到一个公司的座机号码来电,上来就问防守准备得怎么样了,哪里还有不足等.等等,这声音不认识,笔者第一反应就是蓝军(Red Team)来进行社会工程攻击,于是 ...
- python菜鸟学习: 9. 文件操作
# -*- coding: utf-8 -*-import sys, time# 读文件:一次性读取所有内容#r=readf = open("singe.txt", 'r', en ...
- 复杂的光照与更复杂的阴影实现过程——ShaderCP9
--20.8.28 这章的内容看了很久,也有很多复杂的内容.中途还有事情耽搁了一会.开学后就继续好好记录努力. 我们在游戏中能看到的让人觉得真实感的来源之一就是真实的光照以及光照所产生的阴影.下面的内 ...
- Vue中的样式穿透,修改element-ui组件样式不生效
在Vue项目中用的比较多的就是组件,为了实现组件的样式模块化.我们通常会在style标签中添加一个scoped属性,这样css样式只能作用于当前的Vue组件.使组件之间的样式相互独立,当调用该组件的时 ...
- 标记一下CF教育场的网址
(因为太难翻了,做到哪里标到哪,自用 Educational Codeforces Round 1 Educational Codeforces Round 2 Educational Codefor ...
- 将SNAPSHOT包上传到Nexus私服
首先确定要上传的仓库的Type为hosted,Policy为Snapshot 上传命令为: mvn deploy:deploy-file -DgroupId=com.ctg.ag -Dartifact ...
- vim实用用法
1 dd 删除1行 1 gg 跳到第一行 G 文本最后 C 删除当前光标到行尾,并进入插入模式 D 删除当前光标到行尾 dw 删除一个单词 yw 复制一个单词 r /PATH/FROM/SOMEFIL ...
- JAVA 作业
1.让用户分2次输入2个整数,输出2个数的最大值,最小值 import java.util.Scanner;class Demo01 { public static void main(String[ ...