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();
}
}
分享到:
相关推荐
ExcelToSql工具简化了这个过程,使得用户可以通过简单的Excel模板来定义表格结构,然后自动生成相应的CREATE TABLE SQL语句。 该工具的主要功能包括: 1. **解析Excel表格结构**:它能读取Excel文件中的列名和数据...
标题中的“局域网查询SQL表数据工具,简单实用”指的是一个专为IT专业人士设计的软件,用于在局域网环境中便捷地查询SQL Server数据库中的数据。这样的工具通常简化了传统数据库查询过程,使得用户无需复杂的SQL语句...
在IT领域,SQL(Structured ...总之,"简单的SQL连接客户端"是一个实用的工具,帮助用户便捷地管理SQL Server数据库,进行数据操作和分析。理解和掌握如何有效利用这样的客户端,对于提升数据库管理工作效率至关重要。
isqlw作为SQL Server 2000中的一个重要实用工具,为数据库管理员和开发者提供了一种简单有效的命令行解决方案。通过灵活运用isqlw的各种命令行参数,可以实现SQL语句的高效执行,极大地提升了数据库管理与维护的工作...
还有一些专门用于生成SQL语句的库,如MySql.Data.SqlClient、Npgsql等,它们提供了一些高级功能,如SQL模板、查询构建器等,帮助开发者更方便地生成SQL语句。 总结,自动生成SQL语句在C#开发中是一项实用的技术,...
"SQL语句生成2.0正式版"的加入进一步提升了HEIDISQL的实用性,使SQL操作更加高效和智能化。无论是日常的数据维护还是项目开发,HEIDISQL都能成为不可或缺的工具。通过熟练掌握HEIDISQL,可以大大提高工作效率,为IT...
描述部分提到,这个SQL数据文件经过了整理和优化,去除了不必要的连接和内容,以提供更干净、方便和实用的数据。这可能意味着原始数据源可能包含了一些冗余或不相关的链接,经过处理后,用户可以直接便捷地查询和...
【程序员简历模板】是IT行业中求职者展示自身技能和经验的一种标准格式,旨在高效地传达个人的专业能力。以下是对这份简历中所提及的关键知识点的详细解释: 1. **C#编程语言**: C#是.NET Framework的主要开发语言...
对用户输入进行验证,防止SQL注入等安全风险。 7. **性能优化**:对于移动设备,网页加载速度至关重要。优化可能包括图片压缩、代码压缩合并、缓存策略等,以提高页面加载速度和用户体验。 8. **测试与调试**:在...
- **SQL模板**:库提供了一种方式来定义SQL查询模板,这些模板可以包含占位符,它们将被替换为 Protobuf 消息的字段值。 - **类型映射**:并非所有Protobuf类型都与SQL类型直接对应。你需要确保在.proto文件中定义的...
总的来说,"简单用户登录界面HTML模板"是一个基础但实用的开发资源,可以帮助初学者理解登录界面的构建,同时也为经验丰富的开发者提供了一个快速搭建原型的工具。通过深入学习和自定义,可以将其发展成满足特定项目...
总的来说,将`Sql Server`数据库转换成Word文档是一个实用的技术,涉及到数据库连接、SQL查询、数据处理和文档生成等多个环节。通过学习和应用这一技术,IT专业人士可以更好地管理和共享数据库信息,提高工作效率。
5. **代码模板**:内置常用的SQL模板,方便快速插入如SELECT、INSERT、UPDATE、DELETE等常见语句。 6. **免费版**:据描述,该插件是免费版,这意味着用户无需支付任何费用即可享用其功能,降低了开发成本。 在...
此外,ASP还支持Server对象,它包含了服务器上的各种实用函数,如Server.MapPath,可以将URL转换为服务器上的物理路径。 【SQL Server数据库技术】 SQL Server是微软开发的企业级关系型数据库管理系统(RDBMS),...
这个资源集合包含了多个实用的模板,涵盖了.net三层架构、Oracle数据导出、T-SQL存储过程等多个方面,为程序员提供了极大的便利。 一、.NET三层架构模板 .NET三层架构是软件设计中的常见模式,包括Model(模型)、...
在探讨“SQL邮件配置”这一主题时,我们深入解析了SQL Server 2008中邮件功能的配置方法,这是一个非常实用且强大的功能,尤其对于那些需要自动化执行脚本、发送错误通知或定期报告的数据库管理员来说尤为重要。...
总的来说,"C#学习模板-经典实用"是一个全面的资源,适合想要入门或提升C#和SQL Server 2005技能的学习者。它提供了一个结构化的学习路径,帮助你扎实地掌握这两种技术,并能应用于实际项目开发中。无论你是准备进入...
总的来说,SSM框架模板是一个实用的工具,尤其对于初学者,它能够快速地引导你进入Java Web开发的世界,帮助你掌握SSM框架的使用和实践。通过实际操作,你将更深入地理解各组件间的协作,提升你的开发技能。
【标题】"blog.rar_asp blog sql_blog_...这个博客系统对初学者来说是很好的实践项目,可以深入理解ASP和SQL的结合应用,同时也可以作为更复杂系统的基础,逐步添加评论、分类、搜索等功能,提升系统的完整性和实用性。