初级jsp程序员的小小愿望

a13106070 2010-10-21 10:50:45
呵呵 大家好
我刚接触jsp没几天 不懂得太多了 基础也很差 。。。 哪位有jsp增删改查源码 发我份 来研究下呗 最好有详细注释 。。。非常感谢
学习资料也好 非常感谢
...全文
174 9 打赏 收藏 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yinongstudio 2010-10-23
  • 打赏
  • 举报
回复
http://code.google.com/p/simplejee/

这个里面有很多例子,从基本的jsp到jdbc到struts2,hibernate,spring,iBATIS,以及工作流等
jiangzongyaoao 2010-10-23
  • 打赏
  • 举报
回复
一般数据库访问可以用Db-utile这个开源项目,他封装了JDBC,比较好用,并且效率和JDBC相差无几。
forever_ai 2010-10-23
  • 打赏
  • 举报
回复
路过
支持一下
李嘉的博客 2010-10-22
  • 打赏
  • 举报
回复
package com.gs.flexBz.db;



import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import com.gs.flexBz.entity.Message;

public class BaseDao{
private static final String JDBC = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //数据库驱动
private static final String URL = "jdbc:sqlserver://localhost:1433;DataBaseName=flexBZ"; //数据库连接字符串
private static final String USER = "sa"; //用户名
private static final String PASSWORD = "cstp"; //密码
private Connection conn=null;
private PreparedStatement pstmt=null;
private ResultSet rs=null;
/**
* 得到数据库连接对象
* @return 返回conn
*/
public static Connection getCon(){
Connection con = null; //声明conn
try {
System.out.println("开始");
Class.forName(JDBC);
System.out.println("10&8="+(10&8));
con = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (Exception e) {
System.out.println("数据库连接出错!");

}
return con;
}

/**
* 关闭数据库连接 释放资源
* @param con 连接
* @param st 执行器
* @param rs 结果集
*/
public static void closeConn(Connection con,Statement st,ResultSet rs) {
try {
if(rs!=null)
rs.close();
if(st!=null)
st.close();
if(con!=null)
con.close();
} catch (Exception e) {
System.out.println("释放数据库资源,关闭连接出错!");

}
}

/**
*
* @param sql
* @return 执行SQL语句,返回受影响的行数
*/
public int excutesql(String sql,Object[] params){
conn=null;
pstmt=null;
int count=0;
conn=getCon();
try {
pstmt=conn.prepareStatement(sql);
if(params!=null&¶ms.length!=0) //数组里没有要解释的字段 就不执行解释循环
for(int i=0;i<params.length;i++){
pstmt.setObject(i+1,params[i]); //PreparedStatement解释sql语句中的?来过滤关键字
}
count=pstmt.executeUpdate(); //执行sql语句
} catch (SQLException e) {
System.out.println("------basedao增删改出错------");

}finally{
closeConn(conn,pstmt,null);
}
return count; //受影响的行数
}

public ResultSet select(String sql,Object[] params){
conn=null;
pstmt=null;
rs=null;
conn=getCon();
try {
pstmt=conn.prepareStatement(sql);
if(params!=null&¶ms.length!=0) //数组里没有要解释的字段 就不执行解释循环
for(int i=0;i<params.length;i++){
pstmt.setObject(i+1,params[i]); //PreparedStatement解释sql语句中的?来过滤关键字
}
rs=pstmt.executeQuery(); //执行sql语句
} catch (SQLException e) {
System.out.println("------basedao增删改出错------");

}
return rs;
}

public List<Object> select(String sql,Object[] params,Class clazz){
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
List<Object> datas = null;
conn=getCon();
try {
pstmt=conn.prepareStatement(sql);
if(params!=null&¶ms.length!=0)
for(int i=0;i<params.length;i++){
pstmt.setObject(i+1,params[i]);
}
rs=pstmt.executeQuery();
ResultSetMetaData rsmd=rs.getMetaData(); //结果集元数据
int count=rsmd.getColumnCount(); //获得结果集有多少列
String[] colNames=new String[count]; //保存列名的字符串数组
for(int i=0;i<count;i++){ //分别把结果集中的列取出来放到colNames数组中
colNames[i]=rsmd.getColumnLabel(i+1);
}
datas = new ArrayList<Object>(); //实例化
Object obj=null;
Method[] ms=clazz.getMethods(); //取出clazz字节码中所有的方法
while(rs.next()){
obj=clazz.newInstance(); //实例化clazz字节码
for(int i=0;i<colNames.length;i++){
String colName=colNames[i]; //获得每个列名
String MethodName="set"+colName; //组成set方法名字
for(Method m:ms){
if(MethodName.equals(m.getName())){
m.invoke(obj,rs.getObject(colName)); //调用set方法.把数据库中取出的值设置到对象中
}
}
}
datas.add(obj); //把对象加入list
}
} catch (SQLException e) {
System.out.println("---------查询数据出错----------");
throw new RuntimeException(e.getMessage(),e);
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}finally{
closeConn(conn,pstmt,rs);
}
return datas;
}

public static void main(String[] args) {
BaseDao bd=new BaseDao();
List<Object> list=bd.select("Select [E_id],[E_name],[Ms_content],[Ms_time] from [Message]",null,Message.class);
for(int i=0;i<list.size();i++){
Message news=(Message)list.get(i);
System.out.println(news.getMs_content());
}
}
}
这里是我自己做的一个.你看看懂不懂
zn85600301 2010-10-22
  • 打赏
  • 举报
回复
开源网上 应该有
个人建议 先把基本理论看懂了 然后CRUD 一个一个照例子写 最后自己写
多单步看看执行的顺序流程
a13106070 2010-10-22
  • 打赏
  • 举报
回复
常感谢上边的两位大哥 发我的多代码 呵呵。。。。 还有注释的
qunhao 2010-10-22
  • 打赏
  • 举报
回复
操作数据库数据使用PreparedStatement接口

三个常用的执行SQL命令的方法
(1)ResultSet executeQuery()
可以执行SQL查询语句,并将查询结果封装到结果集中返回
(2)int executeUpdate()
可以执行增、删、改的SQL语句,返回操作后的受影响行数
(3)boolean execute()
这是一个最为一般的执行方法,可以执行任意SQL语句,然后获得一个布尔值,表示是否返回ResultSet



package news.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class Sample
{
public static void main(String[] args)
{
try
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}
catch(ClassNotFoundException e)
{
System.out.println("驱动类没有找到!");
}
Connection con=null;
try
{
con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=news","sa","sa");
}
catch (SQLException e)
{
System.out.println("数据库连接失败:"+e.getMessage());
}
System.out.println("连接数据库成功!");
String sql="insert into FirstLevelTitle values(?,?,?,?)";
try
{
PreparedStatement ps=con.prepareStatement(sql);
ps.setString(1, "666");
ps.setString(2, "测试添加");
ps.setString(3, "qunhao");
ps.setString(4, "");
if(ps.executeUpdate()==1)
System.out.println("添加成功");
else
System.out.println("添加失败");
}
catch (Exception e)
{
e.printStackTrace();
}

}
}
内容概要:本文围绕“基于氨储能技术的电转氨耦合风–光–火综合能源系统双层优化调度”展开研究,提出了一种融合风电、光伏等可再生能源与传统火电,并通过电转氨(Power-to-Ammonia, P2A)技术实现能量储存与转换的综合能源系统优化模型。该模型采用双层优化调度架构,上层以系统运行经济性与能源利用效率为目标进行优化决策,下层处理电转氨设备及氨储能系统的动态响应与运行约束,旨在提升高比例可再生能源接入背景下系统的灵活性、稳定性与新能源消纳能力。研究通过Matlab编程实现了该双层优化模型,并基于典型算例验证了其在降低系统运行成本、增强调节能力以及促进清洁能源高效利用方面的有效性。; 适合人群:具备电力系统、能源系统或优化调度相关基础知识,从事新能源、综合能源系统、储能技术或优化算法研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究电转氨(Power-to-Ammonia, P2A)技术在综合能源系统中的应用潜力;②探索基于双层优化框架的风–光–火–氨多能互补系统的协同调度策略;③掌握利用Matlab实现复杂能源系统优化调度建模与求解的方法。; 阅读建议:此资源以Matlab代码实现为核心,不仅提供了完整的优化模型,还展示了详细的算法流程。读者在学习时应结合双层优化理论,仔细研读代码逻辑,重点关注目标函数的构建、约束条件的处理以及上下层信息交互机制,并尝试复现和修改算例以加深理解。
打开链接下载源码: https://pan.quark.cn/s/a4b39357ea24 Java JDK 1.8.0被视为Java开发工具套件中的一个关键版本,其中整合了Java语言的核心库、编译器、运行时环境、调试工具以及其他必需的组件,为开发与执行Java应用程序奠定了基础。该版本的JDK诞生于2018年,具体为1.8.0_171的更新版本,其核心在于对先前版本的修正与优化。Java JDK是Java Development Kit的缩写,它属于Java平台标准版(Java SE)的范畴,主要用于构建和部署Java应用程序。该套件提供了编译、调试、性能分析等一系列工具,使开发者能够编写、打包、测试以及运行Java程序。Java JDK 1.8.0引入了诸多创新特性,具体包括: 1. ** Lambda表达式**:这被公认为Java 8最突出的特性之一,它引入了一种全新的语法结构,使得函数式编程更为精炼。Lambda表达式能够将匿名函数作为方法参数传递,从而简化了多线程编程中的回调函数和事件处理。 2. ** 方法引用和构造器引用**:它们与Lambda表达式紧密关联,提供了一种更为直观的方式来引用既存的方法或构造器,有效减少了代码的冗余。 3. ** Stream API**:这是一个全新的集合操作接口,它支持序列化操作,例如过滤、映射和规约,特别适用于大规模数据处理,显著提升了代码的可读性与执行效率。 4. ** 接口默认方法**:Java 8赋予了接口定义默认方法的能力,通过提供默认实现,无需强制子类去重写该方法,从而增强了接口的适应性。 5. ** Date和Time API的改进**:Java 8推出了全新的java.time包,用以替代已过时的ja...

67,535

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