import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
import javax.servlet.jsp.jstl.sql.Result;
import javax.servlet.jsp.jstl.sql.ResultSupport;
public class SQLCommand
{
private Connection conn;
private String sqlVaule;
private List values;
/**
*
* */
public void setConnection(Connection con)
{
this.conn=con;
}
/**
* 设定SQL语句
* **/
public void setSqlValue(String sqlValue)
{
this.sqlVaule=sqlValue;
}
/*
*
* 设定SQL参数
* **/
public void setValues(List values)
{
this.values=values;
}
/**
* 执行查询
* @throws SQLException
* @reutrn Result对象
* **/
public Result executeQuery() throws SQLException
{
Result result=null;
ResultSet rs=null;
PreparedStatement prop=null;
Statement stmt=null;
try
{
if(values !=null && values.size()>0)
{
prop=conn.prepareStatement(sqlVaule);
setValues(prop,values);
rs=prop.executeQuery();
}
else
{
stmt=conn.createStatement();
rs=stmt.executeQuery(sqlVaule);
}
result=ResultSupport.toResult(rs);
}
finally
{
if(rs!=null)
{
rs.close();
}
if(stmt!=null)
{
stmt.close();
}
if(prop !=null)
{
prop.close();
}
}
return result;
}
/**
* 执行Update语句
* @throws SQLException
* */
public int executeUpdate() throws SQLException
{
int noOfRows=0;
ResultSet rs=null;
PreparedStatement prop=null;
Statement stmt=null;
try
{
if(values!=null && values.size()>0)
{
prop=conn.prepareStatement(sqlVaule);
setValues(prop,values);
noOfRows=prop.executeUpdate();
}
else
{
stmt=conn.createStatement();
noOfRows=stmt.executeUpdate(sqlVaule);
}
}
finally
{
if(rs!=null)
rs.close();
if(stmt!=null)
stmt.close();
if(prop!=null)
prop.close();
}
return noOfRows;
}
/**
* 设定语句的参数
* @param PreparedStatement
* @throws SQLException
*
* */
public void setValues(PreparedStatement prop,List values) throws SQLException
{
for(int i=0;i<values.size();i++)
{
Object v=values.get(i);
prop.setObject(i+1, v);
}
}
}
连接类:
import java.sql.*;
public class ConnectionManager
{
private static String driverClassName="com.mysql.jdbc.Driver";
private static String url="jdbc:mysql://localhost:3306/test";
private static String username="root";
private static String pwd="123456";
public static Connection getConnection() throws SQLException
{
Connection con=null;
try
{
Class.forName(driverClassName);
con=DriverManager.getConnection(url,username,pwd);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;
}
}
测试类:
public static void main(String args[])
{
try
{
SQLCommand command=new SQLCommand();
command.setConnection(ConnectionManager.getConnection());
command.setSqlValue("select * from apps");
Result rs=command.executeQuery();
if(rs ==null || rs.getRowCount() ==0)
{
System.out.println("no information!!");
}
else
{
int count=rs.getRowCount();
System.out.println(count);
for(int i=0;i<count;i++)
{
Map row=rs.getRows()[i];
System.out.println(row.get("id"));
System.out.println(row.get("name"));
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
分享到:
相关推荐
软件测试登记表,简单实用。 模板简单拷贝如下 故障与问题记录 前台系统调试/测试记录登记表 编号: 1 时间: 2009-10-27 系统名称: 前台系统(门户网站)http://192.168.2.133/csta 现场环境: 1、 系统运行软...
ASPCMS介绍 开发语言:ASP+Access/SQL2000/SQL...易用性:用户界面简洁、美观、友好,易于用户操作和使用,操作人员只需简单学习即可掌握。 安全性:安全可靠的权限划分,既考虑信息的共享,又注意信息的保护与隔离。
本程序是用vs2005+Sql Server2005做的非常简单的留言板程序
1,简单易用的模板引擎,网站界面想换就换 网软旅游网站的模板引擎简单、易用,采用了XML标记风格,只要懂HTML就可以修改制作模板。 很多的用户都为每次网站改版费尽苦心,因为按照老式的网站制作流程,改版需要修改...
众多用户对此功能的评价是时尚+实用。 24、评论功能:网站是供大家交流的平台,后台可以启用审核与非审核模式。当有不合适不合时的言论,管理员只需审核这些评论即可,这一功能,大大减少了管理员的工作量,维护了...
一个专门为软件下载站而设计的CMS系统,是用php mysql开发的,程序简单实用,如果您想做一个软件或源码下载站,快速CMS会是您不错的选择 快速下载站管理系统具有如下特点; 1 div css的设计让程序更简捷,有利于搜索...
10.简单实用的后台操作管理,您可以方便的管理您的站点 11.特殊敏感词过滤功能,在当今网络环境下,可以防止恶意的人发帖子,创建和谐环境 12.实用方便的会员管理员中,让您的网站会员可以轻松的实现管理 13.心情...
一个专门为软件下载站而设计的CMS系统,是用php mysql开发的,程序简单实用,如果您想做一个软件或源码下载站,快速CMS会是您不错的选择 快速下载站管理系统具有如下特点; 1 div css的设计让程序更简捷,有利于...
强大的调用标签,无技术门槛,简单,易用,美观,实用!源码全公开,未作任何加密处理,免费提供下载; 企业建站专业 SongCMS v3.14主要更新内容: ● 超炫的后台管理界面,仿Win桌面设计。 ● 采用全新的CKEditor...
KooCMS网站内容管理系统是基于.NET技术开发的针对中小型网站建站需求开发建站工具平台,具有稳定的系统构架,良好的可扩展性,模板语法简单易 学,高效的模板解析引擎,优异灵活的插件机制,可以实现各种个性化交互...
editplus可以编辑文本,html,javascript,sql语句等等 文本的编译,有相关的模板,简单实用,免安装 免注册
系统前台的栏目、菜单、功能入口等全部实现后台控制,用户只需在后台进行简单的设置即可制作出适合于自身学校的网站系统。 我们将推出更多的学校机构网站,学校网站管理系统,做中国最好,易用,安全的学校上网,学校信息...
轻便、简易、通俗、易懂、免费、轻松的PHP框架,只需要鼠标点点就可完成数据的增、删、改、减,内置的用户组管理、权限管理实现简单实用的RBAC。 无须模板减少学习成本、提高运行效率、方便调试,不用另建模板...
轻便、简易、通俗、易懂、免费、轻松的PHP框架,只需要鼠标点点就可完成数据的增、删、改、减,内置的用户组管理、权限管理实现简单实用的RBAC。 无须模板减少学习成本、提高运行效率、方便调试,不用另建模板文件...
QICMS企业公司网站源码,这是一款采用经典的三层结构,可以动态、伪静态模式,前端采用自适应模板,后台功能实用,界面大气,无限级分类,单篇栏目添加等的企业网站源码,比较适合企业自用,感兴趣的可以下载看一下...
PowerDesigner是一款非常全面的数据库设计工具。使用PowerDesigner可以快速创建表,支持表与表之间建立关系,界面简洁,功能强大。同时支持将sql脚本导出,多种导出类型任意挑选,简单实用
3.简单实用的网站留言; 版本 5.0(免费版 - beta) 版本 5.0(免费版 - 20140314) 1.修正一个安全性问题。 2.修正一个重复收藏问题。 3.默认模板做了些美化。 版本 5.0(免费版 - 20140215) 修改了下默认...
运行二进制文件并提供要导入的CSV的文件路径-csv=my_scan.csv ,Excel模板文件-excel=Chart_Template.csv ,SQLite3数据库文件-sql=new_db.db (我们将在如果尚不存在db文件,则提供路径),以及您要使用的表名-...
"盛讯 System"是昆明盛讯网络推出的专业建站平台,基于 ASP.net 开发,功能简洁实用,扩展性强(完整开源),可用于CMS、博客和企业网站建设。 多数据支持 支持 SQL Server 2005(或者更高)、SQLite 两种数据库,...