- 浏览: 960120 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (385)
- 搜索引擎学习 (62)
- 算法 (1)
- 数据库 (15)
- web开发 (38)
- solr开发 (17)
- nutch 1.2 系统学习 (8)
- cms (1)
- 系统架构 (11)
- linux 与 unix 编程 (16)
- android (15)
- maven (1)
- 关注物流 (1)
- 网址收集 (1)
- 分布式,集群 (1)
- mysql (5)
- apache (1)
- 资料文档备份 (7)
- 上班有感 (0)
- 工作流 (15)
- javascript (1)
- weblogic (1)
- eclipse 集成 (1)
- JMS (7)
- Hibernate (1)
- 性能测试 (1)
- spring (6)
- 缓存cache (1)
- mongodb (2)
- webservice (1)
- HTML5 COCOS2D-HTML5 (1)
- BrowserQuest (2)
最新评论
-
avi9111:
内陷到android, ios, winphone里面也是随便 ...
【HTML5游戏开发】二次开发 BrowserQuest 第一集 -
avi9111:
呵呵,做不下去了吧,没有第二集了吧,游戏是个深坑,谨慎进入,其 ...
【HTML5游戏开发】二次开发 BrowserQuest 第一集 -
excaliburace:
方案3亲测完全可用,顺便解决了我其他方面的一些疑问,非常感谢
spring security 2添加用户验证码 -
yuanliangding:
Spring太强大了。
Spring Data JPA 简单介绍 -
小高你好:
什么是hibernate懒加载?什么时候用懒加载?为什么要用懒加载?
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);
}
}
发表评论
-
最新上线的小站 格格衣柜
2012-12-13 18:43 13格格衣柜,www.gegeyigui.com,有兴趣可以去看看 ... -
fck 相关处理
2012-12-10 18:11 1060javascript获取和设置FCKeditor内容 ... -
【转】细细品味Web——Json-Lib类库使用手册
2012-06-18 17:46 14971、JsonLib简介 Json ... -
freemarker 自定义标签问题
2012-05-05 10:47 1180倒腾半天,发现是使用标签时,出错了。[@cms_taobaok ... -
【转】freemarker中实现自定义标签(包含处理参数以及循环变量)(2.3.11版本以后的方式)
2012-05-04 14:34 2538博客分类: ... -
【转】freemarker中实现自定义标签(2.3.11版本以后的方式)
2012-05-04 14:32 1511博客分类: ... -
Spring Data JPA 简单介绍
2011-08-26 14:11 15858背景 考虑到公司应用中数据库访问的多 ... -
ajax 乱码
2011-07-26 14:24 1102// 异步通过订单获得订单明细,用于商品价格修改 @ ... -
freemarker 格式化
2011-07-05 14:06 3086freemarker数据格式化问题(即数值超过四位数时有逗号) ... -
object references an unsaved transient instance - save the transient instanc
2011-01-17 18:09 6409出现这个错误的原因是在保存该对象前,发现该对象包含有其他空的对 ... -
防止浏览器缓存css,js静态文件[转]
2011-01-11 16:58 2250什么情况下,要禁止静态文件缓存: 1、经常可能要改动的 js ... -
java 开源cms opencms的使用,如何去掉两个/opemcms路径的方法
2010-07-15 21:00 4696哈哈。。。经过本人测试成功: 买空间的朋友,因为无法配 ... -
通过百度获取天气预报[转]
2010-05-06 15:26 1475public class Getweather { ... -
javascript 跳转新发现 window.open 乱码处理
2010-04-09 20:57 14106搞了两三天的乱码处理,试了很多方法,过滤器啊,编码转换啊,试来 ... -
解决 连接关闭问题
2010-03-12 09:57 1417root cause org.springframewor ... -
远程登录不了em
2009-12-18 10:25 1174修改一下hostlist.ini列表就行了。 -
今天发现
2009-12-08 20:49 1188今天搞了半天jstl不显示 感觉太奇怪了,平时框架也没有问题啊 ... -
java 开发中 java的System.getProperty()方法可以获取的值
2009-11-13 16:54 1400java.version Java ... -
什么是hibernate懒加载?什么时候用懒加载?为什么要用懒加载?
2009-11-09 22:05 43527所谓懒加载(lazy)就是延时加载,延迟加载。 什么时候用懒 ... -
SVN在linux下的安装 学习
2009-11-09 17:56 1272SVN在linux下的安装 ...
相关推荐
JSP,Java项目用的Mysql数据库的DBHelper类
还在苦恼于java连接数据库吗?连接SQL Server?连接Oracle?还是MySQL? 其实,80%的功能只需要JDBC中的20%的方法,而使用DBHelper,不管使用什么数据库,全部使用统一的接口。只需2个方法,getData、updateData你...
Java连接MySQL驱动及MySQL的DBHelper是开发过程中常见的任务,主要涉及Java编程语言与MySQL数据库的交互。在Java中,我们通常使用JDBC(Java Database Connectivity)API来连接和操作数据库。MySQL-Connector/J是...
1、源码附带Sql Server、Access、Sqlite、Mysql四数据库互转插件代码 2、源码附带Excel导入到数据库表(自动生成新表,或将数据导入到已有表)功能代码 3、源码附带自适应数据库表结构Web版数据CRUD功能演示代码 ...
这个压缩包提供了用于Java连接MySQL数据库的`DBHelper`类,其中包含代码示例和所需的JDBC驱动(即`mysql-connector-java.jar`)。 首先,让我们了解一下Java如何通过JDBC(Java Database Connectivity)接口与MySQL...
在Java、C#等面向对象编程语言中,DbHelper通常被设计为一个静态类,提供了一系列静态方法来执行SQL语句,以实现对数据库的数据处理。 在数据库编程中,DbHelper类的核心功能包括以下几个方面: 1. 连接管理:...
1. **数据库连接**:在`DBHelper`中,通常会使用`java.sql.DriverManager`类来建立与MySQL数据库的连接。开发者需要提供数据库的URL、用户名、密码等信息。例如,`DriverManager.getConnection("jdbc:mysql://...
/// <summary> /// MySQL数据库操作 /// author:hhm /// date:2012-2-22 /// </summary> public class MySqlDbHelper { #region 私有变量 private const string defaultConfigKeyName = "DbHelper";//连接字符串 ...
4. **结果集处理**:DBHelper通常会封装ResultSet的处理,将数据库查询的结果转换为Java对象或者List集合。这使得数据的获取和处理更加方便,例如通过`getBean()`或`getBeans()`方法。 5. **数据库元数据访问**:...
还在苦恼于java连接数据库吗?连接SQL Server?连接Oracle?还是MySQL? 其实,80%的功能只需要JDBC中的20%的方法,而使用DBHelper,不管使用什么数据库,全部使用统一的接口。只需2个方法,getData、updateData你...
DBHelper是一个永远免费的绿色无广告数据库管理工具,可以快速生成INSERT语句及其他功能,有视频帮助,可以大大提高数据库操作人员及开发人员的工作效率。 支持的数据库包括 sqlite,access,postgresql,mysql,sql...
DbHelper C#实现的dbhelper类,支持mysql、sqlserver、oracle等多种数据库、支持事务
数据库操作类(支持OleDb、MySQL、Oracle、SQL、SQLite、) 操作: 获取连接字符串 得到web.config里配置项的数据库连接字符串。 数据库连接字符串(web.config来配置),可以动态更改connectionString支持多数据库. ...
DbHelperMySQL.cs 是数据访问抽象基础类 ...适合C#、.net等后端开发人员,级初级开发人员,快速开发中小型项目,无需繁琐编写MySql数据库连接操作相关代码。 此封装类适合初中级开发人员,资深开发人员无需参考。
本篇将详细介绍如何使用Java连接MySQL数据库,实现增删改查(CRUD)操作。 首先,我们了解基本概念。在Java中,我们通常使用JDBC(Java Database Connectivity)来与MySQL进行交互。JDBC是Java API,允许Java程序与...
资源分享 通通只要一分 使用案例: using (IDbHelper dbHelper = ... //数据库连线字串 SignListCN = dbHelper.Fill(strsql); } catch (Exception orEx) { throw orEx; } finally { dbHelper.Close(); } }
1. 支持Micrsoft SQL Server/Access/Oracle/MySql/Sqlit; 2. 支持多数据库同时操作; 3. 支持实体与表映射的直接操作; 4. 支持直接将SQL查询结果转成对应的实体对象; 详细API请参见...
基于Python的scrapy爬虫框架模板源代码+使用说明,将数据保存到Mysql数据库或者文件中 settings.py 修改Mysql的配置信息 #Mysql数据库的配置信息 MYSQL_HOST = '127.0.0.1' MYSQL_DBNAME = 'testdb' #数据库名字,请...
描述中提到的“Java连接数据库,Java连接MySql数据库,DBHelper,BaseDao”是该项目的关键技术点,表明这个系统使用Java语言,特别是通过JDBC来与MySQL数据库进行交互,并采用了DBHelper和BaseDao的设计模式来辅助...
只需替换特定的数据库提供程序(如SqlClient或OleDb)并调整相应的对象,就能轻松适应Oracle、MySQL、SQLite等其他数据库。 在实际开发中,`DBHelper`类库极大地简化了数据库操作,使得开发者能更专注于业务逻辑而...