Java版DBHelper【简单】(MySQL数据库)
http://www.cnblogs.com/xia520pi/archive/2012/05/22/2513920.html
Java版DBHelper【简单】(MySQL数据库)
1、测试数据库
1.1 数据库数据
1.2 数据库结构
1.3 数据库脚本
DROP TABLE IF EXISTS `school`.`student`;
CREATE TABLE `school`.`student` (
`id` int(11) NOT NULL default '0',
`name` varchar(20) default NULL,
`sex` varchar(10) default NULL,
`age` int(10) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `student` VALUES ('201201', '张三', '男', '21');
INSERT INTO `student` VALUES ('201202', '李四', '男', '22');
INSERT INTO `student` VALUES ('201203', '王五', '女', '20');
INSERT INTO `student` VALUES ('201204', '赵六', '男', '21');
INSERT INTO `student` VALUES ('201205', '小红', '女', '19');
INSERT INTO `student` VALUES ('201206', '小明', '男', '22');
2、DBHelper用法
2.1 增加【Add】
【示例代码】
package com.hebut.util;
public class DBHelperApp {
/**
* 增加【Add】
*/
public static void main(String[] args) {
//第一种情况
String sql1="Insert Into student Values ('201208', '张三', '男', '21')";
System.out.println(DBHelper.executeNonQuery(sql1));
//第二种情况
String sql2="Insert Into student Values (?,?,?,?)";
Object[] obj = new Object[]{"201209","张三", "男", "21"};
System.out.println(DBHelper.executeNonQuery(sql2,obj));
}
}
【运行结果】
1)控制台
1
1
2)数据库
2.2 删除【Del】
【示例代码】
package com.hebut.util;
public class DBHelperApp {
/**
* 删除【Del】
*/
public static void main(String[] args) {
//第一种情况
String sql1="Delete From student Where id='201202'";
System.out.println(DBHelper.executeNonQuery(sql1));
//第二种情况
String sql2="Delete From student Where id=? And name=?";
Object[] obj = new Object[]{"201208","张三"};
System.out.println(DBHelper.executeNonQuery(sql2,obj));
}
}
【运行结果】
1)控制台
1
1
2)数据库
从图中可以看出id为"201202"和"201208"已经删除。
2.3 修改【Update】
【示例代码】
package com.hebut.util;
public class DBHelperApp {
/**
* 修改【Update】
*/
public static void main(String[] args) {
//第一种情况
String sql1="Update student Set age='27' Where id='201207'";
System.out.println(DBHelper.executeNonQuery(sql1));
//第二种情况
String sql2="Update student Set name=? Where id=?";
Object[] obj = new Object[]{"张二","201201"};
System.out.println(DBHelper.executeNonQuery(sql2,obj));
}
}
【运行结果】
1)控制台
1
1
2)数据库
备注:后面的操作都以上面数据为基准。
2.4 查询【Query】
【示例代码】
package com.hebut.util;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBHelperApp {
/**
* 查询【Query】
* @throws SQLException
*/
public static void main(String[] args) throws SQLException {
//第一种情况
String sql1="Select * From student";
//第一步:查询
ResultSet rs1 = DBHelper.executeQuery(sql1);
//第二步:输出
while(rs1.next()){
System.out.println("姓名:"+rs1.getString(2));
}
//第三步:关闭
DBHelper.free(rs1);
//第二种情况
String sql2="Select * From student Where name=?";
Object[] obj = new Object[]{"张三"};
//第一步:查询
ResultSet rs2 = DBHelper.executeQuery(sql2,obj);
//第二步:输出
while(rs2.next()){
System.out.println("学号:"+rs2.getString(1));
}
//第三步:关闭
DBHelper.free(rs2);
}
}
【运行结果】
姓名:张二
姓名:王五
姓名:赵六
姓名:小红
姓名:小明
姓名:张三
姓名:张三
学号:201207
学号:201209
2.5 获取查询行数
【示例代码】
package com.hebut.util;
public class DBHelperApp {
/**
* 获取查询行数
*/
public static void main(String[] args) {
//第一种情况
String sql1="Select * From student";
System.out.println(DBHelper.getCount(sql1));
//第二种情况
String sql2="Select * From student Where name=?";
Object[] obj = new Object[]{"张三"};
System.out.println(DBHelper.getCount(sql2,obj));
}
}
【运行结果】
7
2
2.6 判断记录存在
【示例代码】
package com.hebut.util;
public class DBHelperApp {
/**
* 判断记录存在
*/
public static void main(String[] args) {
//第一种情况
String sql1="Select * From student";
System.out.println(DBHelper.isExist(sql1));
//第二种情况
String sql2="Select * From student Where name=?";
Object[] obj = new Object[]{"张五"};
System.out.println(DBHelper.isExist(sql2,obj));
}
}
【运行结果】
true
false
3、DBHelper代码
package com.hebut.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public final class DBHelper {
// 此方法为获取数据库连接
public static Connection getConnection() {
Connection conn = null;
try {
String driver = "com.mysql.jdbc.Driver"; // 数据库驱动
String url = "jdbc:MySQL://127.0.0.1:3306/school";// 数据库
String user = "root"; // 用户名
String password = "hadoop"; // 密码
Class.forName(driver); // 加载数据库驱动
if (null == conn) {
conn = DriverManager.getConnection(url, user, password);
}
} catch (ClassNotFoundException e) {
System.out.println("Sorry,can't find the Driver!");
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
/**
* 增删改【Add、Del、Update】
*
* @param sql
* @return int
*/
public static int executeNonQuery(String sql) {
int result = 0;
Connection conn = null;
Statement stmt = null;
try {
conn = getConnection();
stmt = conn.createStatement();
result = stmt.executeUpdate(sql);
} catch (SQLException err) {
err.printStackTrace();
free(null, stmt, conn);
} finally {
free(null, stmt, conn);
}
return result;
}
/**
* 增删改【Add、Delete、Update】
*
* @param sql
* @param obj
* @return int
*/
public static int executeNonQuery(String sql, Object... obj) {
int result = 0;
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = getConnection();
pstmt = conn.prepareStatement(sql);
for (int i = 0; i < obj.length; i++) {
pstmt.setObject(i + 1, obj[i]);
}
result = pstmt.executeUpdate();
} catch (SQLException err) {
err.printStackTrace();
free(null, pstmt, conn);
} finally {
free(null, pstmt, conn);
}
return result;
}
/**
* 查【Query】
*
* @param sql
* @return ResultSet
*/
public static ResultSet executeQuery(String sql) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
conn = getConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
} catch (SQLException err) {
err.printStackTrace();
free(rs, stmt, conn);
}
return rs;
}
/**
* 查【Query】
*
* @param sql
* @param obj
* @return ResultSet
*/
public static ResultSet executeQuery(String sql, Object... obj) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = getConnection();
pstmt = conn.prepareStatement(sql);
for (int i = 0; i < obj.length; i++) {
pstmt.setObject(i + 1, obj[i]);
}
rs = pstmt.executeQuery();
} catch (SQLException err) {
err.printStackTrace();
free(rs, pstmt, conn);
}
return rs;
}
/**
* 判断记录是否存在
*
* @param sql
* @return Boolean
*/
public static Boolean isExist(String sql) {
ResultSet rs = null;
try {
rs = executeQuery(sql);
rs.last();
int count = rs.getRow();
if (count > 0) {
return true;
} else {
return false;
}
} catch (SQLException err) {
err.printStackTrace();
free(rs);
return false;
} finally {
free(rs);
}
}
/**
* 判断记录是否存在
*
* @param sql
* @return Boolean
*/
public static Boolean isExist(String sql, Object... obj) {
ResultSet rs = null;
try {
rs = executeQuery(sql, obj);
rs.last();
int count = rs.getRow();
if (count > 0) {
return true;
} else {
return false;
}
} catch (SQLException err) {
err.printStackTrace();
free(rs);
return false;
} finally {
free(rs);
}
}
/**
* 获取查询记录的总行数
*
* @param sql
* @return int
*/
public static int getCount(String sql) {
int result = 0;
ResultSet rs = null;
try {
rs = executeQuery(sql);
rs.last();
result = rs.getRow();
} catch (SQLException err) {
free(rs);
err.printStackTrace();
} finally {
free(rs);
}
return result;
}
/**
* 获取查询记录的总行数
*
* @param sql
* @param obj
* @return int
*/
public static int getCount(String sql, Object... obj) {
int result = 0;
ResultSet rs = null;
try {
rs = executeQuery(sql, obj);
rs.last();
result = rs.getRow();
} catch (SQLException err) {
err.printStackTrace();
} finally {
free(rs);
}
return result;
}
/**
* 释放【ResultSet】资源
*
* @param rs
*/
public static void free(ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
} catch (SQLException err) {
err.printStackTrace();
}
}
/**
* 释放【Statement】资源
*
* @param st
*/
public static void free(Statement st) {
try {
if (st != null) {
st.close();
}
} catch (SQLException err) {
err.printStackTrace();
}
}
/**
* 释放【Connection】资源
*
* @param conn
*/
public static void free(Connection conn) {
try {
if (conn != null) {
conn.close();
}
} catch (SQLException err) {
err.printStackTrace();
}
}
/**
* 释放所有数据资源
*
* @param rs
* @param st
* @param conn
*/
public static void free(ResultSet rs, Statement st, Connection conn) {
free(rs);
free(st);
free(conn);
}
}
转载于:https://www.cnblogs.com/ttjava/p/3631023.html
Java版DBHelper【简单】(MySQL数据库)相关推荐
- mye连接mysql数据库_MySQL_如何在Java程序中访问mysql数据库中的数据并进行简单的操作,在上篇文章给大家介绍了Myeclip - phpStudy...
如何在Java程序中访问mysql数据库中的数据并进行简单的操作 在上篇文章给大家介绍了Myeclipse连接mysql数据库的方法,通过本文给大家介绍如何在Java程序中访问mysql数据库中的数据 ...
- Java系列技术之MySql数据库-钟洪发-专题视频课程
Java系列技术之MySql数据库-66人已学习 课程介绍 在Java系列的技术体系中,数据库是必不可少的核心知识,任何稍稍复杂一点的应用系统,都不可能少的了数据库的支持,将MySQL ...
- 简单MySQL数据库SQL文件
简单MySQL数据库SQL文件 Book数据库表范例+记录 /* Navicat MySQL Data TransferSource Server : pig Source Server Versio ...
- Java使用Jdbc操作MySql数据库(一)
这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...
- jaba窗体连接mysql增删改查_知识实现——Java使用jdbc连接MySql数据库,实现增删改查...
Java使用jdbc连接MySql数据库,实现增删改查 首先,导入MySql连接数据库的jar包,我用的是 mysql连接jar包 DB类,用于获得数据库连接 import java.sql.Driv ...
- java连接到mysql_[操作系统]Java如何连接到MySQL数据库的
[操作系统]Java如何连接到MySQL数据库的 0 2016-05-01 15:00:15 下载:mysql-connector-java-5.1.38.tar.gz http://dev.mysq ...
- Java中怎样创建数据库_在java中怎样创建MySQL数据库列表给个例子 爱问知识人
java中怎样创建MySQL数据库列表 需要使用jdbc访问数据库. 具体步骤如下: 1:加载驱动 ,返回连接 private static final String DRIVER_CLASS = & ...
- linux下java连接mysql_LinuxJava连接MySQL数据库
Linux(Ubuntu平台) Java 通过JDBC连接MySQL数据库,与Windows平台类似,步骤如下: 解压 jdbc: tar -zxvf mysql-connector-java-5.1 ...
- java 调用命令 备份MYSQL数据库
java 调用命令 备份MYSQL数据库 关键字: java 调用命令 备份mysql数据库 Java代码 String command = "cmd /c C:/Program Files ...
最新文章
- poj3280Cheapest Palindrome(记忆化)
- 更新不了_一个作者在起点中文网写小说,半年更新38万字,还是没签约成功
- python代码壁纸-爬虫 抓取王者荣耀所有英雄皮肤高清壁纸+超强注释
- leetCode C++ 49. 字母异位词分组 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。
- 蓝牙L2CAP剖析(二)
- Go程序:演示数组切片用法
- Kafka 异步消息也会阻塞?记一次 Dubbo 频繁超时排查过程
- c语言编程 要有菜单工作界面,使用C语言图形界面进行编程
- 【截屏篇】系统PrtSc
- NoteBook / 期货及衍生品基础(5)
- keil编译错误:Error:Flash DownLoad failed - “Cortex-M4“
- Android 布局圆角方案总结
- 关于“Connection refused: connect”错误
- html计算圆周长,【实用性程序】弧微分计算圆周长
- 报错“FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disa”
- 从《亮剑》看先进的管理(原创)
- (1)计算机网络基础知识之网络的构成要素
- python:实现IIR 滤波器算法(附完整源码)
- python编写投票统计结果
- Oracle11gR2 并行执行存储过程