1.注册驱动:通知Java程序我们要连接的是哪个品牌的数据库

2.获取数据库连接:Java进程和Mysql进程之间的通道开启了

3.获取数据库操作对象:这个对象是用来执行sql语句的

4.执行SQL语句:对数据库进行CRUD(增删改查)操作

5.处理查询结果集:如果第四步有select语句才有这一步

6.释放资源:关闭所有资源

例1:不带处理查询结果集的JDBC

 1 package com.xiaoma.JDBC;
2
3 import java.sql.*;
4
5 public class TestJDBC {
6 public static void main(String[] args) throws SQLException {
7 //1.注册驱动
8 com.mysql.jdbc.Driver driver=new com.mysql.jdbc.Driver();
9 DriverManager.registerDriver(driver);
10 //2.获取数据库连接对象
11 String url="jdbc:mysql://127.0.0.1:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
12 String username="root";
13 String password="123456";
14 Connection conn=DriverManager.getConnection(url,username,password);
15 System.out.println(conn);
16 //3.获取数据库操作对象(通过一个Connection连接对象可以拿到多个操作对象)
17 Statement statement = conn.createStatement();
18 //4.执行sql语句(这里以插入和删除为例,其余同理,前提是要会写sql语句)
19 //String InsertSql="insert into people(name,age,address) values('小马',18,'山东省')";
20 String DeleteSql="delete from people where name='小马'";
21 //这个executeUpdate方法专门用来执行sql的增删改查语句的,其中返回值为影响力数据库中的数据条数,也就是影响力几行
22 int i = statement.executeUpdate(DeleteSql);
23 System.out.println(i);
24 //5.释放资源,先释放statement再释放connection
25 if (statement != null) {
26 statement.close();
27 }
28 if (conn != null){
29 conn.close();
30 }
31 }
32 }

例2:带处理查询结果集的JDBC

 1 package com.xiaoma.JDBC;
2
3 import java.sql.*;
4
5 public class TestJDBC02 {
6 public static void main(String[] args) throws SQLException {
7 //1.注册驱动
8 com.mysql.jdbc.Driver driver=new com.mysql.jdbc.Driver();
9 DriverManager.registerDriver(driver);
10
11 //2.获取数据库连接对象
12 String url="jdbc:mysql://127.0.0.1:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
13 String username="root";
14 String password="123456";
15 Connection conn=DriverManager.getConnection(url,username,password);
16 System.out.println(conn);
17
18 //3.获取数据库操作对象(通过一个Connection连接对象可以拿到多个操作对象)
19 Statement statement = conn.createStatement();
20
21 //4.执行sql语句(这里以插入和删除为例,其余同理,前提是要会写sql语句)
22 String SeleteSql="select * from people";
23 //这个executeUpdate方法专门用来执行sql的增删改查语句的,其中返回值为影响力数据库中的数据条数,也就是影响力几行
24 ResultSet resultSet = statement.executeQuery(SeleteSql);
25
26 //5.处理查询结果集
27 while(resultSet.next()){
28 //这个getString()方法是不管数据库中的值是什么类型的,他都会以String类型返回
29 //getString()是通过下标取值的,默认都是以字符串类型取出,可以通过相应类型的get方法取出特定类型的值
30 System.out.println(resultSet.getString(1));
31 System.out.println(resultSet.getString(2));
32 System.out.println(resultSet.getString(3));
33 System.out.println(resultSet.getString(4));
34 }
35
36 //6.释放资源,先释放statement再释放connection
37 if (statement != null) {
38 statement.close();
39 }
40 if (conn != null){
41 conn.close();
42 }
43 if(resultSet!=null){
44 resultSet.close();
45 }
46 }
47 }

例3:将数据库连接信息写到properties配置文件中,通过读取properties配置文件连接数据库,进行查询(做开发基本上都用这种方式)

 1 package com.xiaoma.JDBC;
