以下为我的个人理解:
view主要是jsp实现显示,一般都是通过标签控制值对象来实现这样
model就是我们平时说的业务逻辑以及值对象(javabean)值对象继承了ActionForm
control就是实现了action的java类一般来说数据库操作都是写在业务逻辑类里面的,我们把要处理的数据封装进值对象然后业务逻辑类对这些值对象进行处理
control类对上述过程进行控制,操作完成后返回相应的页面
view主要是jsp实现显示,一般都是通过标签控制值对象来实现这样
model就是我们平时说的业务逻辑以及值对象(javabean)值对象继承了ActionForm
control就是实现了action的java类一般来说数据库操作都是写在业务逻辑类里面的,我们把要处理的数据封装进值对象然后业务逻辑类对这些值对象进行处理
control类对上述过程进行控制,操作完成后返回相应的页面
解决方案 »
- myeclipse中运行struts提示The requested resource (/ch03_m1/login.action) is not available.请问是怎么回事
- activeMQ的集群 关于配置负载均衡
- action 跳转的怪异问题
- JSP中取request值的问题
- spring如何在web中加载classpath下的Content.xml文件?
- spring中aop的初学问题
- j2eesdk里的打包成一个JAR的问题
- 求一个可以正常运行的tomcat + jdbc+sql server2000 的数据源连接池的配置文件的代码。在线!!!
- 各位大虾,什么是WebService?我只懂jsp,servlet和简单的ejb,怎么用webservice做一个简单的例子
- 请教下java中Timer的用法
- 通过EJB往Oracle中插入大数据出错.请高手的帮帮忙
- EJB部署问题 急!!!
数据访问层(比如 添加信息 修改信息 更新信息 插入信息 删除信息等具体的操作过程和连接数据库的字符串)到底是应该像传统的model1那样把select from.. insert into...等直接写在jsp页面的html状态下还是先把(比如 添加信息 修改信息 更新信息 插入信息 删除信息等具体的操作过程和连接数据库的字符串)先编译为java类文件(也就是javabean)然后把数据访问层的javabean放在jsp页面的html状态下调用???这二种方法在单纯的struts程序中(也就是数据访问层不用hibernation)哪个用得普遍些啊???谢谢!
import java.sql.*;
import java.util.ArrayList;import javax.naming.*;
import javax.sql.*;public class PmsDBConnection {
protected static PmsDBConnection instance_m = null;
protected static String PMS_JNDI_NAME = "PMS_JNDI";
protected DataSource pmsDataSource_m = null;
protected Connection dbCon_m = null;
/**
*
*/
protected PmsDBConnection() throws PmsException
{
// try
// {
//
// Context initContext = new InitialContext();
// Context envCtx = (Context)initContext.lookup("java:comp/env");
// DataSource ds = (DataSource)envCtx.lookup("jdbc/oracle");
// } catch (NamingException e)
// {
// System.out.println(e.getMessage());
// throw new PmsException(10);
// }
}
protected Statement getStatement() throws PmsException
{
Context initCtx;
try
{
dbCon_m = pmsDataSource_m.getConnection();
Statement stmt = dbCon_m.createStatement();
return stmt;
}catch (SQLException e)
{
//TODO SQLException
throw new PmsException(1);
}
}
protected static PmsDBConnection getInstance() throws PmsException
{
if(null == instance_m)
{
instance_m = new PmsDBConnection();
}
return instance_m;
}
/*******************************************************************************************/
public boolean executeUpdate(String sql) throws PmsException
{
try
{
Connection conn = pmsDataSource_m.getConnection();
Statement stmt = conn.createStatement();
stmt.executeUpdate(sql);
} catch (SQLException e)
{
//TODO SQLException
throw new PmsException(1);
}
return true;
}
public boolean executeUpdate(ArrayList sqls) throws PmsException
{
for(int i = 0; i < sqls.size(); i++)
{
this.executeUpdate(sqls.get(i).toString());
}
return true;
}
public ArrayList executeQuery(String sql, String beanName) throws PmsException
{
ArrayList result = new ArrayList();
try
{
Connection conn = pmsDataSource_m.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
Class cl = Class.forName(beanName);
Field fs [] = cl.getDeclaredFields();
while(rs.next())
{
Object obj = cl.newInstance();
for(int i = 0; i < fs.length; i++)
{
fs[i].set(obj, rs.getObject(fs[i].getName()));
}
result.add(obj);
}
rs.close();
conn.close();
} catch (SQLException e)
{
//TODO SQLException
throw new PmsException(1);
} catch (ClassNotFoundException e)
{
//TODO ClassNotFoundException
throw new PmsException(2);
} catch (InstantiationException e)
{
//TODO InstantiationException
throw new PmsException(3);
} catch (IllegalAccessException e)
{
//TODO IllegalAccessException
throw new PmsException(4);
}
return result;
}
}
import java.sql.DriverManager;
import java.sql.SQLException;
public class pmsDataSource
{
public static Connection getConnection()
{
// Step1
Connection theConnection = null;
try
{
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
//Step2
String url = "jdbc:oracle:thin:@localhost:1521:DONGDONG";
String userName = "scott";
String password = "tiger";
theConnection = DriverManager.getConnection(url,userName,password);
}
catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}catch(Exception e)
{
e.printStackTrace();
}
return theConnection;
}
}
在单纯的struts程序中
数据访问层(比如 添加信息 修改信息 更新信息 插入信息 删除信息等具体的操作过程和连接数据库的字符串)到底是应该像传统的model1那样把select from.. insert into...等直接写在jsp页面的html状态下还是先把(比如 添加信息 修改信息 更新信息 插入信息 删除信息等具体的操作过程和连接数据库的字符串)先编译为java类文件(也就是javabean)然后把数据访问层的javabean放在jsp页面的html状态下调用???这二种方法在单纯的struts程序中(也就是数据访问层不用hibernation)哪个用得普遍些啊???谢谢!
其实你完全可以自己写一个数据访问层的,关于数据,无非是query,updata,creat,del,这几种操作,把他们的共同点提取出来,写成javabean.
建议一:你可以把你的数据库连接类写成一个bean,然后查询类一个bean,添加(也就是注册)写成一个bean,修改一个bean,删除bean,然后根据页面传来的不同标识在control中判断调用哪个bean。关键是你的页面是跟control发生关系,用control来判断调用那个bean进行哪种操作。
建议二:好像也有这种写法,就是每一个数据处理页面对应一个java类,但我没有这么干过
不知道我说的够不够清楚了
最后说一下,楼主的分也忒少了吧,^_^
你自己下着看看,看合你要求不: http://my.mofile.com/yyg1107
提取码:9239199852347203
当然你可以自己写一个封装了你想要使用的数据库操作!