Java实现数据库操作
Java实现数据库操作
这里的样例是使用mysql数据库
代码实现
/* MySQLHelper.java */
import java.io.*;
import java.util.*;
import java.sql.*;
public class MySQLHelper {
private static final String databaseHostIp = "localhost";
private static final String databaseHostPort = "3306";
private static final String databaseName = "databaseName";
private static final String databaseUserName = "username";
private static final String databaseUserPassword = "password";
/*
* 描述:获取数据库连接对象,失败返回null
* 输入:空
* 输出:数据库连接对象Connection
*/
private static Connection getConnection() {
String connectString = "jdbc:mysql://" + databaseHostIp
+ ":" + databaseHostPort
+ "/" + databaseName
+ "?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8";
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(connectString, databaseUserName, databaseUserPassword);
return conn;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/*
* 描述:增删改操作
* 输入:sql语句
* 输出:成功 true | 失败 false
*/
public static boolean update(String sql) {
Connection conn = null;
try {
conn = getConnection();
Statement stat = conn.createStatement();
stat.executeUpdate(sql);
return true;
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return false;
}
/*
* 描述:查询操作
* 输入:sql语句
* 输出:查询结果数据集
*/
public static ResultSet query(String sql) {
ResultSet rs = null;
try {
Connection conn = getConnection();
Statement stat = conn.createStatement();
rs = stat.executeQuery(sql);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return rs;
}
}
调用样例代码
import java.io.*;
import java.util.*;
import MySQLHelper.*;
public class Test {
public static void main(String[] args) {
testUpdate();
testQuery();
}
public boolean testUpdate() {
String sql = "INSERT INTO USER_WEB values('Sicily', 'foolish')";
if (update(sql)) {
return true;
} else {
return false;
}
}
public boolean testQuery() {
String sql = "SELECT * FROM USER_WEB";
try {
ResultSet rs = query(sql);
while (rs.next()) {
String id = rs.getString("user_id");
String pwd = rs.getString("password");
System.out.println(String.format("user_id = '%s', password = '%s'", id, pwd));
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
}
Java实现数据库操作的更多相关文章
- java 的数据库操作--JDBC
一.java与数据库的交互 1.jdbc:java data base connectivity,java数据库连接.java的JDBC操作主要通过操作两个类进行连接操作:Connection 和 S ...
- java jdbc数据库操作
package shb.java.demo3; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQ ...
- java:数据库操作JDBC
JDBC详解:https://www.cnblogs.com/erbing/p/5805727.html JDBC存储过程,事务管理,数据库连接池,jdbc的封装框架:https://www.cnbl ...
- java工具类--数据库操作封装类
java对数据库操作简单处理,如下代码即可,封装了 增删改查及获取连接.关闭连接. 代码如下: package com.test; import java.sql.Connection; import ...
- 安卓 SQLite数据库操作实例
前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...
- 在安卓开发中使用SQLite数据库操作实例
前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...
- 如何在高并发环境下设计出无锁的数据库操作(Java版本)
一个在线2k的游戏,每秒钟并发都吓死人.传统的hibernate直接插库基本上是不可行的.我就一步步推导出一个无锁的数据库操作. 1. 并发中如何无锁. 一个很简单的思路,把并发转化成为单线程.Jav ...
- mySql事务_ _Java中怎样实现批量删除操作(Java对数据库进行事务处理)?
本文是记录Java中实现批量删除操作(Java对数据库进行事务处理),在开始之前先来看下面这样的一个页面图: 上面这张图片显示的是从数据库中查询出的出租信息,信息中进行了分页处理,然后每行的前面提 ...
- Java数据库操作
一.JDBC 1.JDBC Java数据库连接,用于Java程序中实现数据库操作功能,java.sql包中提供了执行SQL语句,访问各种数据库的方法,并为各种不同的数据库提供统一的操作接口及类. 2. ...
随机推荐
- 撩课-Web大前端每天5道面试题-Day22
1.mvvm和mvc区别?它和其它框架(jquery)的区别是什么?哪些场景适合? mvc和mvvm其实区别并不大. 都是一种设计思想. 主要就是mvc中Controller演变成mvvm中的view ...
- 《Programming iOS 7》读书笔记 - 窗体大小与状态栏
1.从iOS7开始,状态栏开始变为透明的,根识图占领了整个窗体,包括状态栏后面的20像素高的区域,这种样式无法被改变.iOS6的状态栏是不透明的,窗体的尺寸通常会比屏幕的尺寸要小,可以设置窗体的尺寸为 ...
- 【Java】字符拼接成字符串的注意点
这两天敲代码的时候,偶然间发现一个好玩的事情,分享一下,记录一下. 该段代码主要是:先产生的几个整数,把整数转换成对应的字符,最后的字符拼接成字符串,在把字符拼接成字符串的时候,个人因为偷懒使用+号进 ...
- 后台管理UI+功能
kingRoad功能强大,丰富各种功能和插件,自定义开发功能组件及样式,使用webpack方式集成和纯html两种,UI(自定义开发和AdminLTE的集成优化),弹窗功能使用(Layer弹窗,并与框 ...
- python中作用域
Python 中,一个变量的作用域总是由在代码中被赋值的地方所决定的. 函数定义了本地作用域,而模块定义的是全局作用域.如果想要在函数内定义全局作用域,需要加上global修饰符. 变量名解析:LEG ...
- css的定位笔记
relative:相对定位. 1. 不论其父元素和相邻元素的position是什么,均相对于自身原来的位置来偏移. 2. 不会脱离文档流,其原来的位置依然保留着,不会被文档中其他的元素占用. 3. 原 ...
- css边框颜色渐变
在实际开发中,我们经常遇见边框需要背景渐变的实现要求,那么如何去实现呢,今天给大家分享依稀几种情况 1.直角的背景渐变 <!DOCTYPE html> <html lang=&quo ...
- opencv3.2.0形态学滤波之膨胀
//名称:膨胀 //日期:12月21日 //平台:QT5.7.1+opencv3.2.0 /* 膨胀(dilate)的含义: 膨胀就是求局部最大值的操作,就是将图像(或图像的一部分,A)与核 B 进行 ...
- VIM 乱码终极解决
原文链接:http://blog.163.com/mageng11@126/blog/static/1408083742012128105645169/ 关于vim乱码,这篇文章讲的很详细,mark一 ...
- zabbix系列之五——安装后配置一
https://www.zabbix.com/documentation/3.4/manual/appliance Configuration 1Hosts and host groups Overv ...