当前位置: 技术问答>实体Bean问题请教!
iis7站长之家
要用bean吗?请教高手!
来源: 互联网 发布时间:2015-10-19
本文导语: 本人想在JSP页面中进行添加,删除,保存,查找等操作,但必须遵循MVC的模式,在网上根本没有这方面的资料,是否需要在bean 中单独做个例如adduser,deluser之类的方法呢,还是就用现成的executeinsert,executeUpdate呢?归跟到底是不...
本人想在JSP页面中进行添加,删除,保存,查找等操作,但必须遵循MVC的模式,在网上根本没有这方面的资料,是否需要在bean 中单独做个例如adduser,deluser之类的方法呢,还是就用现成的executeinsert,executeUpdate呢?归跟到底是不明白整体的运做,请指教!
我的E_mail是: hnxhzzm@163.net
|
应该为添加、修改、删除和查询分别做一个bean,一共四个。然后再做四个页面,以查询页面为主体,在查询页面上以弹出窗口的方式链接到添加、修改、删除记录的页面。每个页面调用自己的bean,完成该操作。再建表的时候加一个唯一的字段做PK,作为每条记录的唯一id,页面之间只要传递这个id就可以了
|
最好为每个页面做一个单独的bean,其中包括对数据库的所有操作。例如:添加,修改。!并且最好为每个操作写个方法,这样利于维护!当要修改一些情况的时候,只需要修改相应的bean的相应方法!
mvc,我喜欢!:)
mvc,我喜欢!:)
|
建议用class
可以写4个方法(增删改查)
在JSP里IMPORT一下就可以了
更易维护
可以写4个方法(增删改查)
在JSP里IMPORT一下就可以了
更易维护
|
我是这样处理的
bean的种类分三种:
第一种:负责操作数据库,只有一个DBOperate.java,里面包括加载驱动、建立链接等,对外提供两个方法ResultSet executeQuery(String sql)和boolean executeUpdate(String sql);
第二种:描述数据结构的bean,基本上是每个jsp页面/数据库表一个bean,其属性都是表单/数据库表中的字段,方法全是set(),get(),如对于用户注册,可以写一个UserInfo.java,属性包括user_name,user_id等,方法包括getUserName(),setUserName,getUserID(),setUserID()等
第三种:负责控制的bean,应该是一个对象一个bean,如对于用户你可以建立一个User.java,里面全是方法,如boolean addUser(UserInfo user_info),boolean deleteUser(int user_id),UserInfo queryUser(int user_id)等
说明:这样设计接口比较清晰,易维护。
第一种bean只负责数据库接口,如果数据库链接发生变化,那么修改这部分就行了。
第二种bean只描述数据结构,一个表单或数据库表定了,该bean也就确定了,它只负责把表单提交的数据存放到它的一个实例中,以及通过第三种bean从数据库中获得一个实例
第三种bean只负责操作,是真正需要我们编写的地方,它需要导入前面两种bean,通过调用第一种bean的方法,在第二种bean与数据库之间进行各种数据传递或操作
jsp页面里只需使用与本页相关的第二种bean,以及第三种bean中与本页相关的方法,仍以用户注册为例:
首先生成一个实例
再将数据存放到user_info中
user_info.setUserName(request.getParameter("user_name"));
user_info.setUserEmail(request.getParameter("user_email"));
...
再将user_info存到数据库
user.addUser(user_info);
这样虽然数据多了几次周转,但结构清晰,这也是我从别人那里吸取经验总结出来的,欢迎大家讨论
bean的种类分三种:
第一种:负责操作数据库,只有一个DBOperate.java,里面包括加载驱动、建立链接等,对外提供两个方法ResultSet executeQuery(String sql)和boolean executeUpdate(String sql);
第二种:描述数据结构的bean,基本上是每个jsp页面/数据库表一个bean,其属性都是表单/数据库表中的字段,方法全是set(),get(),如对于用户注册,可以写一个UserInfo.java,属性包括user_name,user_id等,方法包括getUserName(),setUserName,getUserID(),setUserID()等
第三种:负责控制的bean,应该是一个对象一个bean,如对于用户你可以建立一个User.java,里面全是方法,如boolean addUser(UserInfo user_info),boolean deleteUser(int user_id),UserInfo queryUser(int user_id)等
说明:这样设计接口比较清晰,易维护。
第一种bean只负责数据库接口,如果数据库链接发生变化,那么修改这部分就行了。
第二种bean只描述数据结构,一个表单或数据库表定了,该bean也就确定了,它只负责把表单提交的数据存放到它的一个实例中,以及通过第三种bean从数据库中获得一个实例
第三种bean只负责操作,是真正需要我们编写的地方,它需要导入前面两种bean,通过调用第一种bean的方法,在第二种bean与数据库之间进行各种数据传递或操作
jsp页面里只需使用与本页相关的第二种bean,以及第三种bean中与本页相关的方法,仍以用户注册为例:
首先生成一个实例
再将数据存放到user_info中
user_info.setUserName(request.getParameter("user_name"));
user_info.setUserEmail(request.getParameter("user_email"));
...
再将user_info存到数据库
user.addUser(user_info);
这样虽然数据多了几次周转,但结构清晰,这也是我从别人那里吸取经验总结出来的,欢迎大家讨论
|
只需要用一个bean,里面做两个方法:
增、删、改用一个:
public void executeUpdate(String sql) {
try {
conn = DriverManager.getConnection("jdbc:odbc:netsale","netsale","123");
Statement stmt = conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_SENSITIVE
,java.sql.ResultSet.CONCUR_UPDATABLE);
stmt.executeUpdate(sql);
stmt.close();
conn.close();
}
catch(SQLException ex) {
System.err.println("aq.executeUpdate: " + ex.getMessage());
}
}
查询用另一个:
public ResultSet executeQuery(String sql){
rs=null;
try{
conn=DriverManager.getConnection( "jdbc:odbc:netsale","netsale","123");
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}
catch(SQLException ex){
System.err.println("DBBean.excuteQuery:"+ex.getMessage());
}
return rs;
}
在JSP里直接调用就可以了!
增、删、改用一个:
public void executeUpdate(String sql) {
try {
conn = DriverManager.getConnection("jdbc:odbc:netsale","netsale","123");
Statement stmt = conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_SENSITIVE
,java.sql.ResultSet.CONCUR_UPDATABLE);
stmt.executeUpdate(sql);
stmt.close();
conn.close();
}
catch(SQLException ex) {
System.err.println("aq.executeUpdate: " + ex.getMessage());
}
}
查询用另一个:
public ResultSet executeQuery(String sql){
rs=null;
try{
conn=DriverManager.getConnection( "jdbc:odbc:netsale","netsale","123");
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}
catch(SQLException ex){
System.err.println("DBBean.excuteQuery:"+ex.getMessage());
}
return rs;
}
在JSP里直接调用就可以了!