`

spring mvc + ibatis + Oracle + ajax 轻量级架构搭建及详解

 
阅读更多

       现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了。不过要想灵活运用Spring MVC来应对大多数的Web开发,就必须要掌握它的配置及原理。

一、下载spring源包
spring地址:
http://www.springsource.org/download
我下的是spring-framework-3.1.0.RELEASE-with-docs.zip
下载依赖包:spring-framework-3.0.5.RELEASE-dependencies.zip
注意官网上3.0.3版本以后同版本依赖包不提供下载

二、导入所需jar包
引入dist目录下除了下面三个其余所有包
org.springframework.web.struts-3.1.0.RELEASE.jar
org.springframework.spring-library-3.1.0.RELEASE.libd
org.springframework.web.portlet-3.1.0.RELEASE.jar
引入依赖包下com.springsource.org.apache.commons.logging-1.1.1.jar及com.springsource.org.aopalliance-1.0.0.jar

三、spring框架配置

1、web.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<!--配置Sring MVC的核心控制器DispatcherServlet -->
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>  
	        <param-name>contextConfigLocation</param-name>  
	        <param-value>classpath*:/spring-*.xml</param-value>  
    	</init-param>  
    	<load-on-startup>1</load-on-startup>
    </servlet>
    <!-- 为DispatcherServlet建立映射 -->
    <servlet-mapping>
         <servlet-name>dispatcherServlet</servlet-name>
         <url-pattern>*.html</url-pattern>
    </servlet-mapping>
    
	<context-param> 
	  <param-name>log4jConfigLocation</param-name> 
	  <param-value>classpath:/log4j.properties</param-value> 
	</context-param> 

	<!-- 配置log4j.xml监听器 --> 
	<listener> 
	<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
	</listener> 

	<!-- 解决工程编码过滤器 -->  
	<filter>  
        <filter-name>encodingFilter</filter-name>  
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
        <init-param>  
            <param-name>encoding</param-name>  
            <param-value>UTF-8</param-value>  
        </init-param>  
    </filter>  
    <filter-mapping>  
        <filter-name>encodingFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>
    
  <display-name></display-name>	
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 2、应用上下文配置

spring-servlet.xml即配置用于开启基于注解的springMVC功能,照web.xml中设定,路径为WEB-INF下
写道
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

<!-- 加载config.properties 文件-->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:config.properties</value>
</property>
</bean>

<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/jsp/" />
<property name="suffix" value=".jsp" />
</bean>

<!-- 配置数据源
<bean id="userDao" class="com.examp.dao.UserDao">
<property name="dataSource" ref="dataSource"/>
</bean>-->

<!-- 配置数据源 -->
<bean id="userDao" class="com.examp.dao.impl.UserDaoImpl">
<property name="sqlMapClient" ref="sqlMapClient"></property>
</bean>

<!-- 配置spring 加载sqlmap文件-->
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>classpath:/sqlmap-config.xml</value>
</property>
<property name="dataSource" ref="dataSource"/>
</bean>

<!-- 定义视图 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass">
<value>org.springframework.web.servlet.view.InternalResourceView</value>
</property>
</bean>

<!-- 定义事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>

<bean id="baseTransactionProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
abstract="true">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="insertOrUpdate*">PROPAGATION_REQUIRED</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
</beans>
 3、数据源连接配制 spring-data.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xmlns:p="http://www.springframework.org/schema/p"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

	<!-- 连接数据库配置 -->  
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">  
       <property name="driverClassName">  
           <value>${db.dirverClass}</value>  
       </property>  
       <property name="url">  
           <value>${db.url}</value>  
       </property>  
       <property name="username">  
           <value>${db.username}</value>  
       </property>  
       <property name="password">  
           <value>${db.password}</value>  
       </property>  
    </bean>
</beans>
 4、业务逻辑控制层配置 spring-action.xml
<?xml version="1.0" encoding="UTF-8"?>  
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xmlns:p="http://www.springframework.org/schema/p"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
	
	<!-- 定义映射 -->
    <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="helloWorld.html">helloWorldAction</prop>
                <prop key="userAction.html">userAction</prop>
            </props>
        </property>
    </bean>
        
    <!-- 定义控制器 -->
    <bean id="helloWorldAction" class="com.examp.ch23.HelloWorldAction">
        <property name="helloWorld">
            <value>${helloWorld}</value>
        </property>
        <property name="helloWorld1">
            <value>${name}</value>
        </property>
        <property name="viewPage">
            <value>${toUrl}</value>
        </property>
    </bean>
    
    <!-- 根据请求参数决定方法 userAction.html?action=toDetail -->  
    <bean id="userAction" class="com.examp.ch23.UserAction">
    	<property name="userDao" ref="userDao"></property>
    	<!-- <property name="dao" ref="userDao"></property> -->
       	<property name="methodNameResolver">  
            <bean class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">  
            <!-- 指定参数名为action -->  
                <property name="paramName" value="action" />  
            </bean>  
        </property>
    </bean>    
</beans>
 5、编写DAO接口层
package com.examp.dao;

import java.util.List;

import com.examp.po.UserPO;

/**
 * @author Administrator
 *
 */
public interface IUserDao {

	public List<UserPO> getAllUsers();
	
	public UserPO getUserByID(UserPO user);
	
	public void addUser(UserPO user);
}
 
package com.examp.dao.impl;

import java.util.List;

import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;

import com.examp.dao.IUserDao;
import com.examp.po.UserPO;

public class UserDaoImpl extends SqlMapClientDaoSupport implements IUserDao{

	public List<UserPO> getAllUsers() {
		return this.getSqlMapClientTemplate().queryForList("user.GET-ALL-USER");
	}

	public UserPO getUserByID(UserPO user) {
		return (UserPO) this.getSqlMapClientTemplate().queryForObject("user.GET-USER-BY-ID",user);
	}

	public void addUser(UserPO user) {
		//this.getSqlMapClientTemplate().insert("user.ADD-USER", user);
	}
}
 6、编写业务实体类PO UserPO.java
package com.examp.po;

import java.io.Serializable;

public class UserPO implements Serializable {
	
	private String id;
	private String name;
	private String password;
	private int type;
	private String email;
	private String phone;
	private int sex;
	private String qq;
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public int getType() {
		return type;
	}
	public void setType(int type) {
		this.type = type;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	public int getSex() {
		return sex;
	}
	public void setSex(int sex) {
		this.sex = sex;
	}
	public String getQq() {
		return qq;
	}
	public void setQq(String qq) {
		this.qq = qq;
	}
}
 7、编写控制层 Action 
package com.examp.ch23;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import net.sf.json.JSONObject;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
import org.springframework.web.util.WebUtils;

import com.examp.dao.IUserDao;
import com.examp.dao.UserDao;
import com.examp.po.UserPO;

//public class UserAction implements Controller{
public class UserAction extends MultiActionController{
	private static final Log logger = LogFactory.getLog(UserAction.class);  
	private UserDao dao; 
	private IUserDao userDao;
	private UserPO userPO;
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public ModelAndView list(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		logger.info("UserAction list 方法...");
		Map<String,Object> model = new HashMap<String,Object>();
		
		/*Collection<UserPO> list = dao.doquery();
		List<UserPO> users = new ArrayList<UserPO>();
		
		for (UserPO userPO : list) {  
			UserPO user = new UserPO();  
            user.setId(userPO.getId());  
            user.setName(userPO.getName());  
            user.setSex(userPO.getSex());
            user.setEmail(userPO.getEmail());  
            users.add(user);  
        } */ 
		List<UserPO> result = userDao.getAllUsers();
		model.put("list", result);
		
		return new ModelAndView("userList",model);
	}
	
	public ModelAndView detail(HttpServletRequest req,HttpServletResponse res) throws Exception{
		String id = req.getParameter("id");
		UserPO userPO = null;
		if(userPO == null){
			userPO = new UserPO();
		}
		userPO.setId(id);
		Map<String,Object> model = new HashMap<String,Object>();
		userPO = userDao.getUserByID(userPO);
		model.put("user", userPO);
		return new ModelAndView("userDetail",model);
	}
	
	
	/**
	 * 通向新增用户页面
	 * @param req
	 * @param res
	 * @return
	 * @throws Exception
	 */
	public ModelAndView toAddUser(HttpServletRequest req,HttpServletResponse res) throws Exception{
		Map<String,Object> model = new HashMap<String,Object>();
		
		return new ModelAndView("addUser",model);	
	}
	
	/**
	 * 新增用户
	 * @param req
	 * @param res
	 * @return
	 * @throws Exception
	 */
	/*public void addUser(HttpServletRequest req,HttpServletResponse res) throws Exception{
		String name = WebUtils.findParameterValue(req, "name");
		String email = WebUtils.findParameterValue(req, "email");
		String msg = "";
		logger.info("用户名: "+ name + "   邮件: " + email);
		if(userPO == null){
			userPO = new UserPO();
			userPO.setName(name);
			userPO.setEmail(email);
		}

		Map<String,Object> model = new HashMap<String,Object>();
		//userDao.addUser(userPO);
		msg = "1";
		
        //text 格式
		res.getWriter().print(msg);
	}**/
	
	
	public void addUser(HttpServletRequest req,HttpServletResponse res) throws Exception{
		String name = WebUtils.findParameterValue(req, "name");
		String email = WebUtils.findParameterValue(req, "email");
		String json = "",msg = "成功";
		logger.info("用户名: "+ name + "   邮件: " + email);
		if(userPO == null){
			userPO = new UserPO();
		}
		
		//json格式
		/*json = "{\"success\":true,\"msg\":\"1\"}";
		res.getWriter().print(json);*/
		
		
		Map<String, Object> map = new HashMap<String,Object>();
		map.put("status", msg);
		JSONObject result = JSONObject.fromObject(map);
		res.setContentType("text/html;charset=utf-8");
		res.getWriter().print(result.toString());
	}
	
	public UserDao getDao() {
		return dao;
	}

	public void setDao(UserDao dao) {
		this.dao = dao;
	}
	
	public IUserDao getUserDao() {
		return userDao;
	}

	public void setUserDao(IUserDao userDao) {
		this.userDao = userDao;
	}
	
	public UserPO getUserPO() {
		return userPO;
	}

	public void setUserPO(UserPO userPO) {
		this.userPO = userPO;
	}
}
 
8、编写持久层 sqlmap
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
	<settings cacheModelsEnabled="true" 
			  errorTracingEnabled="true"
			  enhancementEnabled="true" 
			  lazyLoadingEnabled="true" 
			  useStatementNamespaces="true"
			  statementCachingEnabled="true"/>
	 <sqlMap resource="sqlmap/sqlmap-t_user.xml"/>
</sqlMapConfig>
 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">

<sqlMap namespace="user">
	<typeAlias alias="userPO" type="com.examp.po.UserPO" />
	
	<resultMap class="userPO" id="user">
        <result property="id" column="id" />
        <result property="name" column="name" />
        <result property="email" column="email" />
        <result property="sex" column="sex" />
    </resultMap>
	
	<select id="GET-ALL-USER" parameterClass="string" resultClass="userPO">
		<![CDATA[ 
           SELECT T.ID,T.NAME,T.EMAIL,T.SEX FROM T_USER T
        ]]>
	</select>
	
	<select id="GET-USER-BY-ID" parameterClass="userPO" resultClass="userPO">
		<![CDATA[ 
           SELECT T.ID,T.NAME,T.EMAIL,T.SEX FROM T_USER T
           WHERE 1=1
        ]]>
           <isNotNull property="id" prepend="AND">
             <![CDATA[id = #id#]]>
          </isNotNull>
	</select>
	
	<!-- <insert id="ADD-USER" parameterClass="userPO">
		<![CDATA[
			 INSERT INTO t_user(id,name,password,nick_name,type,email,phone,sex
                ,real_name,idno,head_portrait,province,city,is_auth,is_bound_phone
                ,is_protected,bound_phone,reg_time,status,login_time,is_del
                ,qq,birthday,office_tel,office_adr,office_zip,home_adr,home_zip
                ,remark,operator,opt_time,regist_type,verify_status,auth_url_up,payment_pas,auth_url_dw,corporate_name,organization_code,rand_no,relate_sale_id,relate_service_id,reg_source,law_person,law_personnum,loan_comp_type,ip,class)
			VALUES(
                #id#,#name#,#password#,#nickName#,#type#,#email#,#phone#,#sex#
                ,#realName#,#idNo#,#headPortrait#,#province#,#city#,#isAuth#,#isBoundPhone#
                ,#isProtected#,#boundPhone#,#regTime#,#status#,#loginTime#,#isDel#
                ,#qq#,#birthday#,#officeTel#,#officeAdr#,#officeZip#,#homeAdr#,#homeZip#
                ,#remark#,#operator#,#optTime#,#registType#,#verifyStatus#,#authUrlUp#,#paymentPas#,#authUrlDw#,#corporateName#,#organizationCode#,#randNo#,#relateSaleId#,#relateServiceId#,#regSource#,#lawPerson#,#lawPersonnum#,#loanCompType#,#ip#,#userClass#)
		]]>
	</insert> -->
</sqlMap>
 9、编写JSP页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="com.examp.po.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>用户列表</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
  </head>
<%
String str = (String)request.getAttribute("helloWorld");
//List list = (List)request.getAttribute("list");
%>
  <body>
    <table>
    	<tr>
    		<td colspan="4" align="center"><a href="/ch23/userAction.html?action=toAddUser">添加用户</a></td>
    	</tr>
    	<tr>
    		<td>
    			用户ID
    		</td>
    		<td>
    			用户名
    		</td>
    		<td>
    			性别
    		</td>
    		<td>
    			邮件
    		</td>
    	</tr>
	    <c:forEach var="user" items="${list}">
	    	<tr>
	    		<td><a href="/ch23/userAction.html?action=detail&id=${user.id}">${user.id}</a></td>
	    		<td>${user.name}</td>
	    		<td>
	    			<c:if test="${user.sex == 0}">
	    				保密
	    			</c:if>
	    			<c:if test="${user.sex == 1}">
	    				男
	    			</c:if>
	    			<c:if test="${user.sex == 2}">
	    				女
	    			</c:if>
	    		</td>
	    		<td>${user.email}</td>
	    	</tr>
	    </c:forEach>
    </table>
  </body>
</html>
 
分享到:
评论

相关推荐

    J2EE课程培训提纲

    - **Ibatis**:Ibatis作为轻量级的ORM框架,如何映射SQL语句,实现数据库操作。 ### 下午课程 #### 4. J2EE集成与部署 (1小时) - **集成开发**:JSP、Struts2、Spring和Ibatis的整合,理解MVC架构下的工作流程。 -...

    Java学习教程

    - **Spring**:轻量级的Java开发框架,提供依赖注入(DI)和面向切面编程(AOP)等功能。 #### 三、Java EE企业级应用开发 ##### 1. AJAX技术 - **AJAX**:Asynchronous JavaScript and XML,异步JavaScript与XML技术...

    pimpinella_3cd_01_0716.pdf

    pimpinella_3cd_01_0716

    FIB English learning

    FIB English learning

    linux下 jq 截取json文件信息

    X86-jq安装包

    [AB PLC例程源码][MMS_046356]SELX.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    大圣挪车小程序1.3.5+前端.zip

    大圣挪车小程序1.3.5 前端

    Manus.im 产品及开发团队研究报告.pdf

    Manus.im 产品及开发团队研究报告.pdf

    [AB PLC例程源码][MMS_044663]Control daisy chain wiring in Fieldbus Foundation.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    sun_3ck_01a_0918.pdf

    sun_3ck_01a_0918

    支持适用于PERC H330/H730/H730P/H830/H730P系列RAID卡MX/FD33xD/FD33xS控制器的驱动安装指南

    下载 1. 单击“立即下载”,以下载该文件。 2. 出现“文件下载”窗口后,单击“保存”,以将文件保存到硬盘。 安装 1. 浏览至文件下载目标位置并双击新下载的文件。 2. 仔细阅读对话窗口中显示的发布信息。 3. 下载并安装对话窗口中标识的任何必备项,然后再继续。 4. 单击“Install”(安装)按钮。 5. 按照其余提示执行更新。 安装 1. 将解压的文件复制到可访问Windows的介质。 2. 将系统重新引导至Windows操作系统。 3. 打开“服务器管理器”->“设备管理器”->“存储控制器”,然后单击“PERC控制器”。 5. 单击“更新驱动程序软件”,并按照提示更新驱动程序。 4. 重新引导系统以使更改生效。

    硬盘安装器,支持硬盘安装,无需制作U盘PE!

    支持所有操作系统一键安装。

    matlab程序代码项目案例:使用 Simulink 进行自适应 MPC 设计

    matlab程序代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    [AB PLC例程源码][MMS_044098]1769-ASCII Simultaneous Mode.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    swanson_01_1106.pdf

    swanson_01_1106

    [AB PLC例程源码][MMS_047811]SAF1 - Store.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    [AB PLC例程源码][MMS_043879]Programming in SFC and ST Language.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    sun_3ck_01_0919.pdf

    sun_3ck_01_0919

    方言距离数据.岭南学院产业与区域经济研究中心

    各城市方言距离数据-中山大学岭南学院产业与区域经济研究中心 方言距离是指两种或多种方言之间的相似程度或差异程度。参考中山大学岭南学院产业与区域经济研究中心的刘毓芸等(2015)文献。他们基于方言树图,并参考《汉语方言大词典》和《中国语言地图集》对方言的划分,将汉语方言从宽泛到具体分为以下几个层级:汉语→方言大区→方言区→方言片。为了量化县与县之间的方言差异,他们采用了一种赋值方法: 若它们分属不同方言大区,则距离为3。: 若两个县同属一个方言片,则它们之间的方言距离为0; 若两个县属于同一方言区但不同方言片,则距离为1; 若它们属于同一方言大区但不同方言区,则距离为2; 方言距离是一个反映方言之间相似程度或差异程度的重要指标,它在语音识别、方言研究等领域具有广泛的应用价值。 参考文献:[1]刘毓芸, 徐现祥, 肖泽凯. 2015. 劳动力跨方言流动的倒U型模式[J]. 经济研究, 50(10): 134-146+162. 指标 语系、语族、方言大区、方言区/语支、方言片/语种、Supergroup、Dialect、group、Sub-dialect、groupPref_1、Pref_2、DiaDist、PrefCode_1、PrefCode_2等等。

Global site tag (gtag.js) - Google Analytics