2
3 import java.io.IOException;
4 import java.io.InputStream;
5 import java.sql.*;
6 import java.util.Properties;
7 import java.util.ResourceBundle;
8
9 //读取配置文件
10 public class TestJDBC03 {
11 public static void main(String[] args) throws SQLException, IOException {
12 //获取配置文件数据
13 InputStream is=TestJDBC03.class.getClassLoader().getResourceAsStream("db.properties");
14 Properties pro=new Properties();
15 pro.load(is);
16 String username= pro.getProperty("username");
17 String password=pro.getProperty("password");
18 String url=pro.getProperty("url");
19
20 //1.注册驱动
21 com.mysql.jdbc.Driver driver=new com.mysql.jdbc.Driver();
22
23 //2.获取数据库连接对象
24
25 Connection conn=DriverManager.getConnection(url,username,password);
26 System.out.println(conn);
27
28 //3.获取数据库操作对象(通过一个Connection连接对象可以拿到多个操作对象)
29 Statement statement = conn.createStatement();
30
31 //4.执行sql语句(这里以插入和删除为例,其余同理,前提是要会写sql语句)
32 String SeleteSql="select * from people";
33 //这个executeUpdate方法专门用来执行sql的增删改查语句的,其中返回值为影响力数据库中的数据条数,也就是影响力几行
34 ResultSet resultSet = statement.executeQuery(SeleteSql);
35
36 //5.处理查询结果集
37 while(resultSet.next()){
38 //这个getString()方法是不管数据库中的值是什么类型的,他都会以String类型返回
39 //getString()是通过下标取值的,默认都是以字符串类型取出,可以通过相应类型的get方法取出特定类型的值
40 System.out.println(resultSet.getString(1));
41 System.out.println(resultSet.getString(2));
42 System.out.println(resultSet.getString(3));
43 System.out.println(resultSet.getString(4));
44 }
45
46 //6.释放资源,先释放statement再释放connection
47 if (statement != null) {
48 statement.close();
49 }
50 if (conn != null){
51 conn.close();
52 }
53 if(resultSet!=null){
54 resultSet.close();
55 }
56 }
57 }

最新文章

  1. 你一无所知的CSS
  2. WCF服务部署IIS
  3. OpenJudge计算概论-单词倒排【把句子内单词的顺序翻转】
  4. BestCoder Round #81 (div.2) B Matrix
  5. Spring4.0学习笔记(12) —— JDBCTemplate 操作数据库
  6. web压力测试-pylot
  7. PHP正则表达式试题
  8. Listener
  9. STATE(状态)模式
  10. asp.net core系列 33 EF查询数据 (2)
  11. 欢迎观临,这里藏着个秘密,神秘摩斯重着盛装依旧精彩,正如期待一个有趣的灵魂,轻启the key in my hands,也许是命中注定,我们的故事始于你生日的那天,每一句都动人心弦
  12. 源码编译安装mysql5.5.33
  13. 【Jmeter】分布式并发测试
  14. removeLineEndSpace
  15. 如何利用javascript获取表单中select下拉列表中所选中项的值value
  16. nodejs的gridfs基本操作
  17. 如何让EasyUI弹出层跳出框架
  18. [OpenCV笔记]0.OpenCV中显示多张图像
  19. Thread-Specific-Storage for C/C++
  20. python中好用的pip

热门文章

  1. 使用dom4j工具:读取xml标签(二)
  2. ObjectInputStream和ObjectOutputStream
  3. 及上一篇linux安装mysql的说明
  4. 使用spring向service里面注入dao不成功。
  5. [源码解析] 深度学习流水线并行之PopeDream(1)--- Profile阶段
  6. 关闭Redis服务
  7. vivo营销自动化技术解密|开篇
  8. 将rgb表示方式转换为hex表示方式-------------将hex表示方式转换为rgb表示方式(这里返回rgb数组组合)
  9. (1)java Spring Cloud+Spring boot+mybatis企业快速开发架构之微服务是什么?它的优缺点有哪些?
  10. SpringBoot自定义初始化Bean+HashMap优化策略模式实践