问题是...我想把这个DataSource JNDI资源放进appliction中让服务器启动的时候就加载进去,我用的是struts框架
这么做有什么问题吗?或者说...直接在action的execute方法中通过DataSource 对象的getConnection()方法创建一个Connectioin对象传递给持久层进行数据库连接和一系列的操作吗?
 每次在Action中这么做似乎重复很多..各位大哥大姐有什么好办法介绍哈撒!你们应该有比较好的方法的啊就struts框架了,没用其他框架如Spring或者是Hibernate来做因为项目很小

解决方案 »

  1.   

    action 负责控制转发,应当另写负责业务处理、数据库连接的类:即便你不想用 Spring、hibernate,仅仅使用 struts
      

  2.   

    另外写个类..来获取JNDI进行数据库连接以及回滚释放的操作类么?
     你说的是这意思么?
      

  3.   


    那是数据持久层,这是各尽其责,系统的解耦合。
    “每次在Action中这么做似乎重复很多..” 这样写,你的这个 action 类就是“上帝类”了,无所不能了
    一旦上帝类除了问题,或者需要维护改动,系统就瘫痪了
      

  4.   

    那具体该怎么做嘛大哥,拜托你了
     我 是这么写的public abstract class _DBConnection {
    private Connection conn = null;
    private DataSource ds = null;

    public Connection getConnection()throws SQLException{
    if(ds==null){
    try{
    InitialContext ctx=new InitialContext();    
    ds=(DataSource)ctx.lookup("java:comp/env/jdbc/test");
    conn = ds.getConnection();
    }catch(NamingException e){
    throw new SQLException(e.getMessage());
    }
    }
    return conn;
    }
    这么做行吗?我的意思是写这么个类专门负责数据库连接和关闭释放资源你说可以么?
      

  5.   


    楼主多领会领会 mvc 就明白了
    大体思路:
    页面展现 jsp
    控制转发层:struts(这里就是 mvc 核心了)
    业务处理层:被 struts 调用的专门负责业务处理
    持久层:被业务处理层调用的专门和数据库打交道的一层
      

  6.   

    这个工具类我不涉及到业务逻辑层或者是Action中啊
     我仅仅就是在进行数据持久化的类中进行实例化使用这么做也不好吗?
    我觉得还可以啊...没涉及到其他层面啊
      

  7.   

    这个dataSource也静态化吗?所有东西都静态化吗?
      

  8.   


    适当的静态化,可以提高系统反应速度
    数据源又不是工具类,它是一个 jndi,用不着静态化
      

  9.   

    大哥我要散分给你了
      能知道你的 QQ号吗?我还有些问日不大清楚
      刚问到你的这问题..我更清楚MVC的意思了
       我还想请教你以些问题,不知道你是否愿意听!
      

  10.   

    假如不将dataSource定义为static的话
     public static Connection getConnection()就没办法静态化了,因为编译会出错!
      

  11.   


    我说错了,应该是把这个持久层工具类的实例变量静态化,然后调用这个实例的 getConnection() 方法
      

  12.   

    方法现在全部都是静态的了
      包括rollback commit getConnection closeAll这四个方法
    到时候调用页方便直接点..可是又出现一个问题
     创建连接后我们的数据库操作都是由PreparedStatement类来完成的
    创建这个类的实例进行数据库的增删改查操作后自己在方法中关闭它么?不关闭有什么影响吗?
      

  13.   

    大哥大姐帮帮忙啦,我 数据库连接池封装老是出问题!
    我不知道问题在什么地方,运行tomcat好好的,页面显示页好好的
    但是...一刷新就不行了,我不知道是不是封装的不够好,还是配置的问题!
    我想你们也都应该会碰到连接池封装的问题啊,大哥大姐你们怎么解决的啊
     我都折腾2天了这问题...我块疯了!