JDBC数据库编程

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 常识名词:ODBC ,JDBC,JDBC API ,JDBC Driver API 数据准备,续上节: JDBC编程流程最基本的JDBC操作本段内容主要完成JDBC的增删查改操作package com.
常识名词:ODBC ,JDBC,JDBC API ,JDBC Driver API 

数据准备,续上节:
img_8a3a488fcff3f244c4c7a3e9257b7398.png
 
JDBC编程 流程

img_a48eafe0e47fd8ff189e2245f6dbc6f2.jpe

最基本的JDBC操作

本段内容主要完成JDBC的增删查改操作
package com.dante.study;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;


public class JDBCtest {

public static Connection getConnection() {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
//Class类
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_db","root","root1234");//获取mysql的数据库连接
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return conn;
}
public static void insert(){
Connection conn = getConnection();
try{
String sql = "insert into tbl_user(user_name,user_age,signup_date,email)"+
"values('TOM','25','2016-11-08','tom@gmail.com')";
Statement st = conn.createStatement();
int count = st.executeUpdate(sql);
//可以执行DML语句(数据操作语句:select,insert,update,delete)返回影响的记录条数
//执行DDL语句(数据定义语句:CREATE,ALTER,DROP),返回零
//能抛出sqlException和sqlTimeoutException异常
System.out.println("向用户表中插入了 "+count+"条记录");
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
public static void update() {
Connection conn = getConnection();
try{
String sql = "update tbl_user set user_name = 'Tom' where user_name='TOm'";
Statement st = conn.createStatement();
int count = st.executeUpdate(sql);
//可以执行DML语句(数据操作语句:select,insert,update,delete)返回影响的记录条数
//执行DDL语句(数据定义语句:CREATE,ALTER,DROP),返回零
//能抛出sqlException和sqlTimeoutException异常
System.out.println("向用户表中更新了 "+count+"条记录");
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
public static void delete(){
Connection conn = getConnection();
try{
String sql = "Delete from tbl_user where ID=3";
Statement st = conn.createStatement();
int count = st.executeUpdate(sql);
//可以执行DML语句(数据操作语句:select,insert,update,delete)返回影响的记录条数
//执行DDL语句(数据定义语句:CREATE,ALTER,DROP),返回零
//能抛出sqlException和sqlTimeoutException异常
System.out.println("在用户表中删除了 "+count+"条记录");
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {
/*
* // TODO Auto-generated method stub
* String sql = "select * from tbl_user";
* Connection conn = null; //当前数据库连接
Statement st = null; //向数据库发送的sql语句
ResultSet rs = null; //结果集,封装了从数据库中查询到的数据
try {
Class.forName("com.mysql.jdbc.Driver"); //注册Mysql的JDBC驱动程序
//Class类继承自Object类,这个类封装被装载的JVM中的类的信息 ,比如类的成员方法,成员变量以及类实现的接口,父类等。
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_db","root","root1234");//获取mysql的数据库连接
st = conn.createStatement();
rs = st.executeQuery(sql);
//遍历对象
while(rs.next()){
System.out.print(rs.getInt("ID")+"\t");
System.out.print(rs.getString("user_name")+"\t");
System.out.print(rs.getString("user_age")+"\t");
System.out.print(rs.getString("email")+"\t");
System.out.println();
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
finally {
try {
rs.close();
} catch(Exception e2){
// TODO: handle finally clause
}
try {
st.close();
} catch (Exception e3) {
// TODO: handle exception
}
try {
conn.close();
} catch (Exception e2) {
// TODO: handle exception
}
} */
//insert();
// update();
delete();
}
}

与事务相关的语句

开始事务:BEGIN TRANSACTION
提交事务:COMMIT TRANSACTION
回滚事务:ROLLBACK TRANSACTION
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
关于事务的几个特性在前面的数据库常识中已经讲过,不再赘述。
例子中分别进行了两次插入操作,人为的在第二次插入操作中加入了异常,通过事务回滚来实现数据库的一致性和事务的原子性,并且抛出异常。
img_b7da402f5ac0a6050bcc6d0b4feeac88.png
img_8eaa883814aa59f9532f08cf089e0dd4.png
 从输出结果我们可以看到事务是怎样进行的:
img_31d6126a822bc3dac27de2d39fcadfac.png
 

 




相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
Java 数据库连接 网络安全
JDBC数据库编程(java实训报告)
这篇文章是关于JDBC数据库编程的实训报告,涵盖了实验要求、实验环境、实验内容和总结。文中详细介绍了如何使用Java JDBC技术连接数据库,并进行增删改查等基本操作。实验内容包括建立数据库连接、查询、添加、删除和修改数据,每个部分都提供了相应的Java代码示例和操作测试结果截图。作者在总结中分享了在实验过程中遇到的问题和解决方案,以及对Java与数据库连接操作的掌握情况。
JDBC数据库编程(java实训报告)
|
2月前
|
SQL Java 数据库连接
Java开发者必知:JDBC连接数据库的“三大法宝”
Java开发者必知:JDBC连接数据库的“三大法宝”
20 7
|
12天前
|
存储 数据库 Python
python的对象数据库ZODB的使用(python3经典编程案例)
该文章介绍了如何使用Python的对象数据库ZODB来进行数据存储,包括ZODB的基本操作如创建数据库、存储和检索对象等,并提供了示例代码。
17 0
|
12天前
|
JSON NoSQL 数据库
和SQLite数据库对应的NoSQL数据库:TinyDB的详细使用(python3经典编程案例)
该文章详细介绍了TinyDB这一轻量级NoSQL数据库的使用方法,包括如何在Python3环境中安装、创建数据库、插入数据、查询、更新以及删除记录等操作,并提供了多个编程案例。
26 0
|
2月前
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
50 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
|
2月前
|
SQL Java 关系型数据库
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
69 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
|
2月前
|
SQL Java 数据库连接
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。通过映射机制,它可以自动处理对象与数据库表之间的转换,支持主流数据库,提高了代码的可移植性和可维护性。其核心接口包括 SessionFactory、Session 和 Transaction 等,通过它们可以执行数据库的 CRUD 操作。配置方面,需在项目中引入 Hibernate 及数据库驱动依赖,并创建 `hibernate.cfg.xml` 配置文件来设置数据库连接和 Hibernate 行为参数。
38 1
|
2月前
|
SQL 存储 Java
完整java开发中JDBC连接数据库代码和步骤
该博客文章详细介绍了使用JDBC连接数据库的完整步骤,包括加载JDBC驱动、提供连接URL、创建数据库连接、执行SQL语句、处理结果以及关闭JDBC对象的过程,并提供了相应的示例代码。
|
2月前
|
SQL 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
32 6
|
2月前
|
存储 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
33 4
下一篇
无影云桌面