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数据库)相关推荐

  1. mye连接mysql数据库_MySQL_如何在Java程序中访问mysql数据库中的数据并进行简单的操作,在上篇文章给大家介绍了Myeclip - phpStudy...

    如何在Java程序中访问mysql数据库中的数据并进行简单的操作 在上篇文章给大家介绍了Myeclipse连接mysql数据库的方法,通过本文给大家介绍如何在Java程序中访问mysql数据库中的数据 ...

  2. Java系列技术之MySql数据库-钟洪发-专题视频课程

    Java系列技术之MySql数据库-66人已学习 课程介绍         在Java系列的技术体系中,数据库是必不可少的核心知识,任何稍稍复杂一点的应用系统,都不可能少的了数据库的支持,将MySQL ...

  3. 简单MySQL数据库SQL文件

    简单MySQL数据库SQL文件 Book数据库表范例+记录 /* Navicat MySQL Data TransferSource Server : pig Source Server Versio ...

  4. Java使用Jdbc操作MySql数据库(一)

    这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...

  5. jaba窗体连接mysql增删改查_知识实现——Java使用jdbc连接MySql数据库,实现增删改查...

    Java使用jdbc连接MySql数据库,实现增删改查 首先,导入MySql连接数据库的jar包,我用的是 mysql连接jar包 DB类,用于获得数据库连接 import java.sql.Driv ...

  6. java连接到mysql_[操作系统]Java如何连接到MySQL数据库的

    [操作系统]Java如何连接到MySQL数据库的 0 2016-05-01 15:00:15 下载:mysql-connector-java-5.1.38.tar.gz http://dev.mysq ...

  7. Java中怎样创建数据库_在java中怎样创建MySQL数据库列表给个例子 爱问知识人

    java中怎样创建MySQL数据库列表 需要使用jdbc访问数据库. 具体步骤如下: 1:加载驱动 ,返回连接 private static final String DRIVER_CLASS = & ...

  8. linux下java连接mysql_LinuxJava连接MySQL数据库

    Linux(Ubuntu平台) Java 通过JDBC连接MySQL数据库,与Windows平台类似,步骤如下: 解压 jdbc: tar -zxvf mysql-connector-java-5.1 ...

  9. java 调用命令 备份MYSQL数据库

    java 调用命令 备份MYSQL数据库 关键字: java 调用命令 备份mysql数据库 Java代码 String command = "cmd /c C:/Program Files ...

最新文章

  1. poj3280Cheapest Palindrome(记忆化)
  2. 更新不了_一个作者在起点中文网写小说,半年更新38万字,还是没签约成功
  3. python代码壁纸-爬虫 抓取王者荣耀所有英雄皮肤高清壁纸+超强注释
  4. leetCode C++ 49. 字母异位词分组 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。
  5. 蓝牙L2CAP剖析(二)
  6. Go程序:演示数组切片用法
  7. Kafka 异步消息也会阻塞?记一次 Dubbo 频繁超时排查过程
  8. c语言编程 要有菜单工作界面,使用C语言图形界面进行编程
  9. 【截屏篇】系统PrtSc
  10. NoteBook / 期货及衍生品基础(5)
  11. keil编译错误:Error:Flash DownLoad failed - “Cortex-M4“
  12. Android 布局圆角方案总结
  13. 关于“Connection refused: connect”错误
  14. html计算圆周长,【实用性程序】弧微分计算圆周长
  15. 报错“FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disa”
  16. 从《亮剑》看先进的管理(原创)
  17. (1)计算机网络基础知识之网络的构成要素
  18. python:实现IIR 滤波器算法(附完整源码)
  19. python编写投票统计结果
  20. Oracle11gR2 并行执行存储过程

热门文章

  1. 腾讯AI Lab开源800万中文词的NLP数据集 | 资源
  2. 波士顿动力新视频:上岗工作机器狗,巡查工地一丝不苟
  3. 马克龙宣布15亿欧元投资AI,DeepMind拥吻巴黎
  4. 科技部:推进人工智能和实体经济深度融合 壮大智能经济
  5. 通过JDK动态代理实现拦截器
  6. 《C++ Primer Plus》读书笔记之十—类和动态内存分配
  7. MySQL时间段查询,无数据补0
  8. 【直播间】移动互联网产品中如何用好HTML5?
  9. 结对项目编程之代码进展
  10. GlideDemo【Glide3.7.0版本的简单使用以及圆角功能】