`
hzs0502030128
  • 浏览: 23911 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

smile开发类库——SQLRunner数据库基本操作

阅读更多
smile开发类库——SQLRunner数据库基本操作

本篇文章来介绍下smile中关于数据库操作的方法:
org.smile.db.sql.SQLRunner;


一、 使用SQLRunner 对数据库的增、删、改、查:
1、 使用SQLRunner 进行插入数据,对于DbManager的用法博客中专有一篇文章介绍。

Connection conn=DbManager.getConnection();
	    SQLRunner runner=new SQLRunner(conn);
	    String sql="insert into test(id,name,age) values(?,?,?)";
	    try {
		runner.execute(sql, new Object[]{"11111","test",33});
	    }finally{
		runner.closeConn();
	    }


也可以不使用参数方式:
Connection conn=DbManager.getConnection();
SQLRunner runner=new SQLRunner(conn);
String sql="insert into test(id,name,age) values('1111','test',33)";
try {
	  runner.execute(sql);
}finally{
	  runner.closeConn();
}

2、 对数据库的删除、更新都插入的操作方式类似,相信大家都明白怎么做。

3、现在主要对查询进行一个详细的介绍:
查询返回的行记录形式可以是多种多样的,由SQLRunner 的成员变量
private RowHandler handler; 

决定的,RowHandler 是一个接口,需要实现RowHandler接口中的一个方法:
/**
	 * 处理结果集
	 * @param rs
	 * @return
	 * @throws Exception
	 */
	public Object handle(ResultSet rs) throws SQLException ;

smile-1.0.jar 中提供了四种实现,应该可以满足项目开发中的需求了:
四中实现如下:
  • ArrayRowHandler 把每一行记录转了一条数组。
  • BeanRowHandler 把每一条记录转成一个javabean ,定义的bean字段与数据库的字段一致。
  • ListRowHandler 把每一条记录转成一个ArrayList
  • MapRowHandler  把每一条记录转成一个Map  相信这个是最常用到的了。


如果不为SQLRunner 指定RowHandler 默认使用MapRowHandler  。

代码如下:
String sql="select id,name,age from test where name=?";
//使用默认RowHandler
//SQLRunner runner=new SQLRunner(conn);
SQLRunner runner=new SQLRunner(conn,new ArrayRowHandler());
try {
		List list=runner.query(sql, new Object[]{"test"});
	} finally{
			runner.closeConn();
}


查询语句还可以使用如下形式添加参数:
String sql="select id,name,age from test where name=:name";
		//使用默认RowHandler
		//SQLRunner runner=new SQLRunner(conn);
		SQLRunner runner=new SQLRunner(conn,new ArrayRowHandler());
		try {
			Map params=new HashMap();
			params.put("name", "test");
			List list=runner.query(sql, params);
		}finally{
			runner.closeConn();
	}

二、 批量操作数据库。
SQLRunner runner=new SQLRunner(conn);
		try {
			Object[][] params=new Object[][]{{"1111","test",33},{"2222","test2",332}});

			runner.batch("insert into test(id,name,age) values(?,?,?)",params} 
finally{
			runner.closeConn();
		}

三、 手动事务:
SQLRunner runner=new SQLRunner(conn);
	try{
		runner.beginTransaction();
		runner.execute(sql1);
		runner.execute(sql2);
		runner.commit();
	}catch(SQLException e){
			runner.rollback();
			throw e;
	}finally{
			runner.closeConn();
	}



【smile-1.0.jar下载】http://hzs0502030128.iteye.com/blog/1471505
分享到:
评论

相关推荐

    JAVA 登陆注册银行业务模拟数据库操作

    在本项目"JAVA 登陆注册银行业务...总的来说,这个项目涵盖了基础的Java编程、数据库操作、用户认证、事务处理和安全实践等多个方面,对于学习和实践Java Web开发,尤其是银行系统的业务逻辑,是非常有价值的实践案例。

    一个C#写的类库及调用例子

    标题和描述中提到的"一个C#写的类库及调用例子"是一个关于C#编程的实践项目,其中包含了一个类库以及如何使用这个类库的示例代码。C#是一种面向对象的编程语言,广泛应用于开发Windows桌面应用、Web应用、游戏以及...

    Smile参考文献生成工具

    此外,Smile参考文献生成工具还具备智能化的特点,它能够自动识别在线数据库中的文献信息,例如PubMed、Google Scholar等,进一步简化了获取和整理参考文献的过程。同时,该工具允许用户自定义模板,以适应特定的...

    C#.NET万能数据库访问封装类ACCESS、SQLServer、Oracle

    这个类库的目标是提供一个统一的接口,以便在不同数据库系统间无缝切换。 首先,我们来看C#.NET中的ADO.NET框架,它是.NET Framework中用于数据库访问的基础。ADO.NET包括DataSet、DataTable、DataRow等组件,以及...

    Qt应用程序连接access数据库

    在本文中,我们将深入探讨如何使用Qt框架来连接并操作Access数据库,以便进行数据转换。Qt是一个跨平台的C++库,提供了丰富的功能,包括GUI设计、网络编程以及数据库访问等。而Microsoft Access则是一种流行的桌面...

    smile一个快速而全面的机器学习系统

    Smile采用Java语言开发,这使得它具有跨平台的特性,并且能够无缝集成到Java生态系统中。 在机器学习领域,Smile涵盖了多种算法,包括监督学习和无监督学习。在监督学习方面,它提供了常见的分类和回归算法,如逻辑...

    如何完整的修改一个数据库的名称

    "数据库名称修改" 数据库名称修改是数据库管理的重要步骤之一。以下是关于数据库名称修改的详细知识点: 一、数据库名称修改的必要性 在数据库管理中,数据库名称的修改是非常重要的。数据库名称的修改可以满足...

    sql 数据库的全套学习课件

    掌握SELECT语句用于数据检索,INSERT、UPDATE和DELETE用于数据操作,以及CREATE、ALTER和DROP用于定义和修改数据库对象的基本语法是必要的。更高级的SQL特性如窗口函数、联接、子查询和存储过程也是数据库开发者应...

    C#编程修复Access数据库

    3. 执行修复操作:Access数据库的修复通常需要读取和解析数据库文件,然后重建其结构。C#可以使用OleDbCommand对象执行SQL命令来完成这个过程。例如,你可以运行DBCC CHECKDB命令检查数据库的完整性,但请注意,这在...

    微信表情数据库表

    在IT行业中,数据库是存储和管理数据的核心工具,而微信表情数据库表则是一个特定的应用场景,主要用于处理和存储用户...在实际开发中,这样的数据库设计思路和操作方法可以借鉴到其他需要处理大量多媒体数据的项目中。

    基于自注意力孪生神经网络的人脸识别——在家族人脸数据库上的亲属关系预测.pdf

    在美国西北大学的 SMILE 人脸数据集上进行训练,并在官方于 Kaggle 举办的基于人脸亲属关系识别数据竞赛中进入前十名。 本文提出的基于自注意力孪生神经网络的人脸识别方法可以应用于亲属关系预测任务中,提高模型...

    C#数据库触发器的使用实例代码

    在数据库管理中,触发器(Triggers)是一种存储过程,它会在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行。在C#编程中,虽然我们并不直接编写触发器,但我们可以通过ADO.NET或其他数据库访问技术与...

    图书管理系统 数据库课程设计

    6. **数据访问技术**:在VB中,通常使用ADO(ActiveX Data Objects)或ADO.NET来连接和操作数据库。这些技术允许程序通过SQL语句与数据库进行通信,实现数据的读取、写入和更新。 7. **错误处理和调试**:在开发...

    数据库同步工具(不同类型数据库之间的数据同步)

    软件界面友好,操作简便,能够使用户非常有效和方便的对数据库数据进行管理。 软件主要功能是支持从一个数据库到另一个数据库的数据同步,支持的数据库类型包括: 1 源数据库 SQLServer ACCESS 2 目标数据库 SQL...

    我的smile头像

    "我的smile头像"这个主题表明我们正在探讨的是一个与笑脸相关的个人头像设计,这通常涉及到图形设计、用户体验(UX)以及品牌识别等多方面的知识。 首先,我们需要理解"smile"在设计中的含义。微笑是人类情感表达的...

    PHPWind论坛 Smile54

    【PHPWind 论坛 Smile54 知识点详解】 PHPWind 是一款广泛使用的开源论坛软件,专为构建高效、互动的社区网站而设计。 Smile54 是 PHPWind 论坛的一个特定版本或主题,它可能包含了独特的设计风格、功能增强以及...

    smile1.0_src

    一、一个数据库操作 查询数据 SQLRunner Query 分页查询 二、数据源的实现 DbManager BasicDataSource 三 、JSON操作 JSONValue JSONObject JSONArray 四、 jstl 函数 标签库 五、 jsongateway 框架...

    haarcascade-smile.xml.zip

    标题中的"haarcascade-smile.xml.zip"是一个与计算机视觉相关的压缩文件,它包含了OpenCV库用到的级联分类器(Haar Cascade)配置文件。OpenCV是一个开源的计算机视觉和机器学习库,广泛应用于图像处理和模式识别...

    成语数据库(总共31851个成语,含拼音,解释,出处,例子)

    在这样的背景下,一个全面、系统的成语数据库的建立,对于促进成语学习与研究,提高汉语使用者的文化素养和语言表达能力,具有非常重要的意义。 当前我们拥有的这个成语数据库,收录了多达31851个成语,可谓集大成...

    jackson-dataformat-smile-2.10.0-API文档-中文版.zip

    赠送jar包:jackson-dataformat-smile-2.10.0.jar; 赠送原API文档:jackson-dataformat-smile-2.10.0-javadoc.jar; 赠送源代码:jackson-dataformat-smile-2.10.0-sources.jar; 赠送Maven依赖信息文件:jackson-...

Global site tag (gtag.js) - Google Analytics