hibernate资料整理

In: JAVA|hibernate

5 十一 2006

结合《深入浅出hibernate》

ORM ( Object/Relation Mapping–对象/关系数据库映射 )

主要面向的是MVC的M层,是业务逻辑和数据逻辑关联紧密部分,也就是持久层部分

耦合:即事务之间的关联关系,解耦合:降低两者的关联关系

程序一:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class update_msg

{

   public boolean update_msg_do(String id,String amount)

{

    Statement stmt=null;
    ResultSet rts=null;
    Connection con=null;

try{

 Class.forName(“org.gjt.mm.mysql.Driver”).newInstance();

   con=DriverManager.getConnection(“localhost”,”qk31″,”test”);

  String updateSQL=”update msg set amount=’”+amount+”‘ where id=’”+id+”‘”;

      stmt=con.createStatement();
      return stmt.executeUpdate(updatesql);

 

}catch(Exception e){
    System.out.println(“连接数据库出错”+e.toString());
}finally{

 

con.close();

stmt.close();

}

 

}

}

 

程序二:增加一个配置的抽象类,方便jdbc以及用户名和数据库之类的灵活性

public abstract class config {
   public String DB_driver=”org.gjt.mm.mysql.Driver”;
   public String DB_name=”qk31″;
   public String DB_passwd=”11111″;
   public String DB_con=”jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=gbk”;
}

 

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class update_msg extends config

{

   public boolean update_msg_do(String id,String amount)

{

    Statement stmt=null;
    ResultSet rts=null;
    Connection con=null;

try{

 Class.forName(DB_driver).newInstance();

   con=DriverManager.getConnection(DB_con,DB_name,DB_passwd);

  String updateSQL=”update msg set amount=’”+amount+”‘ where id=’”+id+”‘”;

      stmt=con.createStatement();
      return stmt.executeUpdate(updatesql);

 

}catch(Exception e){
    System.out.println(“连接数据库出错”+e.toString());
}finally{

 

con.close();

stmt.close();

}

 

}

}

 

要提高并发,增加连接池之类的,代码再次重构。

通过一个class把update_msg类和config类中间增加一个类,用于对connection和closeCon进以及select和update/insert这些封装成一个类,方便要用连接池或者其他的配置时候修改一下connection方法就可以了。

结构变成:

config->db->update_msg

————————————

DAO(Data Access Object),实际包含:Data Accessor模式和Active Domain Object模式

Data Accessor模式:分离数据访问和业务逻辑访问

Active Domain Object模式:业务数据的对象化封装

xml+xsl+php+ajax_qvzTSje4topc

DAO模式把数据访问划分抽象层和实现层,分离数据使用和数据访问实现细节

DAO模式可以在数据访问部分实现统一资源调用,通过连接池以及Statement Cache ,Data Cache各种方法优化数据库访问,达到性能提升

DAO(Data Access Object)=Data Accessor(数据访问) + Active Domain Object(数据使用)

数据库一个客户的表custom,一个促销规则表promotion

customer表

 sum:int
 level:int
 id:string

————————-

promotion表:

 ratio:int
 level:int
 

Custom和CostomDAO,promotion和promotionDAO

 public class Costomer{

  private int sum,level;

  private String id;

  public String getId()

  {

    return id;

  }

  public void setId(String strId)

  {

    id=strId;

  }

  。。。。。。。。

}

 public class CustomDAO

{

   public static Costomer getCustomer(String id)

{

   Customer Customer = null;

   Connection con=null;

   ResultSet rset_customer=null;

   PreparedStatement stmt_customer=null;

   try{

      con=DBHelper.getConnection();

      stmt_costomer=con.prepareStatement(“select * from customer where id=?”);

      stmt_costomer.setString(1,id);

      rset_customer=stmt_customer.excuteQuery();

      while(rset_customer.next)

{

   customer=new customer();

   customer.setId(id);

   int level=rset_customer.getInt(1)

  。。。。。

}

  }

}

}

 

有问题联系:http://qk31.phpchina.com/

20061027_5eb2c6fd88ff199ebb6727a653864ec3
3
4

Comment Form

About this blog

QK31欢迎你的到来.

Photostream

search_extends

 

2006年十一月
« 十   十二 »
 12345
6789101112
13141516171819
20212223242526
27282930  

23
Unique
Visitors
Powered By Google Analytics

分类目录

标签云