1.JDBC编程六步走以及实现案例
2024-09-07 04:23:26
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 }
最新文章
- 你一无所知的CSS
- WCF服务部署IIS
- OpenJudge计算概论-单词倒排【把句子内单词的顺序翻转】
- BestCoder Round #81 (div.2) B Matrix
- Spring4.0学习笔记(12) —— JDBCTemplate 操作数据库
- web压力测试-pylot
- PHP正则表达式试题
- Listener
- STATE(状态)模式
- asp.net core系列 33 EF查询数据 (2)
- 欢迎观临,这里藏着个秘密,神秘摩斯重着盛装依旧精彩,正如期待一个有趣的灵魂,轻启the key in my hands,也许是命中注定,我们的故事始于你生日的那天,每一句都动人心弦
- 源码编译安装mysql5.5.33
- 【Jmeter】分布式并发测试
- removeLineEndSpace
- 如何利用javascript获取表单中select下拉列表中所选中项的值value
- nodejs的gridfs基本操作
- 如何让EasyUI弹出层跳出框架
- [OpenCV笔记]0.OpenCV中显示多张图像
- Thread-Specific-Storage for C/C++
- python中好用的pip
热门文章
- 使用dom4j工具:读取xml标签(二)
- ObjectInputStream和ObjectOutputStream
- 及上一篇linux安装mysql的说明
- 使用spring向service里面注入dao不成功。
- [源码解析] 深度学习流水线并行之PopeDream(1)--- Profile阶段
- 关闭Redis服务
- vivo营销自动化技术解密|开篇
- 将rgb表示方式转换为hex表示方式-------------将hex表示方式转换为rgb表示方式(这里返回rgb数组组合)
- (1)java Spring Cloud+Spring boot+mybatis企业快速开发架构之微服务是什么?它的优缺点有哪些?
- SpringBoot自定义初始化Bean+HashMap优化策略模式实践