发表于: 2020-01-08 20:58:21

1 430


今天做了什么:

学习写dal框架


收获

步骤:

1.配置group.xml

(配置一组数据源,这些数据源的配置各不相同)

<?xml version="1.0" encoding="UTF-8"?>
<root>
       <datasources>
               <ds name="gemanticWeibo"
                      driverClassName="com.mysql.jdbc.Driver"
                      url="jdbc:mysql://gemantic.weibo.db:3306/weibo_db?defaultBatchValue=1000&amp;characterEncoding=utf8"
                      username="root"
                      password="123456"
                      maxActive="50"
                      maxIdle="50"
                      maxWait="10"
                      check="true" />

               <ds name="weiboDev"
                      driverClassName="com.mysql.jdbc.Driver"
                      url="jdbc:mysql://gemantic.weibo.db:3307/weibo_db?defaultBatchValue=1000&amp;characterEncoding=utf8"
                      username="weibo"
                      password="weibo_sy31"
                      maxActive="50"
                      maxIdle="50"
                      maxWait="10"
                      check="true" /> 

               <ds name="idCenterDS"
                      driverClassName="com.mysql.jdbc.Driver"
                      url="jdbc:mysql://gemantic.weibo.db:3306/weibo_db?defaultBatchValue=1000"
                      username="root"
                      password="123456"
                      maxActive=""
                      maxIdle=""
                      maxWait=""
                      check="true" /> 
       </datasources>
       <groups>
               <group name="gemanticWeibo" master="gemanticWeibo" /> 
               <group name="weiboDev" master="weiboDev" /> 
       </groups>
</root>

2.配置daoConfig.xml

(配置***_dao.xml,配置dbStrategy. pattern value不懂是什么属性)

<?xml version="1.0" encoding="UTF-8"?>
<dal>
       <list>

               <config>
                       <path>companyEvent_dao.xml</path>
               </config>

       </list>

       <default>
               <dbStrategy name=""
                       clasz="com.gemantic.dal.route.strategy.DefaultStrategy">
                       <pattern value="[0-9]$" group="g1" />
               </dbStrategy>
               <listenerClass className="" />
               <idCenterDS ds="idCenterDS" />
       </default>
</dal>

3.配置sql

(指定对象,然后配置相应sql,类似于mybatis的mapper.xml)

<?xml version="1.0" encoding="UTF-8"?>
<dal>
       <route>
               <object name="com.gemantic.gemantic.weibo.model.CompanyEvent"
                       listenerClass="" strategyProperty="">

                       <list name="getEidsByCompanyUri" sqlitem="select eid from company_event where company_uri = ?"
                               keyProperty="companyUri" valueProperty="eid" keyColumn="company_uri" />

                       <dbStrategy name="mutiDS"
                               clasz="com.gemantic.dal.route.strategy.DefaultStrategy">
                               <pattern value="[0-9]$" group="gemanticWeibo" />
                       </dbStrategy>

               </object>
       </route>
</dal>

4.配置memcached_client.xml

<region name="com.gemantic.labs.killer.model.MineTrain"
               listenerClass="com.gemantic.dal.cache.listener.DefaultListenerImpl"
               strategyClass="com.gemantic.memcached.route.strategy.DefaultStrategy">

       <keyPattern value="[0-9]$" datasource="default" />
</region>

<region name="getUsersIdByOpenID"
               listenerClass="com.gemantic.dal.cache.listener.DefaultListenerImpl"
               strategyClass="com.gemantic.memcached.route.strategy.DefaultStrategy">
       <keyPattern value="[0-9]$" datasource="default" />
</region>

5.配置model映射关系

(指定实体类与数据库表的映射关系.)

public class Video implements Serializable {
   public Long id;
   public String title;
   public String videoImage;
   public Long grade;
   public Long subject;
   public Long classification;
   public Integer numberOfLikes;
   public Integer numberOfCollections;
   public String videoUrl;
   public String content;
   public String introduction;
   public Long status;
   public Long collectAt;
   public Long createAt;
   public Long updateAt;
   public String createBy;
   public String updateBy;

