Java学习笔记——JDBC之与数据库MySQL的连接以及增删改查等操作
必须的准备工作
连接的理论知识
Connection类
负责建立与指定URL(包含数据库IP地址、库名、用户名和密码的信息)的连接;
Connection conn = DriverManager.getConnection(url,user,password);
利用驱动管理器类获取指定URL连接
String url = "jdbc:mysql://localhost:3306/test"; //连接URL为 jdbc:mysql//服务器地址/数据库名
Statement类
语句对象,用来向数据库发送一条SQL语句
rs = stmt.executeQuery(sql) //返回记录集对象,用于查询
int count = stmt.executeUpdate(sql) //执行一条增删改语句,返回int
stmt.execute(sql) //增删改都可以,返回布尔值(执行成功or失败)
ResultSet类
记录集对象,存储executeQuery()方法返回的记录集合。用相关的rs.getString("列名") rs.getInt("列名")等方法获取指定列的值。
连接测试
package com.sql; import java.sql.*; public class JDBC0726_Base {
Connection connection;
Statement statement;
ResultSet rSet;
//返回一个与特定数据库的连接
public Connection getConnection() {
try {
//连接URL为 jdbc:mysql//服务器地址/数据库名 ,后面的2个参数分别是登陆用户名和密码
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "yongqiang");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return connection;
}
public static void main(String[] args) {
JDBC0726_Base jDao = new JDBC0726_Base();
System.out.println(jDao.getConnection());
}
}
如果输出相应的对象地址,而不是异常,则证明连接成功。
用 Java 对SQL进行相关操作
非查询类SQL语句
//非查询类
public int Update(String sql) {
getConnection();
int count =0;
try {
statement = connection.createStatement();
count = statement.executeUpdate(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
try {
if (statement != null) {
statement.close();
statement = null;
}
if (connection != null) {
connection.close();
connection = null;
}
} catch (SQLException e2) {
// TODO: handle exception
}
}
return count;
}
应用:
System.out.println(jDao.Update("INSERT INTO t_user(username,password,sex) values('hehe','131','n');"));
输出值为 1 则证明添加成功。
查询类 SQL 并返回多条记录
//执行一条查询类SQL,返回多条记录集
public void Qurty(String sql) {
getConnection();
try {
statement = connection.createStatement();
rSet = statement.executeQuery(sql);
System.out.println("id\t" + "realName\t"+"school\t");
while (rSet.next()) {
System.out.println(rSet.getRow()+ "----" + rSet.getString("id") + "\t" + rSet.getString("realName") + "\t" + rSet.getString("school") + "\t");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
try {
if (statement != null) {
statement.close();
statement = null;
}
if (rSet != null) {
rSet.close();
rSet = null;
}
} catch (SQLException e2) {
// TODO: handle exception
}
}
}
应用举例:
jDao.Qurty("SELECT * FROM t_user WHERE sex='女';");
System.out.println("-----------------------------");
jDao.Qurty("SELECT * FROM t_user;");
System.out.println("-----------------------------");
查询类 SQL 并返回一条记录
//执行一条查询类SQL,返回单条记录集
public void QurtyByUnique(String sql) {
getConnection();
try {
statement = connection.createStatement();
rSet = statement.executeQuery(sql);
System.out.println("id\t" + "realName\t"+"school\t");
if (rSet.next()) {
System.out.println(rSet.getInt("id") + "\t" + rSet.getString("realName") + "\t" + rSet.getString("school") + "\t");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
try {
if (statement != null) {
statement.close();
statement = null;
}
if (rSet != null) {
rSet.close();
rSet = null;
}
} catch (SQLException e2) {
// TODO: handle exception
}
}
}
应用举例:
jDao.QurtyByUnique("SELECT * FROM t_user WHERE sex='女';");
System.out.println("-----------------------------");
jDao.QurtyByUnique("SELECT * FROM t_user;");
System.out.println("-----------------------------");
输出表单所有数据
public void QurtyTest(String sql) {
getConnection();
try {
statement = connection.createStatement();
rSet = statement.executeQuery(sql);
while (rSet.next()) {
System.out.print(rSet.getRow()+ "----" );
for (int i = 1; i < 14; i++) {
System.out.print(rSet.getString(i) +"\t");
}
System.out.println();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
try {
if (statement != null) {
statement.close();
statement = null;
}
if (rSet != null) {
rSet.close();
rSet = null;
}
} catch (SQLException e2) {
// TODO: handle exception
}
}
}
应用举例
jDao.QurtyTest("SELECT * FROM t_user;");
Java学习笔记——JDBC之与数据库MySQL的连接以及增删改查等操作的更多相关文章
- Java学习笔记——JDBC读取properties属性文件
Java 中的 properties 文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件. 文件的内容是格式是"键=值"(key-valu ...
- MySQL数据库安装,MySQL数据库库的增删改查,表的增删改查,表数据的基本数据类型
一 MySQL的安装 MySQL现在属于甲骨文公司,所以和java语言匹配度较高,同时甲骨文公司的另一种数据库为Oracle,两者同为关系型数据库,即采用关系模型来组织数据,以行和列的方法来存储数据的 ...
- python操作三大主流数据库(2)python操作mysql②python对mysql进行简单的增删改查
python操作mysql②python对mysql进行简单的增删改查 1.设计mysql的数据库和表 id:新闻的唯一标示 title:新闻的标题 content:新闻的内容 created_at: ...
- Django框架之第二篇--app注册、静态文件配置、form表单提交、pycharm连接数据库、django使用mysql数据库、表字段的增删改查、表数据的增删改查
本节知识点大致为:静态文件配置.form表单提交数据后端如何获取.request方法.pycharm连接数据库,django使用mysql数据库.表字段的增删改查.表数据的增删改查 一.创建app,创 ...
- 使用 NodeJS+Express+MySQL 实现简单的增删改查
关于node.js暂时记录如下,以后有时间一定学习 文章来自简书,作者:sprint,2016-07 使用 Node.js + Express+MySQL 实现简单的增删改查 https://www. ...
- 用CI框架向数据库中实现简单的增删改查
以下代码基于CodeIgniter_2.1.3版 用PHP向数据库中实现简单的增删改查(纯代码)请戳 http://www.cnblogs.com/corvoh/p/4641476.html Code ...
- mysql 的基本操作总结--增删改查
本文只是总结一下mysql 的基本操作,增删改查,以便忘记的时候可以查询一下 1.创建数据库 语法:CREATE DATABASES 数据库名; 例子: CREATE DATABASES studen ...
- mysql增删改查相关操作
mysql增删改查相关操作 以前用mysql用的少,对于数据库相关的操作不熟悉,现在开始要接触数据库了,记录一下相关的基础操作吧. 1.数据库的授权操作 # mysql -u root -p Ente ...
- [Django框架 - 静态文件配置、request对象方法初识、 pycharm链接数据库、ORM实操增删改查、django请求生命周期]
[Django框架 - 静态文件配置.request对象方法初识. pycharm链接数据库.ORM实操增删改查.django请求生命周期] 我们将html文件默认都放在templates文件夹下 将 ...
随机推荐
- html中编写js的方式
第一种:引用外部的js文件 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http ...
- ExifInterface 多媒体文件附加信息
简介 ExifInterface类主要描述多媒体文件比如JPG格式图片的一些附加信息,包括拍摄时的光圈.快门.白平衡.ISO.焦距.日期时间等各种和拍摄条件以及相机品牌.型号.色彩编码 ...
- 带搜索功能,支持绑定对象到节点的TreeView辅助类
特点: 1.支持数叶子节点与对象绑定 2.支持xml导入,且数据类相关的xml可自定义,只和泛型的实现有关 3.支持节点搜索功能,可在树结构上要求只显示部分节点 4.用C#编写,但与平台关联性低,可移 ...
- Linux操作系统分析__破解操作系统的奥秘
学号:SA12226343 姓名:sunhongbo 一.操作系统工作的基础 存储程序计算机和堆栈(函数调用堆栈)机制以及中断机制是操作系统工作的基础. 现代计算机仍采用存储程序计算机的结构体系和工 ...
- MiniUI学习笔记1
1.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or ...
- android开发架构理解
1. android 开发和普通的PC程序开发的,我觉得还是不要过度设计,因为手机开发,项目相对传统软件开发就小很多,而且手机的性能有限,过度设计代码mapping需要消耗的能相对就高,而且手机开发的 ...
- C#学习笔记之结构体
1.概述 结构是一种与类相似的数据类型,不过它较类更为轻量,一般适用于表示类似Point.Rectangle.Color的对象.基本上结构能办到的类全都能办到,但在某些情况下使用结构更为合适,后面会有 ...
- C#中对Excel进行操作
工作中要处理一批数据,主要是处理从别处导出来的Excel表格(大概有一千多行,三十多列),拿到表格对Excel表格进行分析,按照一定的规则进行拆分成为一万多行的数据:首先这个需求要用程序进行处理的背景 ...
- Python新手学习基础之函数-概念与定义
什么是函数? 函数是可以实现一些特定功能的方法或是程序,简单的理解下函数的概念,就是你编写了一些语句,为了方便使用,把这些语句组合在一起,给它起一个名字,即函数名.使用的时候只要调用这个名字,就可以实 ...
- RBAC(Role-Based Access Control)基于角色的访问控制
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成"用 ...