Java连接MySQL数据库,并进行增删改查
1、具体的代码实现
import java.sql.*;
public class DatabaseService {
/**
* Create Connection
*
* @param dbtype
* @param username
* @param password
* @param url
* @return
* @throws Exception
*/
public static Connection connectDBDriver(String dbtype, String username,
String password, String url) throws Exception {
Connection conn = null;
try {
if (dbtype.equals("mysql")) {
Class.forName("com.mysql.jdbc.Driver").newInstance();
} else if (dbtype.equals("oracle")) {
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
} else {
}
conn = DriverManager.getConnection(url, username, password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
/**
* close DB
*
* @param conn
* @throws Exception
*/
public void closeDBDriver(Connection conn) throws Exception {
try {
conn.close();
} catch (Exception e) { /* ignore close errors */
e.printStackTrace();
}
}
/**
* get ResultSet
*
* @param conn
* @param sql
* @return
* @throws Exception
*/
private static ResultSet getResultSet(Connection conn, String sql)
throws Exception {
ResultSet resultSet = null;
try {
// PreparedStatement pstmt;
// ResultSet rset;
//任意的前后滚动;设置为只读类型的参数
Statement statement = conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
// pstmt = conn.prepareStatement(sql);
resultSet = statement.executeQuery(sql);
} catch (Exception e) {
e.printStackTrace();
}
return resultSet;
}
/**
* get ColumnCount
*
* @param resultSet
* @return
* @throws Exception
*/
private static int getColumnCount(ResultSet resultSet) throws Exception {
int columnCount = 0;
try {
// ResultSet resultSet = this.getResultSet(conn, sql);
//getMetaData() 获取此 ResultSet 对象的列的编号、类型和属性
//getColumnCount() 返回此 ResultSet 对象中的列数。
columnCount = resultSet.getMetaData().getColumnCount();
if (columnCount == 0) {
}
} catch (Exception e) {
e.printStackTrace();
}
return columnCount;
}
/**
* get ColumnCount
*
* @param conn
* @param sql
* @return
* @throws Exception
*/
public static int getColumnCount(Connection conn, String sql) throws Exception {
int columnCount = 0;
try {
// ResultSet resultSet = this.getResultSet(conn, sql);
columnCount = getResultSet(conn, sql).getMetaData()
.getColumnCount();
if (columnCount == 0) {
}
} catch (Exception e) {
e.printStackTrace();
}
return columnCount;
}
/**
* get RowCount
*
* @param conn
* @param sql
* @return
* @throws Exception
*/
public int getRowCount(Connection conn, String sql) throws Exception {
int rowCount = 0;
try {
ResultSet resultSet = getResultSet(conn, sql);
// boolean last() 将光标移动到此 ResultSet 对象的最后一行。
resultSet.last();
// boolean last() 将光标移动到此 ResultSet 对象的最后一行。
rowCount = resultSet.getRow();
if (rowCount == 0) {
}
} catch (Exception e) {
e.printStackTrace();
}
return rowCount;
}
/**
* get RowCount
*
* @param resultSet
* @return
* @throws Exception
*/
private static int getRowCount(ResultSet resultSet) throws Exception {
int rowCount = 0;
try {
resultSet.last();
rowCount = resultSet.getRow();
if (rowCount == 0) {
}
} catch (Exception e) {
e.printStackTrace();
}
return rowCount;
}
/**
* get data by row index and col index
*
* @param conn
* @param sql
* @param row
* @param col
* @return
* @throws Exception
*/
public static String getData(Connection conn, String sql, int row, int col)
throws Exception {
String data = null;
int rownum = 0;
int rowcount = 0;
int colcount = 0;
try {
ResultSet resultSet = getResultSet(conn, sql);
colcount = getColumnCount(resultSet);
rowcount = getRowCount(resultSet);
//beforeFirst() 将光标移动到此 ResultSet 对象的开头,正好位于第一行之前。
resultSet.beforeFirst();
if (rowcount > 0) {
if (row <= 0 || row > rowcount) {
} else {
if (col <= 0 || col > colcount) {
} else {
while (resultSet.next()) {
rownum++;
if (rownum == row) {
data = resultSet.getString(col);
break;
}
}
}
}
} else {
}
} catch (Exception e) {
e.printStackTrace();
}
return data;
}
/**
* get data by row index and col index
*
* @param conn
* @param sql
* @param row
* @param field
* @return
* @throws Exception
*/
public static String getData(Connection conn, String sql, int row, String field)
throws Exception {
String data = null;
int rownum = 0;
int rowcount = 0;
// int colcount = 0;
try {
ResultSet resultSet = getResultSet(conn, sql);
// colcount = getColumnCount(resultSet);
rowcount = getRowCount(resultSet);
resultSet.beforeFirst();
if (rowcount > 0) {
if (row <= 0 || row > rowcount) {
} else {
while (resultSet.next()) {
rownum++;
if (rownum == row) {
data = resultSet.getString(field);
break;
}
}
}
} else {
}
} catch (Exception e) {
e.printStackTrace();
}
return data;
}
// executeUpdate方法可以执行新增、更新、删除三种sql语句
public static int executeUpdate(Connection conn, String sql) {
Statement stmt = null;
try {
stmt = conn.createStatement();
stmt.executeUpdate(sql);
int updateCount = stmt.getUpdateCount();
return updateCount;
} catch (Exception e) {
e.printStackTrace();
} finally {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return 0;
}
}
2、调用函数实现增删改查
public class JdbcData {
public static void main(String[] args) {
Connection connection = databaseService.connectDBDriver("mysql","username","password","URL");
String sql = "XXXX'";
//查询数据,获取到数据
String data = DatabaseService.getData(connection, sql,1,1);
String sqlstatus = "XXXX";
//update数据
DatabaseService.executeUpdate(connection,sqlstatus);
}
}
Java连接MySQL数据库,并进行增删改查的更多相关文章
- java连接mysql数据库 三 实现增删改查操作
同以前一样,先写一个数据库打开和关闭操作类 public class DBConnection { String driver = "com.mysql.jdbc.Driver"; ...
- 【Python + Mysql】之用pymysql库连接Mysql数据库并进行增删改查操作
用pip下载pymysql并引用 具体请参考文章: <Python之MySQL数据库增删改查操作> <python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删 ...
- Python进阶----数据库的基础,关系型数据库与非关系型数据库(No SQL:not only sql),mysql数据库语言基础(增删改查,权限设定)
day37 一丶Python进阶----数据库的基础,mysql数据库语言基础(增删改查,权限设定) 什么是数据库: 简称:DataBase ---->DB 数据库即存放数据的仓库, ...
- Vc数据库编程基础MySql数据库的表增删改查数据
Vc数据库编程基础MySql数据库的表增删改查数据 一丶表操作命令 1.查看表中所有数据 select * from 表名 2.为表中所有的字段添加数据 insert into 表名( 字段1,字段2 ...
- Java连接Redis之redis的增删改查
一.新建一个maven工程,工程可以以jar的形式或war都行,然后导入正确的依赖 <project xmlns="http://maven.apache.org/POM/4.0.0& ...
- mysql数据库单表增删改查命令
数据库DB-database-mysql 课程安排 第一天: 1.数据库定义以及设计 2.mysql服务端的安装 3.mysql-dos操作 库的操作 表的操作 4.mysql客户端navicate工 ...
- 48.Python中ORM模型实现mysql数据库基本的增删改查操作
首先需要配置settings.py文件中的DATABASES与数据库的连接信息, DATABASES = { 'default': { 'ENGINE': 'django.db.backends.my ...
- Java连接MySQL数据库及简单的增删查改操作
主要摘自 https://www.cnblogs.com/town123/p/8336244.html https://www.runoob.com/java/java-mysql-connect.h ...
- .net 连接SqlServer数据库及基本增删改查
一.写在前面 因为这学期选修的 .net 课程就要上机考试了,所以总结下.net 操作 SqlServer 数据的方法.(因为本人方向是 Java,所以对.net 的了解不多,但以下所写代码均是经过测 ...
- MySQL数据库(安装+增删改查)
一. 安装 下载地址 : https://dev.mysql.com/downloads/mysql/ 1. 安装步骤 (1) 选择5.7版本 (2) 针对操作系统的不同下载不同的版本 (3) 解压 ...
随机推荐
- malloc和new的区别 end
3. c++中new的几种用法 c++中,new的用法很灵活,这里进行了简单的总结: 1. new() 分配这种类型的一个大小的内存空间,并以括号中的值来初始化这个变量; 2. new[] 分配这种类 ...
- vs附加到进程报MSVSMON.EXE未在远程计算机启动错误
拿到同事电脑发现居然附加不上本地进程,网上那些关防火墙更改目标平台之类的方法都没用.最后发现是后台运行着一个叫 ss_privoxy.exe 的代理软件搞的,禁用所有非系统服务重启后删掉以绝后患.
- Bean装配之@Autowired注解
@Required(不常用) @Autowired(常用) 下面用例子解释以上内容: @Autowired注解的三种方式如下,第一种是直接在属性名上加注解,这样就可以不用在写set方法进行注入,这种方 ...
- springmvc对于前台date类型注意点
springmvc,可以自动将数据注入到: “name”值相同,便注入,比如String Integer 还有我们自定义的bean,比如User. 但是date类型的数据,如果前台传的是用" ...
- 常用的find命令
find命令 find [路径名] –name/-size/-perm find [路径名] –name “*p” 在路径搜索p结尾的文件夹及文件 find [路径名] –name “[ab]*” 在 ...
- AC日记——Magazine Ad codeforces 803d
803D - Magazine Ad 思路: 二分答案+贪心: 代码: #include <cstdio> #include <cstring> #include <io ...
- Jest+Enzyme React js/typescript测试环境配置案例
本文案例github:https://github.com/axel10/react-jest-typescript-demo 配置jest的react测试环境时我们可以参考官方的配置教程: http ...
- 树上两点的最近公共祖先问题(Least Common Ancestors)
概念: 对于有根树T的两个节点u,v,最近公共祖先LCA(T, u, v)表示一个节点 x, 满足 x 是 u , v 的祖先且 x 的深度尽可能的大.即从 u 到 v 的路径一定经过点 x. 算法: ...
- 中文名: 交通事故责任认定, 英文名称: Traffic accident responsibility identification
中文名: 交通事故责任认定, 英文名称: Traffic accident responsibility identification
- 【BZOJ 2333 】[SCOI2011]棘手的操作(离线+线段树|可并堆-左偏树)
2333: [SCOI2011]棘手的操作 Description 有N个节点,标号从1到N,这N个节点一开始相互不连通.第i个节点的初始权值为a[i],接下来有如下一些操作: U x y: 加一条边 ...