文章目录
给宝宝们一个建议, JSP别学啦, 我给你们分享一下我学习的路程吧!! (重点)指的是需要彻底理解,不仅仅是会用
Java基础(都是重点, 但反射和IO最重要),前端基础(HCJ三者) Socket, Servlet(重点)+Tomcat, Mysql数据库 【到这里,基本方面已经OK,开始学习web框架】
Spring(重点), SpringMVC(JDBC看你学不学咯), MyBatis, SpringBoot, 前端的: Jquery, Vue(一定要学) 【到这里你已经可以做出自己的网站了,可以学习其它框架】
Linux(重点,命令熟能生巧), Docker, Es7, FastDFS, Git, MQ(推荐学习RabbitMQ和Kafka), Nginx, Redis,Zookeeper, SpringCloud
也不能忘记了基础以及进阶JVM, JUC, WebSocket, Netty 【到这里已经可以自信一点面试了,前提是你理解了并且能表达出来,然后学习大数据方面】
Hadoop全家桶, Kafka, Flink, Spark, K8S
我现在正在学习Flink, 发现感觉自己是弱鸡, 兴趣最重要, 是学完的必要条件. 目标也最重要, 是提升个人高度天花板的必要条件, 表达和展示能力很重要, 要不没人知道你会
一、概念
JDBC(Java DataBase Connectivity),Java数据库连接,Java语言操作数据库
本质:是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。然后各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们学者可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。
二、快速入门
步骤:
1. 导入驱动jar包 mysql-connector-java-8.0.19
2. 注册驱动
3. 获取数据库连接对象Connection
4. 定义sql语句
5. 获取执行sql语句的对象Statement,因为connection不能直接执行
6. 执行sql,接收返回结果
7. 处理结果
8. 释放资源(以免造成内存泄漏)
9. 代码如下:
package com.jdbc;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.Statement;
public class JdbcDemo1 {
public static void main(String[] args) throws Exception {
//1.导入jar包
//2. 注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//3.获取数据库连接对象 //localhost:3306为ip地址 /db3为选中的数据库名
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db1?serverTimezone=GMT","root","root");
//4.定义SQL语句
String sql= "update account set balance=500 where id=1";
//5.获取执行sql的对象 Statement
Statement statement = conn.createStatement();
//6.执行SQL语句
int count = statement.executeUpdate(sql);
//7.处理结果
System.out.println(count);
//8.释放资源
statement.close();
conn.close();
}
}
三、详解各个对象
- DriverManager:驱动管理对象
* 功能为:
1、注册驱动
static void registerDriver(Driver driver):注册给定的驱动程序DriverManager
然后代码使用只有这一句话:Class.forName(“com.mysql.jc.jdbc.Driver”);(注意mysql5之后的驱动jar包可以省略不写)
通过查看源码发现:在com.mysql.jdbc.Driver类中存在静态代码块
static{
try{
java.sql.DriverManage.registerDriver(new Driver());
}catch{
throw new RuntimeException("Can't register driver!");
}
}
2、获取数据库连接
方法:static Connection getConnection(String url, String user, String password)
url(参数):指定连接的路径,其语法为jdbc:mysql://ip地址(域名):端口号/数据库名称?serverTimezone=GMT
-
Connection:数据库连接对象
* 功能为:
1、获取执行sql的对象
Statement createStatement() / preparedStatement prepareStatement(String sql)
2.管理事务:
开启事务:setAutoCommit(boolean autocommit) 该方法的参数设置为false即开启事务
提交事务:commit()
回滚事务:rollback() -
Statement:执行sql的对象(执行静态的SQL语句,就是sql里面参数值是已知给出的)
* 功能为:
1、执行sql
boolean execute(String sql) 可以执行任意的sql语句
int executeUpdate(String sql) 执行DML语句(操作表里的数据insert、update、delete)、DDL语句(操作数 据库和表 create、alter、drop)
ResultSet executeQuery(String sql) 执行DQL语句(对表中的数据进行select) -
ResultSet:结果集对象
1、boolean next():游标向下移动一行,判断当前航是否是最后一行末尾,如果是,则返回false;不是返回true
2、getString(1) / getInt(1) / getDouble(“id”):参数“1”表示第一列,参数“id”表示列名id -
PreparedStatement:执行sql的对象(执行动态的SQL语句)