• CRM第四天:联系人查找和保存功能实现


    目录

     

     

    CRM联系人管理模块代码实现

    1.1需求分析

    1.2联系人管理的准备工作

    1.2.1创建数据库表

    1.2.2创建实体和映射

    1.2.3修改客户的实体和映射

    1.2.4将映射添加到配置文件中

    1.2.5创建相关的类

    1.2.6配置相关的类

    1.3CRM联系人管理:显示联系人列表

    1.3.1修改left.jsp路径

    1.3.2编写Action

    1.3.3编写Service

    1.3.4编写Dao

    1.3.5配置页面路径

    1.3.6页面显示数据

    1.4CRM联系人管理:保存联系人

    1.4.1修改left.jsp链接

    1.4.2编写Action中的saveUI的方法

    1.4.3编写Service

    1.4.4编写Dao

    1.4.5配置修改跳转

    1.4.6编写页面

    1.4.7编写action

    1.4.8编写service

    1.4.9编写Dao

    1.4.10配置页面跳转:


     

    CRM联系人管理模块代码实现

    1.1需求分析

     

    联系人管理中对联系人的操作:

      • 添加联系人:保存联系人基本信息
      • 查询联系人:分页查询,条件查询
      • 修改联系人:对联系人的信息进行修改
      • 删除联系人:删除联系人

     

    1.2联系人管理的准备工作

    1.2.1创建数据库表


     

    CREATE TABLE `cst_linkman` (
    
      `lkm_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '联系人编号(主键)',
    
      `lkm_name` varchar(16) DEFAULT NULL COMMENT '联系人姓名',
    
      `lkm_cust_id` bigint(32) NOT NULL COMMENT '客户id',
    
      `lkm_gender` char(1) DEFAULT NULL COMMENT '联系人性别',
    
      `lkm_phone` varchar(16) DEFAULT NULL COMMENT '联系人办公电话',
    
      `lkm_mobile` varchar(16) DEFAULT NULL COMMENT '联系人手机',
    
      `lkm_email` varchar(64) DEFAULT NULL COMMENT '联系人邮箱',
    
      `lkm_qq` varchar(16) DEFAULT NULL COMMENT '联系人qq',
    
      `lkm_position` varchar(16) DEFAULT NULL COMMENT '联系人职位',
    
      `lkm_memo` varchar(512) DEFAULT NULL COMMENT '联系人备注',
    
      PRIMARY KEY (`lkm_id`),
    
      KEY `FK_cst_linkman_lkm_cust_id` (`lkm_cust_id`),
    
      CONSTRAINT `FK_cst_linkman_lkm_cust_id` FOREIGN KEY (`lkm_cust_id`) REFERENCES `cst_customer` (`cust_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
    
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
    
    

    1.2.2创建实体和映射

    LinkMan实体:

    /**  
    
    *   
    
    * 项目名称:CRM  
    
    * 类名称:LinkMan  
    
    * 类描述:联系人实体  
    
    * 创建人:yangyangyang  
    
    * 创建时间:2018年12月19日 下午4:47:53  
    
    * 修改人:yangyangyang  
    
    * 修改时间:2018年12月19日 下午4:47:53  
    
    * 修改备注:  
    
    * @version   
    
    *   
    
    */
    
    public class LinkMan {
    
        private Long lkm_id;
    
        private String lkm_name;
    
        private String lkm_gender;
    
        private String lkm_phone;
    
        private String lkm_mobile;
    
        private String lkm_email;
    
        private String lkm_qq;
    
        private String lkm_position;
    
        private String lkm_memo;
    
        //联系人所属客户
    
        private Customer customer;
    
         public Long getLkm_id() {
    
             return lkm_id;
    
         }
    
         public void setLkm_id(Long lkm_id) {
    
             this.lkm_id = lkm_id;
    
         }
    
         public String getLkm_name() {
    
             return lkm_name;
    
         }
    
         public void setLkm_name(String lkm_name) {
    
             this.lkm_name = lkm_name;
    
         }
    
         public String getLkm_gender() {
    
             return lkm_gender;
    
         }
    
         public void setLkm_gender(String lkm_gender) {
    
             this.lkm_gender = lkm_gender;
    
         }
    
         public String getLkm_phone() {
    
             return lkm_phone;
    
         }
    
         public void setLkm_phone(String lkm_phone) {
    
             this.lkm_phone = lkm_phone;
    
         }
    
         public String getLkm_mobile() {
    
             return lkm_mobile;
    
         }
    
         public void setLkm_mobile(String lkm_mobile) {
    
             this.lkm_mobile = lkm_mobile;
    
         }
    
         public String getLkm_email() {
    
             return lkm_email;
    
         }
    
         public void setLkm_email(String lkm_email) {
    
             this.lkm_email = lkm_email;
    
         }
    
         public String getLkm_qq() {
    
             return lkm_qq;
    
         }
    
         public void setLkm_qq(String lkm_qq) {
    
             this.lkm_qq = lkm_qq;
    
         }
    
         public String getLkm_position() {
    
             return lkm_position;
    
         }
    
         public void setLkm_position(String lkm_position) {
    
             this.lkm_position = lkm_position;
    
         }
    
         public String getLkm_memo() {
    
             return lkm_memo;
    
         }
    
         public void setLkm_memo(String lkm_memo) {
    
             this.lkm_memo = lkm_memo;
    
         }
    
         public Customer getCustomer() {
    
             return customer;
    
         }
    
         public void setCustomer(Customer customer) {
    
             this.customer = customer;
    
         }
    
       
    
    }

    LinkMan.hbm.xml映射文件:

    
    <?xml version="1.0" encoding="UTF-8"?>
    
    <!DOCTYPE hibernate-mapping PUBLIC
    
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    
    <hibernate-mapping>
    
         <class name="com.albertyy.crm.entity.LinkMan" table="cst_linkman">
    
             <id name="lkm_id" column="lkm_id">
    
                  <generator class="native"/>
    
             </id>
    
            
    
             <property name="lkm_name" column="lkm_name"/>
    
             <property name="lkm_gender" column="lkm_gender"/>
    
             <property name="lkm_phone" column="lkm_phone"/>
    
             <property name="lkm_mobile" column="lkm_mobile"/>
    
             <property name="lkm_email" column="lkm_email"/>
    
             <property name="lkm_qq" column="lkm_qq"/>
    
             <property name="lkm_position" column="lkm_position"/>
    
             <property name="lkm_memo" column="lkm_memo"/>
    
            
    
             <!--联系人所属的客户的对象  -->
    
             <many-to-one name="customer" class="com.albertyy.crm.entity.Customer" column="lkm_cust_id">
    
             </many-to-one>
    
            
    
         </class>
    
    </hibernate-mapping>

     

    1.2.3修改客户的实体和映射

    修改客户的实体:添加联系人的集合属性,并生成set和get方法。

    public class Customer {
    
         private Long cust_id;
    
         private String cust_name;
    
         /*private String cust_source;
    
         private String cust_industry;
    
         private String cust_level;*/
    
         private String cust_phone;
    
         private String cust_mobile;
    
         private String cust_image;
    
         //客户和字典的关系是多对一,所以需要在多的一方,放一的一方的对象
    
         private BaseDict baseDictSource;
    
         private BaseDict baseDictIndustry;
    
         private BaseDict baseDictLevel;
    
        
    
         //联系人的集合
    
         private Set<LinkMan> linkMans=new HashSet<LinkMan>();
    
        
    
         public Set<LinkMan> getLinkMans() {
    
             return linkMans;
    
         }
    
         public void setLinkMans(Set<LinkMan> linkMans) {
    
             this.linkMans = linkMans;
    
         }
    
    

    修改客户的映射,添加联系人的集合属性。


            

    <!-- 客户关联联系人的集合 -->
    
             <set name="linkMans">
    
                   <key column="lkm_cust_id"></key>
    
                   <one-to-many class="com.albertyy.crm.entity.LinkMan"/>
    
             </set>

     

    1.2.4将映射添加到配置文件中

    <!-- 引入映射文件 -->
    
             <property name="mappingResources">
    
                  <list>
    
                       <value>com/albertyy/crm/entity/User.hbm.xml</value>
    
                       <value>com/albertyy/crm/entity/Customer.hbm.xml</value>
    
                       <value>com/albertyy/crm/entity/BaseDict.hbm.xml</value>
    
                       <value>com/albertyy/crm/entity/LinkMan.hbm.xml</value>
    
                  </list>
    
             </property>

     

    1.2.5创建相关的类

    1.2.6配置相关的类

    <!-- ======配置联系人的相关类======= -->
    
         <!-- 配置Action -->
    
         <bean id="linkManAction" class="com.albertyy.crm.web.action.LinkManAction" scope="prototype">
    
             <property name="linkManService" ref="linkManService"/>
    
         </bean>
    
         <!-- 配置Service -->
    
         <bean id="linkManService" class="com.albertyy.crm.serviceImpl.LinkManServiceImpl">
    
             <property name="linkManDao" ref="linkManDao"/>
    
         </bean>
    
         <!-- 配置DAO -->
    
         <bean id="linkManDao" class="com.albertyy.crm.daoImpl.LinkManDaoImpl">
    
             <property name="sessionFactory" ref="sessionFactory"/>
    
         </bean>

    在struts2中配置Action

    <!-- 联系人管理Action -->
    
             <action name="linkMan_*" class="linkManAction" method="{1}">
    
                 
    
             </action>

     

    1.3CRM联系人管理:显示联系人列表

    1.3.1修改left.jsp路径

     

    <h3>联系人管理</h3>
    
             <ul>
    
                  <li><a href="${pageContext.request.contextPath }/linkman/add.jsp">新增联系人</a></li>
    
                  <li><a
    
                       href="${pageContext.request.contextPath }/linkMan_findAll.action">联系人列表</a>
    
                  </li>
    
             </ul>

    1.3.2编写Action


     

    package com.albertyy.crm.web.action;
    
    
    
    import org.hibernate.criterion.DetachedCriteria;
    
    
    
    import com.albertyy.crm.entity.LinkMan;
    
    import com.albertyy.crm.service.LinkManService;
    
    import com.albertyy.crm.utils.PageBean;
    
    import com.opensymphony.xwork2.ActionContext;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    import com.opensymphony.xwork2.ModelDriven;
    
    
    
    /**  
    
    *   
    
    * 项目名称:CRM  
    
    * 类名称:LinkManAction  
    
    * 类描述:  联系人管理Action
    
    * 创建人:yangyangyang  
    
    * 创建时间:2018年12月19日 下午5:29:26  
    
    * 修改人:yangyangyang  
    
    * 修改时间:2018年12月19日 下午5:29:26  
    
    * 修改备注:  
    
    * @version   
    
    *   
    
    */
    
    
    
    public class LinkManAction extends ActionSupport implements ModelDriven<LinkMan> {
    
        //模型驱动对象
    
         LinkMan linkMan=new LinkMan();
    
         @Override
    
         public LinkMan getModel() {
    
             return linkMan;
    
         }
    
         //注入Service
    
         private LinkManService linkManService;
    
         public void setLinkManService(LinkManService linkManService) {
    
             this.linkManService = linkManService;
    
         }
    
       
    
         //接收当前页数和每页显示记录数
    
         private Integer page=1;
    
         private Integer pageSize=5;
    
         public void setPage(Integer page) {
    
             if(page==null){
    
                  page=1;
    
             }
    
             this.page = page;
    
         }
    
         public void setPageSize(Integer pageSize) {
    
             if(pageSize==null){
    
                  pageSize=5;
    
             }
    
             this.pageSize = pageSize;
    
         }
    
        
    
        
    
         //查询所有联系人的方法
    
         public String findAll(){
    
             DetachedCriteria detachedCriteria=DetachedCriteria.forClass(LinkMan.class);
    
             //设置条件
    
            
    
             //调用业务层查询
    
             PageBean<LinkMan> pageBean=linkManService.findByPage(detachedCriteria,page,pageSize);
    
             ActionContext.getContext().getValueStack().push(pageBean);
    
            
    
             return "findAll";
    
         }
    
    }
    
    
    
    

     

    1.3.3编写Service

      //注入Dao
    
         private LinkManDao linkManDao;
    
    
    
         public void setLinkManDao(LinkManDao linkManDao) {
    
             this.linkManDao = linkManDao;
    
         }
    
       
    
         //业务层分页查询联系人
    
         @Override
    
         public PageBean<LinkMan> findByPage(DetachedCriteria detachedCriteria, Integer page, Integer pageSize) {
    
             PageBean<LinkMan> pageBean=new PageBean<LinkMan>();
    
             //设置当前页数
    
             pageBean.setPage(page);
    
             //设置每页显示记录数
    
             pageBean.setPageSize(pageSize);
    
             //设置总记录数
    
             int totalCount=linkManDao.findByCount(detachedCriteria);
    
             pageBean.setTotalCount(totalCount);
    
             //设置总页数
    
             double tc=totalCount;
    
             Double num=Math.ceil(tc/pageSize);
    
             pageBean.setTotalPage(num.intValue());
    
             //每页显示数据的集合
    
             Integer begin=(page-1)*pageSize;
    
             List<LinkMan> list=linkManDao.findByPage(detachedCriteria,begin,pageSize);
    
             pageBean.setList(list);
    
             return pageBean;
    
         }
    
     

    1.3.4编写Dao

    //Dao层统计联系人总记录数
    
         @Override
    
         public int findByCount(DetachedCriteria detachedCriteria) {
    
             detachedCriteria.setProjection(Projections.rowCount());
    
             List<Long> list=(List<Long>) this.getHibernateTemplate().findByCriteria(detachedCriteria);
    
             if(list.size()>0){
    
                  return list.get(0).intValue();
    
             }
    
             return 0;
    
         }
    
        //Dao层分页查询联系人
    
         @Override
    
         public List<LinkMan> findByPage(DetachedCriteria detachedCriteria, Integer begin, Integer pageSize) {
    
             detachedCriteria.setProjection(null);
    
             return (List<LinkMan>) this.getHibernateTemplate().findByCriteria(detachedCriteria, begin, pageSize);
    
         }
    
    

     

    1.3.5配置页面路径

    <!-- 联系人管理Action -->
    
             <action name="linkMan_*" class="linkManAction" method="{1}">
    
                  <result name="findAll">/linkman/list.jsp</result>
    
             </action>

    1.3.6页面显示数据

    <table width="100%" border="0" cellpadding="0" cellspacing="0"
    
                                     class="list_table">
    
                                     <tr>
    
                                         <th width="100">联系人名称</th>
    
                                         <th width="100">性别</th>
    
                                         <th width="100">办公电话</th>
    
                                         <th width="100">手机</th>
    
                                         <th width="100">客户姓名</th>
    
                                         <th width="100">email</th>
    
                                         <th width="100">QQ</th>
    
                                         <th width="100">职位</th>
    
                                         <th width="100">备注</th>
    
                                         <th width="180">操作</th>
    
                                     </tr>
    
                                     <s:iterator value="list">
    
    
    
                                         <tr class="tr">
    
                                              <td><s:property value="lkm_name" /></td>
    
                                              <td><s:if test="lkm_gender==1">男</s:if><s:elseif test="lkm_gender==2">女</s:elseif></td>
    
                                              <td><s:property value="lkm_phone" /></td>
    
                                              <td><s:property value="lkm_mobile" /></td>
    
                                              <td><s:property value="customer.cust_name" /></td>
    
                                              <td><s:property value="lkm_email" /></td>
    
                                              <td><s:property value="lkm_qq" /></td>
    
                                              <td><s:property value="lkm_position" /></td>
    
                                              <td><s:property value="lkm_memo" /></td>
    
                                              <td><input type="button" name="button"
    
                                                   class="btn btn82 btn_add" id="modifyBtn"
    
                                                   onclick="toUpdate('<s:property value="lkm_id"/>')" value="修改">
    
                                                   <input type="button" name="button" class="btn btn82 btn_del"
    
                                                   onclick="toDelete('<s:property value="lkm_id"/>')" value="删除"></td>
    
    
    
                                         </tr>
    
                                     </s:iterator>
    
    
    
                                </table>
    
                                <div class="page mt10">
    
    
    
                                     <div class="pagination">
    
                                         <ul>
    
                                              <li class="disabled"><span> 共<s:property
    
                                                            value="totalCount" />条记录, 共 <s:property value="totalPage" />页
    
                                              </span></li>
    
                                              <li><span> 每页显示记录数: <select name="pageSize"
    
                                                       onchange="to_page()">
    
                                                            <option value="5" <s:if test="pageSize==5">selected</s:if>>5条</option>
    
                                                            <option value="10" <s:if test="pageSize==10">selected</s:if>>10条</option>
    
                                                            <option value="20" <s:if test="pageSize==20">selected</s:if>>20条</option>
    
                                                   </select>
    
    
    
                                              </span></li>
    
    
    
    
    
                                              <s:if test="page!=1">
    
                                                   <li><a href="javascript:to_page(1)">首页</a></li>
    
                                                   <li><a
    
                                                       href="javascript:to_page(<s:property value="page-1" />)">上一页</a></li>
    
                                              </s:if>
    
    
    
                                              <s:iterator var="i" begin="1" end="totalPage">
    
                                                   <s:if test="#i==page">
    
                                                       <li class="active"><span><s:property value="#i" />
    
                                                       </span></li>
    
                                                   </s:if>
    
                                                   <s:else>
    
                                                       <li><a
    
                                                            href="javascript:to_page(<s:property value="#i" />)"><s:property
    
                                                                     value="#i" /></a></li>
    
                                                   </s:else>
    
                                              </s:iterator>
    
    
    
                                              <s:if test="page!=totalPage">
    
                                                   <li><a
    
                                                       href="javascript:to_page(<s:property value="page+1" />)">下一页</a></li>
    
                                                   <li><a
    
                                                       href="javascript:to_page(<s:property value="totalPage" />)">末页</a></li>
    
                                              </s:if>
    
                                              <li>到第 <input class="input-text lh25" type="text"
    
                                                   id="page" name="page" size="2" height="10px" />页 <input
    
                                                   class="ext_btn" type="button" value="GO" onclick="to_page()" />
    
    
    
                                              </li>
    
                                         </ul>
    
                                     </div>
    
                                </div>

     

    1.4CRM联系人管理:保存联系人

    1.4.1修改left.jsp链接

    <h3>联系人管理</h3>
    
             <ul>
    
                  <li><a href="${pageContext.request.contextPath }/linkMan_saveUI.action">新增联系人</a></li>
    
                  <li><a
    
                       href="${pageContext.request.contextPath }/linkMan_findAll.action">联系人列表</a>
    
                  </li>
    
             </ul>
    
    

    1.4.2编写Action中的saveUI的方法

    //跳转到添加页面的方法
    
         public String saveUI(){
    
             //查询客户
    
             List<Customer> list=customerService.findAll();
    
             ActionContext.getContext().getValueStack().set("list", list);
    
             return "saveUI";
    
         }

    1.4.3编写Service

    //查询所有客户
    
         @Override
    
         public List<Customer> findAll() {
    
             return customerDao.findAll();
    
         }

    1.4.4编写Dao

    //查询所有客户
    
         @Override
    
         public List<Customer> findAll() {
    
             return (List<Customer>) this.getHibernateTemplate().find("from Customer");
    
         }

    1.4.5配置修改跳转

    <!-- 联系人管理Action -->
    
             <action name="linkMan_*" class="linkManAction" method="{1}">
    
                  <result name="findAll">/linkman/list.jsp</result>
    
                  <result name="saveUI">/linkman/add.jsp</result>
    
                  <result name="saveSuccess">/linkman/list.jsp</result>
    
             </action>
    
    

     

    1.4.6编写页面

     

    <div class="box_border">
    
                                     <div class="box_top">
    
                                         <b class="pl15">添加联系人</b>
    
                                     </div>
    
                                     <div class="box_center">
    
                                         <form
    
                                              action="${pageContext.request.contextPath }/linkMan_save.action"
    
                                              method="post" class="jqtransform">
    
                                              <table class="form_table pt15 pb15" width="100%" border="0"
    
                                                   cellpadding="0" cellspacing="0">
    
                                                   <tr>
    
                                                       <td class="td_right">所属客户:</td>
    
                                                       <td class=""><span class="fl">
    
                                                                 <div class="select_border">
    
                                                                     <div class="select_containers ">
    
                                                                          <select name="customer.cust_id" id="cust_source"
    
                                                                               class="select">
    
                                                                               <option value="">请选择</option>
    
                                                                               <s:iterator value="list">
    
                                                                                   <option value='<s:property value="cust_id"/>'><s:property
    
                                                                                             value="cust_name" /></option>
    
                                                                               </s:iterator>
    
                                                                          </select>
    
                                                                     </div>
    
                                                                 </div>
    
                                                       </span></td>
    
                                                   </tr>
    
                                                  
    
                                                   <tr>
    
                                                       <td class="td_right">联系人名称:</td>
    
                                                       <td class=""><input type="text" name="lkm_name"
    
                                                            class="input-text lh30"  required="required"></td>
    
    
    
                                                   </tr>
    
                                                   <tr>
    
                                                       <td class="td_right">联系人性别:</td>
    
                                                       <td class=""><input type="radio" name="lkm_gender" value="1">
    
                                                            男 <input type="radio" name="lkm_gender" value="2">女</td>
    
                                                   </tr>
    
                                                   <tr>
    
                                                       <td class="td_right">联系人电话:</td>
    
                                                       <td class=""><input type="number" name="lkm_phone"
    
                                                            class="input-text lh30" ></td>
    
    
    
                                                  </tr>
    
                                                   <tr>
    
                                                       <td class="td_right">联系人手机:</td>
    
                                                       <td class=""><input type="number" name="lkm_mobile"
    
                                                            class="input-text lh30" ></td>
    
    
    
                                                   </tr>
    
                                                   <tr>
    
                                                       <td class="td_right">联系人邮箱:</td>
    
                                                        <td class=""><input type="email" name="lkm_email"
    
                                                            class="input-text lh30" ></td>
    
    
    
                                                   </tr>
    
                                                   <tr>
    
                                                       <td class="td_right">联系人QQ:</td>
    
                                                       <td class=""><input type="number" name="lkm_qq"
    
                                                            class="input-text lh30" ></td>
    
    
    
                                                   </tr>
    
                                                   <tr>
    
                                                       <td class="td_right">联系人职位:</td>
    
                                                       <td class=""><input type="text" name="lkm_position"
    
                                                            class="input-text lh30" ></td>
    
    
    
                                                   </tr>
    
                                                   <tr>
    
                                                       <td class="td_right">联系人备注:</td>
    
                                                       <td class=""><textarea name="lkm_memo" id="" cols="30" rows="10"
    
                                                                 class="textarea" style=" 362px; height: 93px;"></textarea>
    
                                                       </td>
    
                                                   </tr>
    
    
    
    
    
    
    
    
    
                                                   <tr>
    
                                                       <td class="td_right">&nbsp;</td>
    
                                                       <td class=""><input type="submit" name="button"
    
                                                            class="btn btn82 btn_save2" value="保存"> <input
    
                                                            type="reset" name="button" class="btn btn82 btn_res"
    
                                                            value="重置"></td>
    
                                                   </tr>
    
                                              </table>
    
                                         </form>
    
                                     </div>
    
                                </div>
    
    

     

    1.4.7编写action

    //保存联系人的方法
    
         public String save(){
    
             //调用业务层
    
             linkManService.save(linkMan);
    
             //跳转到查询页面
    
             findAll();
    
             return "saveSuccess";
    
         }

    1.4.8编写service

    //业务层保存联系人方法
    
         @Override
    
         public void save(LinkMan linkMan) {
    
             linkManDao.save(linkMan);
    
         }

     

    1.4.9编写Dao

     

    //dao层保存联系人
    
         @Override
    
         public void save(LinkMan linkMan) {
    
             this.getHibernateTemplate().save(linkMan);
    
         }
    
    

     

    1.4.10配置页面跳转:

    <!-- 联系人管理Action -->
    
             <action name="linkMan_*" class="linkManAction" method="{1}">
    
                  <result name="findAll">/linkman/list.jsp</result>
    
                  <result name="saveUI">/linkman/add.jsp</result>
    
                  <result name="saveSuccess">/linkman/list.jsp</result>
    
             </action>

     

  • 相关阅读:
    Corosync+Pacemaker+DRBD+Mysql高可用HA配置
    高可用集群corosync+pacemaker之crmsh使用
    nfs+DRBD+corosync+pacemaker 实现高可用(ha)的nfs集群
    nginx匹配
    2011年的最后一篇
    Python自然语言处理学习笔记(66):7.7 小结
    Python自然语言处理学习笔记(65):7.6 关系抽取
    Python自然语言处理学习笔记(64): 7.5 命名实体识别
    Python自然语言处理学习笔记(67):7.8 扩展阅读
    Python自然语言处理学习笔记(68):7.9 练习
  • 原文地址:https://www.cnblogs.com/yangxianyang/p/13675632.html
Copyright © 2020-2023  润新知