   @Id
   @GeneratedValue(strategy = GenerationType.AUTO)
   @Column(name = "id")
   public Long getId() {
       return id;
   }

   public void setId(Long id) {
       this.id = id;
   }

   @Column(name = "title")
   public String getTitle() {
       return title;
   }

   public void setTitle(String title) {
       this.title = title;
   }

   @Column(name = "video_image")
   public String getVideoImage() {
       return videoImage;
   }

   public void setVideoImage(String videoImage) {
       this.videoImage = videoImage;
   }

   @Column(name = "grade")
   public Long getGrade() {
       return grade;
   }

   public void setGrade(Long grade) {
       this.grade = grade;
   }

   @Column(name = "subject")
   public Long getSubject() {
       return subject;
   }

   public void setSubject(Long subject) {
       this.subject = subject;
   }

   @Column(name = "classification")
   public Long getClassification() {
       return classification;
   }

   public void setClassification(Long classification) {
       this.classification = classification;
   }

   @Column(name = "number_of_likes")
   public Integer getNumberOfLikes() {
       return numberOfLikes;
   }

   public void setNumberOfLikes(Integer numberOfLikes) {
       this.numberOfLikes = numberOfLikes;
   }

   @Column(name = "number_of_collections")
   public Integer getNumberOfCollections() {
       return numberOfCollections;
   }

   public void setNumberOfCollections(Integer numberOfCollections) {
       this.numberOfCollections = numberOfCollections;
   }

   @Column(name = "video_url")
   public String getVideoUrl() {
       return videoUrl;
   }

   public void setVideoUrl(String videoUrl) {
       this.videoUrl = videoUrl;
   }

   @Column(name = "content")
   public String getContent() {
       return content;
   }

   public void setContent(String content) {
       this.content = content;
   }

   @Column(name = "introduction")
   public String getIntroduction() {
       return introduction;
   }

   public void setIntroduction(String introduction) {
       this.introduction = introduction;
   }

   @Column(name = "status")
   public Long getStatus() {
       return status;
   }

   public void setStatus(Long status) {
       this.status = status;
   }

   @Column(name = "collect_at")
   public Long getCollectAt() {
       return collectAt;
   }

   public void setCollectAt(Long collectAt) {
       this.collectAt = collectAt;
   }

   @Column(name = "create_at")
   public Long getCreateAt() {
       return createAt;
   }

   public void setCreateAt(Long createAt) {
       this.createAt = createAt;
   }

   @Column(name = "update_at")
   public Long getUpdateAt() {
       return updateAt;
   }

   public void setUpdateAt(Long updateAt) {
       this.updateAt = updateAt;
   }

   @Column(name = "create_by")
   public String getCreateBy() {
       return createBy;
   }

   public void setCreateBy(String createBy) {
       this.createBy = createBy;
   }

   @Column(name = "update_by")
   public String getUpdateBy() {
       return updateBy;
   }

   public void setUpdateBy(String updateBy) {
       this.updateBy = updateBy;
   }

   @Override
   public String toString() {
       return "Video{" +
               "id=" + id +
               ", title='" + title + '\'' +
               ", videoImage='" + videoImage + '\'' +
               ", grade=" + grade +
               ", subject=" + subject +
               ", classification=" + classification +
               ", numberOfLikes=" + numberOfLikes +
               ", numberOfCollections=" + numberOfCollections +
               ", videoUrl='" + videoUrl + '\'' +
               ", content='" + content + '\'' +
               ", introduction='" + introduction + '\'' +
               ", status=" + status +
               ", collectAt=" + collectAt +
               ", createAt=" + createAt +
               ", updateAt=" + updateAt +
               ", createBy='" + createBy + '\'' +
               ", updateBy='" + updateBy + '\'' +
               '}';
   }
}

问题

明天的计划


返回列表 返回列表
评论

    分享到