初级jsp程序员的小小愿望

a13106070 2010-10-21 10:50:45
呵呵 大家好
我刚接触jsp没几天 不懂得太多了 基础也很差 。。。 哪位有jsp增删改查源码 发我份 来研究下呗 最好有详细注释 。。。非常感谢
学习资料也好 非常感谢
...全文
140 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();
}

}
}

67,515

社区成员

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

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