社区
Web 开发
帖子详情
在线求增删改Bean的编写和调用例子,顶者有分
j_mcgrady
2006-02-27 05:18:29
在线求增删改Bean的编写和调用例子,顶者有分
...全文
113
7
打赏
收藏
在线求增删改Bean的编写和调用例子,顶者有分
在线求增删改Bean的编写和调用例子,顶者有分
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yan1
2006-03-01
打赏
举报
回复
顶一下........
j_mcgrady
2006-03-01
打赏
举报
回复
有人在吗?谢谢
lydvqq
2006-02-27
打赏
举报
回复
转:
package com.imnamg.axman.beans;
import java.sql.*;
import ..................
public class ConnectionFactory{
protected Connection conn;
ConnectionFactory() throws SQLException
{ //构造方法中生成连结
//无论是从DataSource还是直接从DriverManager中取得连结.
//先初始化环境,然后取得连结,本例作为初级应用,从
//DriverManager中取得连结,因为是封装类,所以要把异常抛
//给调用它的程序处理而不要用try{}catch(){}块自选处理了.
//因为要给业务方法的类继承,而又不能给调用都访问,所以
//conn声明为protected
conn = DriverManager.getConnection(url,user,passwd);
}
/**
在多线程编程中,很多时候有可能在多个线程体中得到同一连
结的引用,但如果在一个线程中关闭了连结,则另一个得到相同
引用的线程就无法操作了,所以我们应该加一个重新建立连结
的辅助方法,有人问为什么既然有这个辅助方法不直接调用这个
辅助而要在构造方法中生成连结?因为这样可以增加效率,如果
在构造时不能生成连结则就不能生成这个对象了,没有必要在
对象生成后再测试能不能生成连结.
*/
public void makeConnection(){
//此处的代码同构造方法,无论以后如果实现连结,都将构造方
//法的代码复制到此处.
conn = DriverManager.getConnection(url,user,passwd);
}
}
这个类就封装到这里,当然你可以在这儿增加业务方法,但如果要修改连结的实现,
整个类都要重新编译,因为业务方法和应用层次无关,代码一经生成不易变动,所以独立封装.
以下我们实现业务方法:
package com.imnamg.axman.beans;
import java.sql.*;
import ..................
public class DBOperater extends ConnectionFactory{
//private Statement stmt;
//private ResultSet rs;
//为什么要注释成员变量stmt和rs,基础部分已经说过,如果声明为成员变量,
//在关闭conn时可以显示地先关闭rs和stmt,别的没有任何好处,而显示关
//闭只是说明你编程风格好,但综合考虑,我们要生成多个stmt或不是类型的
//stmt就不能声明为成员方法,否则引用同一对象,所以我们要业务方法中生
//成stmt对象.不仅可以同时处理多个结果集,还可以提高性能和灵活性.
public ResultSet executeQuery(String sql) throws SQLException{
if(conn==null || conn.isClosed())
makeConnection();
Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
//对于一般的查询操作,我们只要生成一个可流动的结果集就行了.
//而对于在查询时要更新记录,我们用另一个业务方法来处理,这样,
//这样可以在普通查询时节省回滚空间.
ResultSet rs = stmt.executeQuery(sql);
return rs;
}
public ResultSet executeUpdatabledQuery(String sql) throws SQLException{
if (con == null || con.isClosed())
makeConnection();
Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLED);
//可更新的结果结要更大的回滚空间,普通查询时不要调用这个方法
ResultSet rs = stmt.executeQuery(sql);
return rs;
}
/**
基于同上的原因,在执行更新操作是我们根本不要任何回滚空间,所以建立
一个基本类型的stmt,实现如下
*/
public int executeUpdate(String sql) throws SQLException{
if (con == null || con.isClosed())
makeConnection();
Statement stmt = con.createStatement();
//这个stmt在执行更新操作时更加节省内存,永远记住,能节省的时候要节省
//每一个字节的内存,虽然硬件设备可能会有很大的物理内存,但内存是给用
//户用的而不是给程序员用的(!!!!!!!!!!!!!!!!!!)
int s = stmt.executeUpdate(sql);
return s;
}
//以上实现了常用功能,还有两个通用的功能也是\"共性\"的,我们一起在这个封装类
//中实现:
public PreparedStatement getPreparedStmt(String sql) throws SQLException{
if (con == null || con.isClosed())
makeConnection();
PreparedStatement ps = con.prepareStatement(sql);
return ps;
}
public CallableStatement getCallableStmt(String sql) throws SQLException{
if (con == null || con.isClosed())
makeConnection();
PreparedStatement ps = con.prepareCall(sql);
return ps;
}
//记住:对于封装类而言预编译语句和存储过程调用应该从连结中返PreparedStatement
//和CallableStatement供调用者处理而不是返回它们的处理结果.也就是说封装类只封
//装了它们的连结过程.最后再次声明,一定要有一个close()方法供调用者调用,而且告
//诉调用者无论如果要调用这个方法:
public void close() throws SQLException{
if(conn != null && !conn.isClosed())
conn.close();
}
//这个方法最好放在ConnectionFactory中,这样可以直接调用来只测试连结.而不用再
调用子类来关闭
}
725137
2006-02-27
打赏
举报
回复
一个完整的javabean首先有一个显示的默认的构造函数
public class A
{
public A(){}
private int a;
public void setA(int a)
{
this.a=a;
}
public int getA()
{
return a;
}
}
以上就是一个完整的javabean.就创建好了。增加值的话。首先应该定义。然后增加get和set方法..
改就直接改..想把a改成b就改成b.
其它的不明白你在说什么了
wzd268
2006-02-27
打赏
举报
回复
接分
hanhongmin
2006-02-27
打赏
举报
回复
UP
zx2002027
2006-02-27
打赏
举报
回复
增删改什么东西
ssm
增删
改
例子
通过这个"ssm
增删
改
例子
",你可以深入学习到Spring的依赖注入、AOP特性,SpringMVC的请
求
处理流程,以及MyBatis的SQL映射和执行机制。这些都是Java Web开发中的基础技能,对于提升开发效率和代码质量有着重要作用。
springMVC+mybatis+ 集成的
增删
改
查
例子
在这个
例子
中,我们将深入探讨如何将SpringMVC与MyBatis集成,实现数据的
增删
改
查功能。这对于初学者来说是一个很好的起点,因为这两个框架的结合提供了一个清晰的分层架构,易于理解和维护。 首先,SpringMVC是...
springMVC +mssql+Hibernate 非注解练手
通过这个小
例子
,初学者可以深入理解SpringMVC、Hibernate和MSSQL之间的协同工作原理,掌握Web应用开发的基本流程。同时,这也是一次很好的实践机会,帮助你巩固和提升在这些关键技术上的应用能力。在实际开发中,...
扩展Mybatis,免配XML文件自动实现
增删
改
和随意查询
以前有点懒,一直没
有分
享技术新的的习惯,这次居然有心情写点东西分享出来。 作为一个从很老很老的jdk就开始码java代码的码农,对Mybatis却一直都是一无所知,一直固守在Hibernate持久层框架上。虽然这个红的发紫的...
Hibernate4 拦截器(Interceptor) 实现实体类
增删
改
的日志记录
在实际工作的工程中,这些数据都是存在表中的, 一个常见的做法是用触发器,在
增删
改
的时候,用触发器将数据写入到另一张表中去,但个人不推荐这么做,原因如下: 1. 如果有多个表,得写很多触发器。 2. 触发器与...
Web 开发
81,122
社区成员
341,744
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章