百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

zk+spring+hibernate+maven增删改查,整合实例

toyiye 2024-06-23 19:00 17 浏览 0 评论

在自学zk和其他两个框架整合的时候,总是找不到合适的整合项目进行参考,特意整理了这篇文章供大家学习,希望能够对初学者有所帮助,谢谢大家。

配置环境:zk7.0.3 + spring3.1.1.RELEASE + hibernate3.6.9.Final + maven3.0.4

1 新建Maven项目,引入相关的jar

pom.xml配置如下:

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

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

<repositories>

<repository>

<id>zk repository</id>

<url>http://mavensync.zkoss.org/maven2</url>

</repository>

<repository>

<id>ZK EVAL</id>

<name>ZK Evaluation Repository</name>

<url>http://mavensync.zkoss.org/eval</url>

</repository>

</repositories>

<modelVersion>4.0.0</modelVersion>

<groupId>com.claridy</groupId>

<artifactId>khubAdmin</artifactId>

<name>khubAdmin</name>

<packaging>war</packaging>

<version>0.1</version>

<url>http://maven.apache.org</url>

<properties>

<zkVersion>7.0.3</zkVersion>

<java-version>1.6</java-version>

<org.springframework-version>3.1.1.RELEASE</org.springframework-version>

<org.hibernate-version>3.6.9.Final</org.hibernate-version>

<spring-security-version>3.0.7.RELEASE</spring-security-version>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

</properties>

<build>

<!-- we dont want the version to be part of the generated war file name -->

<finalName>${project.artifactId}</finalName>

</build>

<dependencies>

<dependency>

<groupId>org.zkoss.zkforge</groupId>

<artifactId>ckez</artifactId>

<version>4.4.6.2</version>

</dependency>

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>servlet-api</artifactId>

<version>2.5</version>

<scope>provided</scope>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-webmvc</artifactId>

<version>${org.springframework-version}</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-orm</artifactId>

<version>${org.springframework-version}</version>

</dependency>

<dependency>

<groupId>org.hibernate</groupId>

<artifactId>hibernate-core</artifactId>

<version>${org.hibernate-version}</version>

</dependency>

<dependency>

<groupId>org.hibernate</groupId>

<artifactId>hibernate-entitymanager</artifactId>

<version>${org.hibernate-version}</version>

</dependency>

<dependency>

<groupId>com.h2database</groupId>

<artifactId>h2</artifactId>

<version>1.2.145</version>

</dependency>

<dependency>

<groupId>cglib</groupId>

<artifactId>cglib</artifactId>

<version>2.2</version>

</dependency>

<dependency>

<groupId>c3p0</groupId>

<artifactId>c3p0</artifactId>

<version>0.9.1.2</version>

<type>jar</type>

<scope>compile</scope>

</dependency>

<dependency>

<groupId>org.hibernate</groupId>

<artifactId>hibernate-c3p0</artifactId>

<version>4.1.2.Final</version>

<type>jar</type>

<scope>compile</scope>

</dependency>

<dependency>

<groupId>com.oracle</groupId>

<artifactId>ojdbc14</artifactId>

<version>10.2.0.4.0</version>

</dependency>

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.1.10</version>

</dependency>

<dependency>

<groupId>jstl</groupId>

<artifactId>jstl</artifactId>

<version>1.2</version>

<type>jar</type>

<scope>compile</scope>

</dependency>

<dependency>

<groupId>commons-beanutils</groupId>

<artifactId>commons-beanutils</artifactId>

<version>20030211.134440</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

<version>3.1.1.RELEASE</version>

<scope>compile</scope>

<exclusions>

<exclusion>

<groupId>commons-logging</groupId>

<artifactId>commons-logging</artifactId>

</exclusion>

</exclusions>

</dependency>

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>jcl-over-slf4j</artifactId>

<version>1.5.8</version>

<scope>compile</scope>

</dependency>

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-api</artifactId>

<version>1.5.8</version>

<scope>compile</scope>

</dependency>

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-log4j12</artifactId>

<version>1.5.8</version>

<scope>compile</scope>

</dependency>

<dependency>

<groupId>log4j</groupId>

<artifactId>log4j</artifactId>

<version>1.2.14</version>

<scope>compile</scope>

</dependency>

<dependency>

<groupId>org.hibernate</groupId>

<artifactId>hibernate-validator</artifactId>

<version>4.2.0.Final</version>

</dependency>

<!--<dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc14</artifactId>

<version>10.2.0.4.0</version> </dependency> -->

<!-- sql server driver add by RemberSu -->

<dependency>

<groupId>net.sourceforge.jtds</groupId>

<artifactId>jtds</artifactId>

<version>1.2.4</version>

</dependency>

<dependency>

<groupId>commons-fileupload</groupId>

<artifactId>commons-fileupload</artifactId>

<version>1.2.2</version>

</dependency>

<dependency>

<groupId>org.apache.commons</groupId>

<artifactId>commons-io</artifactId>

<version>1.3.2</version>

</dependency>

<dependency>

<groupId>org.codehaus.jackson</groupId>

<artifactId>jackson-mapper-asl</artifactId>

<version>1.9.7</version>

<type>jar</type>

<scope>compile</scope>

</dependency>

<dependency>

<groupId>org.codehaus.jackson</groupId>

<artifactId>jackson-core-asl</artifactId>

<version>1.9.7</version>

<type>jar</type>

<scope>compile</scope>

</dependency>

<dependency>

<groupId>com.sun.mail</groupId>

<artifactId>javax.mail</artifactId>

<version>1.4.5</version>

</dependency>

<dependency>

<groupId>org.apache.tiles</groupId>

<artifactId>tiles-servlet</artifactId>

<version>2.1.4</version>

</dependency>

<dependency>

<groupId>org.apache.tiles</groupId>

<artifactId>tiles-jsp</artifactId>

<version>2.1.4</version>

</dependency>

<dependency>

<groupId>net.sf.json-lib</groupId>

<artifactId>json-lib</artifactId>

<version>2.3</version>

<classifier>jdk15</classifier>

</dependency>

<dependency>

<groupId>com.lowagie</groupId>

<artifactId>itext</artifactId>

<version>2.1.0</version>

</dependency>

<dependency>

<groupId>net.sf.jasperreports</groupId>

<artifactId>jasperreports</artifactId>

<version>4.1.3</version>

</dependency>

<dependency>

<groupId>org.codehaus.groovy</groupId>

<artifactId>groovy-all</artifactId>

<version>1.7.5</version>

</dependency>

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi</artifactId>

<version>3.7</version>

</dependency>

<dependency>

<groupId>org.quartz-scheduler</groupId>

<artifactId>quartz</artifactId>

<version>1.8.6</version>

</dependency>

<dependency>

<groupId>javax.xml</groupId>

<artifactId>jaxrpc-api</artifactId>

<version>1.1</version>

</dependency>

<dependency>

<groupId>org.apache.axis</groupId>

<artifactId>axis</artifactId>

<version>1.4</version>

</dependency>

<dependency>

<groupId>wsdl4j</groupId>

<artifactId>wsdl4j</artifactId>

<version>1.6.3</version>

</dependency>

<!-- ZK maven pom -->

<dependency>

<groupId>org.zkoss.zk</groupId>

<artifactId>zkplus</artifactId>

<version>${zkVersion}</version>

</dependency>

<dependency>

<groupId>org.zkoss.zk</groupId>

<artifactId>zhtml</artifactId>

<version>${zkVersion}</version>

</dependency>

<dependency>

<groupId>org.zkoss.zk</groupId>

<artifactId>zkbind</artifactId>

<version>${zkVersion}</version>

</dependency>

<dependency>

<groupId>org.zkoss.zk</groupId>

<artifactId>zul</artifactId>

<version>${zkVersion}</version>

<exclusions>

<exclusion>

<artifactId>slf4j-jdk14</artifactId>

<groupId>org.slf4j</groupId>

</exclusion>

</exclusions>

</dependency>

<dependency>

<groupId>net.sourceforge.jexcelapi</groupId>

<artifactId>jxl</artifactId>

<version>2.6.12</version>

</dependency>

<dependency>

<groupId>org.apache.solr</groupId>

<artifactId>solr-solrj</artifactId>

<version>3.4.0</version>

</dependency>

<dependency>

<groupId>org.webjars.npm</groupId>

<artifactId>chart.js</artifactId>

<version>2.3.0</version>

</dependency>

<dependency>

<groupId>org.webjars.bower</groupId>

<artifactId>cytoscape</artifactId>

<version>3.1.1</version>

</dependency>

<!-- <dependency> <groupId>com.claridy</groupId> <artifactId>agridlGreenTheme</artifactId>

<version>1.0</version> </dependency> -->

</dependencies>

</project>

2 修改web.xml,添加下面的内容

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

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>

/WEB-INF/SpringDispatcher-servlet.xml

</param-value>

</context-param>

<context-param>

<param-name>webAppRootKey</param-name>

<param-value>webApp.unlicationAdmin</param-value>

</context-param>

<context-param>

<param-name>log4jConfigLocation</param-name>

<param-value>/WEB-INF/classes/log4j.properties</param-value>

</context-param>

<context-param>

<param-name>log4jRefreshInterval</param-name>

<param-value>60000</param-value>

</context-param>

<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>

<init-param>

<param-name>forceEncoding</param-name>

<param-value>true</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>encodingFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<servlet>

<servlet-name>SpringDispatcher</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>SpringDispatcher</servlet-name>

<url-pattern>/</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.html</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.htm</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.css</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.js</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.flv</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.swf</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.jpeg</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.gif</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.jpg</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.bmp</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.png</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.properties</url-pattern>

</servlet-mapping>

<welcome-file-list>

<welcome-file></welcome-file>

</welcome-file-list>

<session-config>

<session-timeout>60</session-timeout>

</session-config>

<error-page>

<error-code>400</error-code>

<location>/errors/generalError.jsp</location>

</error-page>

<error-page>

<error-code>404</error-code>

<location>/errors/generalError.jsp</location>

</error-page>

<error-page>

<error-code>403</error-code>

<location>/errors/generalError.jsp</location>

</error-page>

<error-page>

<error-code>405</error-code>

<location>/errors/generalError.jsp</location>

</error-page>

<error-page>

<error-code>467</error-code>

<location>/errors/generalError.jsp</location>

</error-page>

<error-page>

<error-code>500</error-code>

<location>/errors/generalError.jsp</location>

</error-page>

<servlet>

<servlet-name>zkLoader</servlet-name>

<servlet-class>org.zkoss.zk.ui.http.DHtmlLayoutServlet</servlet-class>

<init-param>

<param-name>update-uri</param-name>

<param-value>/zkau</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet>

<servlet-name>auEngine</servlet-name>

<servlet-class>org.zkoss.zk.au.http.DHtmlUpdateServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>zkLoader</servlet-name>

<url-pattern>*.zul</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>auEngine</servlet-name>

<url-pattern>/zkau/*</url-pattern>

</servlet-mapping>

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<security-constraint>

<web-resource-collection>

<url-pattern>/*</url-pattern>

<http-method>PUT</http-method>

<http-method>DELETE</http-method>

<http-method>HEAD</http-method>

<http-method>OPTIONS</http-method>

<http-method>TRACE</http-method>

</web-resource-collection>

<auth-constraint>

</auth-constraint>

</security-constraint>

<login-config>

<auth-method>BASIC</auth-method>

</login-config>

</web-app>

3 新建SpringDispatcher-servlet.xml配置文件

内容如下:

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

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>

/WEB-INF/SpringDispatcher-servlet.xml

</param-value>

</context-param>

<context-param>

<param-name>webAppRootKey</param-name>

<param-value>webApp.unlicationAdmin</param-value>

</context-param>

<context-param>

<param-name>log4jConfigLocation</param-name>

<param-value>/WEB-INF/classes/log4j.properties</param-value>

</context-param>

<context-param>

<param-name>log4jRefreshInterval</param-name>

<param-value>60000</param-value>

</context-param>

<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>

<init-param>

<param-name>forceEncoding</param-name>

<param-value>true</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>encodingFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<servlet>

<servlet-name>SpringDispatcher</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>SpringDispatcher</servlet-name>

<url-pattern>/</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.html</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.htm</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.css</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.js</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.flv</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.swf</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.jpeg</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.gif</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.jpg</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.bmp</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.png</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.properties</url-pattern>

</servlet-mapping>

<welcome-file-list>

<welcome-file></welcome-file>

</welcome-file-list>

<session-config>

<session-timeout>60</session-timeout>

</session-config>

<error-page>

<error-code>400</error-code>

<location>/errors/generalError.jsp</location>

</error-page>

<error-page>

<error-code>404</error-code>

<location>/errors/generalError.jsp</location>

</error-page>

<error-page>

<error-code>403</error-code>

<location>/errors/generalError.jsp</location>

</error-page>

<error-page>

<error-code>405</error-code>

<location>/errors/generalError.jsp</location>

</error-page>

<error-page>

<error-code>467</error-code>

<location>/errors/generalError.jsp</location>

</error-page>

<error-page>

<error-code>500</error-code>

<location>/errors/generalError.jsp</location>

</error-page>

<servlet>

<servlet-name>zkLoader</servlet-name>

<servlet-class>org.zkoss.zk.ui.http.DHtmlLayoutServlet</servlet-class>

<init-param>

<param-name>update-uri</param-name>

<param-value>/zkau</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet>

<servlet-name>auEngine</servlet-name>

<servlet-class>org.zkoss.zk.au.http.DHtmlUpdateServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>zkLoader</servlet-name>

<url-pattern>*.zul</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>auEngine</servlet-name>

<url-pattern>/zkau/*</url-pattern>

</servlet-mapping>

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<security-constraint>

<web-resource-collection>

<url-pattern>/*</url-pattern>

<http-method>PUT</http-method>

<http-method>DELETE</http-method>

<http-method>HEAD</http-method>

<http-method>OPTIONS</http-method>

<http-method>TRACE</http-method>

</web-resource-collection>

<auth-constraint>

</auth-constraint>

</security-constraint>

<login-config>

<auth-method>BASIC</auth-method>

</login-config>

</web-app>

4 在resources文件夹下面新建config.properties

内容如下:

#################################################################

# Configuration

#################################################################

datasource.type = jdbcDataSource

datasource.url = jdbc:mysql://192.168.20.1:3306/khubadmin

datasource.username = root

datasource.password = claridy20160302

###datasource.password = dms-schema

datasource.jdbc.driver.name = com.mysql.jdbc.Driver

hibernate.dialect = org.hibernate.dialect.MySQLDialect

#### Debug

hibernate.show_sql = false

hibernate.format_sql = false

#一次上传最大限制,-1为无限制,0为禁止,取值类似1K,1M,1024,无单位则认为是byte,最大单位为M

onceMaxSize=-1

#单个文件大小限制,-1为无限制,0为禁止,取值类似1K,1M,1024,无单位则认为是byte,最大单位为M

fileLimitSize=1000M

#文件上传类型限制,不填为无限制

allowFileTypes=image/jpeg,image/gif,image/pjpeg,image/png,image/bmp,application/vnd.ms-excel,application/octet-stream

#内存缓冲大小

cacheSize=4096

#文件保存缓冲位置

cacheSavePath=/uploadFileCache

#文件保存临时位置

tempSavePath=/uploadFileTemp

#文件保存实际位置

realSavePath=/uploadFiles

5 新建applicationContext.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:context="http://www.springframework.org/schema/context"

xmlns:tx="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.org/schema/util"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.1.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.1.xsd

http://www.springframework.org/schema/tx

http://www.springframework.org/schema/tx/spring-tx-3.1.xsd

http://www.springframework.org/schema/util

http://www.springframework.org/schema/util/spring-util-3.1.xsd">

<!-- Allows to use system properties as variables in this configuration

file -->

<bean

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

<property name="location">

<value>classpath:config.properties</value>

</property>

</bean>

<util:properties id="systemproperties" location="classpath:system.properties"></util:properties>

<!-- Direct JDBC DataSource -->

<bean id="jdbcDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"

destroy-method="close">

<property name="driverClass" value="${datasource.jdbc.driver.name}" />

<property name="jdbcUrl" value="${datasource.url}" />

<property name="user" value="${datasource.username}" />

<property name="password" value="${datasource.password}" />

<!-- 最小连接数 -->

<property name="minPoolSize" value="10" />

<!-- 最大连接数 -->

<property name="maxPoolSize" value="15" />

<!--最大空闲时间,1800秒内未使用则连结被丢弃。若为0则永不丢弃。Default: 0 -->

<property name="maxIdleTime" value="1800" />

<!-- 当连接池里面的连结用完的时候,C3P0一次获得的新连接数 -->

<property name="acquireIncrement" value="3" />

<!-- 最大的PreparedStatement数量 -->

<property name="maxStatements" value="1000" />

<!-- 初始连接数 -->

<property name="initialPoolSize" value="10" />

<!-- 每隔120秒检查连接池里面的空闲连结,单位秒 -->

<property name="idleConnectionTestPeriod" value="120" />

<!-- 从数据库获取新连接失败之后重复尝试的次数 -->

<property name="acquireRetryAttempts" value="100" />

<property name="breakAfterAcquireFailure" value="false" />

<property name="testConnectionOnCheckout" value="false" />

</bean>

<!-- ============================================ -->

<!-- Integration Hibernate -->

<!-- ============================================ -->

<!-- org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean -->

<!-- org.springframework.orm.hibernate3.LocalSessionFactoryBean -->

<bean id="sessionFactory"

class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

<property name="hibernateProperties">

<props>

<prop key="hibernate.dialect">${hibernate.dialect}</prop>

<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>

<prop key="hibernate.format_sql">${hibernate.format_sql}</prop>

<prop key="hibernate.max_fetch_depth">5</prop>

<prop key="hibernate.query.substitutions">true 1, false 0</prop>

<!-- connection release mode : JDBC使用after_transaction;JTA使用after_statement -->

<prop key="hibernate.connection.release_mode">after_transaction</prop>

<!-- Important : This will drop all tables and create new tables -->

<!-- <prop key="hibernate.hbm2ddl.auto">create</prop> -->

</props>

</property>

<property name="dataSource" ref="${datasource.type}" />

<property name="packagesToScan" value="com.claridy" />

</bean>

<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">

<property name="sessionFactory" ref="sessionFactory" />

</bean>

<!-- Transaction Manager -->

<bean id="txManager"

class="org.springframework.orm.hibernate3.HibernateTransactionManager">

<property name="sessionFactory" ref="sessionFactory" />

</bean>

<!-- Annotation Driven Transactions -->

<tx:annotation-driven transaction-manager="txManager" />

<import resource="appCtx_Service.xml" />

<!-- Handling Exception -->

<bean

class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">

<property name="exceptionMappings">

<map>

<!-- <entry key="org.springframework.web.multipart.MaxUploadSizeExceededException"

value="errors/maxuploadsize" /> -->

<!-- <entry key="DataAccessException" value="errors/dataError" /> -->

<!-- <entry key="com.stuff.MyAppRuntimeException" value="errors/appNncheckedError"

/> -->

<!-- <entry key="com.stuff.MyAppCheckedException" value="errors/appCheckedError"

/> -->

</map>

</property>

<property name="defaultErrorView" value="errors/generalError" />

</bean>

</beans>

6 以登录功能来说,要新建对应的domain,dao,service,最后再新建composer

domain,dao,service这些都是和springmvc框架是一模一样的,主要区别就是在composer这里,ZK是一套以 AJAX/XUL/Java 为基础的网页应用程序开发框架,用于丰富网页应用程序的使用界面。最大的好处是在设计AJAX网络应用程序时,轻松简便的操作就像设计桌面程序一样。前端的显示只要通过zk就可以轻松完成,spring+hibernate主要是负责数据的查询和修改以及新增删除操作。下面是具体代码示例:

domain:

package com.claridy.domain;

import java.io.Serializable;

import java.util.Date;

import javax.persistence.CascadeType;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.FetchType;

import javax.persistence.Id;

import javax.persistence.JoinColumn;

import javax.persistence.ManyToOne;

import javax.persistence.Table;

import org.hibernate.annotations.NotFound;

import org.hibernate.annotations.NotFoundAction;

@Entity

@Table(name="webemployee")

public class WebEmployee implements Serializable {

/**

*

*/

private static final long serialVersionUID = -973189718264239730L;

private String employeesn;//ID

private String employeeName;//姓名s

private String employeeId;//账号

private WebOrg parentWebOrg; //单位别

private WebOrg weborg;//组室

private String tel;//联络电话

private String email;//e-mail

private String pwd; //密码

private String dataOwner;//建立者

private String dataOwnerGroup;//建立者群组

private Date createDate;//建立时间

private Date latelyChangedDate;//异动时间

private int isLock;//是否停用1表停用0表启用

private int isDataEffid;//资料是否有效1表有效、0表无效

private String latelyChangeDuser;//异动者

private int idType;//身分别1表农委会管理者2表各所属单位管理者3表一般使用者(研究人员)

private int isManager;//是否为部门主管1表是0表否

private Date loginDate;//最后登入时间

@ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )

@JoinColumn(name="parentorgid")

@NotFound(action=NotFoundAction.IGNORE)

public WebOrg getParentWebOrg() {

return parentWebOrg;

}

public void setParentWebOrg(WebOrg parentWebOrg) {

this.parentWebOrg = parentWebOrg;

}

@ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE} )

@JoinColumn(name="orgid")

@NotFound(action=NotFoundAction.IGNORE)

public WebOrg getWeborg() {

return weborg;

}

public void setWeborg(WebOrg weborg) {

this.weborg = weborg;

}

@Id

public String getEmployeesn() {

return employeesn;

}

public void setEmployeesn(String employeesn) {

this.employeesn = employeesn;

}

@Column(name="employeename")

public String getEmployeeName() {

return employeeName;

}

public void setEmployeeName(String employeeName) {

this.employeeName = employeeName;

}

@Column(name="employeeid")

public String getEmployeeId() {

return employeeId;

}

public void setEmployeeId(String employeeId) {

this.employeeId = employeeId;

}

public String getTel() {

return tel;

}

public void setTel(String tel) {

this.tel = tel;

}

public String getEmail() {

return email;

}

public void setEmail(String email) {

this.email = email;

}

public String getPwd() {

return pwd;

}

public void setPwd(String pwd) {

this.pwd = pwd;

}

@Column(name="dataowner")

public String getDataOwner() {

return dataOwner;

}

public void setDataOwner(String dataOwner) {

this.dataOwner = dataOwner;

}

@Column(name="dataownergroup")

public String getDataOwnerGroup() {

return dataOwnerGroup;

}

public void setDataOwnerGroup(String dataOwnerGroup) {

this.dataOwnerGroup = dataOwnerGroup;

}

@Column(name="createdate")

public Date getCreateDate() {

return createDate;

}

public void setCreateDate(Date createDate) {

this.createDate = createDate;

}

@Column(name="latelychangeddate")

public Date getLatelyChangedDate() {

return latelyChangedDate;

}

public void setLatelyChangedDate(Date latelyChangedDate) {

this.latelyChangedDate = latelyChangedDate;

}

@Column(name="islock")

public int getIsLock() {

return isLock;

}

public void setIsLock(int isLock) {

this.isLock = isLock;

}

@Column(name="isdataeffid")

public int getIsDataEffid() {

return isDataEffid;

}

public void setIsDataEffid(int isDataEffid) {

this.isDataEffid = isDataEffid;

}

@Column(name="latelychangeduser")

public String getLatelyChangeDuser() {

return latelyChangeDuser;

}

public void setLatelyChangeDuser(String latelyChangeDuser) {

this.latelyChangeDuser = latelyChangeDuser;

}

@Column(name="idtype")

public int getIdType() {

return idType;

}

public void setIdType(int idType) {

this.idType = idType;

}

@Column(name="ismanager")

public int getIsManager() {

return isManager;

}

public void setIsManager(int isManager) {

this.isManager = isManager;

}

@Column(name="logindate")

public Date getLoginDate() {

return loginDate;

}

public void setLoginDate(Date loginDate) {

this.loginDate = loginDate;

}

}

dao:

package com.claridy.dao.hibernateimpl;

import java.util.List;

import org.hibernate.Query;

import org.hibernate.Session;

import org.hibernate.criterion.DetachedCriteria;

import org.hibernate.criterion.Order;

import org.hibernate.criterion.Restrictions;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.orm.hibernate3.HibernateTemplate;

import org.springframework.stereotype.Repository;

import com.claridy.common.mechanism.dao.hibernateimpl.BaseDAO;

import com.claridy.common.util.DaoImplUtil;

import com.claridy.dao.IWebEmployeeDAO;

import com.claridy.domain.WebEmployee;

@Repository

public class WebEmployeeDAO extends BaseDAO implements IWebEmployeeDAO {

@Autowired

protected DaoImplUtil daoimpl;

@Autowired

public WebEmployeeDAO(HibernateTemplate hibernateTemplate) {

setHibernateTemplate(hibernateTemplate);

}

public WebEmployee login(String name,String password) {

Session session=this.getSession();

Query query=session.createQuery("from WebEmployee as web where web.employeeId=:name and web.pwd=:password and web.isDataEffid=1");

query.setString("name",name);

query.setString("password",password);

WebEmployee webEmployee=(WebEmployee)query.uniqueResult();

return webEmployee;

}

@SuppressWarnings("unchecked")

public List<WebEmployee> findWebEmployee(WebEmployee web,WebEmployee webEmployee,int bool,int isdataeffid,int isauth){

String hql=daoimpl.getHqlNoRelat("WebEmployee", webEmployee);

hql+=" and isDataEffid="+isdataeffid;

if(!findEmp(web, bool).equals("")){

hql+=findEmp(web, bool);

}

if(hql.indexOf("where 1 = 1 or")!=-1){

hql=hql.replace("where 1 = 1 or","where 1 = 1 and");

}

if(hql.indexOf("isDataEffid=1 ( and")!=-1){

hql=hql.replace("isDataEffid=1 ( and", "isDataEffid=1 and (");

}

if(hql.indexOf("isDataEffid=1 ( or")!=-1){

hql=hql.replace("isDataEffid=1 ( or", "isDataEffid=1 and (");

}

if(hql.indexOf("isDataEffid=0 ( and")!=-1){

hql=hql.replace("isDataEffid=0 ( and", "isDataEffid=1 and (");

}

if(hql.indexOf("isDataEffid=0 ( or")!=-1){

hql=hql.replace("isDataEffid=0 ( or", "isDataEffid=1 and (");

}

hql+=" order by createDate desc";

Session session=this.getSession();

Query query=session.createQuery(hql);

return (List<WebEmployee>)query.list();

}

@SuppressWarnings("unchecked")

public WebEmployee getEmpById(String uuid){

DetachedCriteria criteria=DetachedCriteria.forClass(WebEmployee.class);

criteria.add(Restrictions.eq("employeesn", uuid));

List<WebEmployee> webEmployeeList=criteria.getExecutableCriteria(getSession()).list();

if(webEmployeeList.size()>0){

return webEmployeeList.get(0);

}

return null;

}

@SuppressWarnings("unchecked")

public List<WebEmployee> find(String id,String name,String orgId){

DetachedCriteria criteria=DetachedCriteria.forClass(WebEmployee.class);

if(id!=null&&!id.equals("")){

criteria.add(Restrictions.like("employeesn","%"+id+"%"));

}

if(name!=null&&!name.equals("")){

criteria.add(Restrictions.like("employeeName",("%"+name+"%")));

}

if(orgId!=null&&!orgId.equals("0")){

criteria.add(Restrictions.eq("parentWebOrg.orgId", orgId));

}

criteria.add(Restrictions.eq("isDataEffid",1));

criteria.addOrder(Order.desc("createDate"));

return criteria.getExecutableCriteria(getSession()).list();

}

@SuppressWarnings("unchecked")

public List<WebEmployee> findAll(){

DetachedCriteria criteria=DetachedCriteria.forClass(WebEmployee.class);

return criteria.getExecutableCriteria(getSession()).list();

}

@SuppressWarnings("unchecked")

public List<WebEmployee> findByIsdataEffid(){

DetachedCriteria criteria=DetachedCriteria.forClass(WebEmployee.class);

criteria.add(Restrictions.eq("isDataEffid", 1));

return criteria.getExecutableCriteria(getSession()).list();

}

public String findEmp(WebEmployee webEmployee,int bool){

String strHQL=" ";

if(webEmployee!=null){

strHQL+=" (";

if(webEmployee.getEmployeesn()!=null&&!webEmployee.getEmployeesn().equals("")){

strHQL+=" and employeesn='"+webEmployee.getEmployeesn()+"'";

}

if(webEmployee.getEmployeeId()!=null&&!webEmployee.getEmployeeId().equals("")){

if(bool==1||bool==0){

strHQL+=" and employeeId like'%"+webEmployee.getEmployeeId()+"%'";

}else if(bool==2){

strHQL+=" or employeeId like'%"+webEmployee.getEmployeeId()+"%'";

}

}

if(webEmployee.getEmployeeName()!=null&&!webEmployee.getEmployeeName().equals("")){

if(bool==1||bool==0){

strHQL+=" and employeeName like'%"+webEmployee.getEmployeeName()+"%'";

}else if(bool==2){

strHQL+=" or employeeName like'%"+webEmployee.getEmployeeName()+"%'";

}

}

if(webEmployee.getParentWebOrg()!=null&&webEmployee.getParentWebOrg().getOrgId()!=null&&!webEmployee.getParentWebOrg().getOrgId().equals("")&&!webEmployee.getParentWebOrg().getOrgId().equals("0")){

if(bool==1||bool==0){

strHQL+=" and parentOrgId='"+webEmployee.getParentWebOrg().getOrgId()+"'";

}else if(bool==2){

strHQL+=" or parentOrgId like'%"+webEmployee.getParentWebOrg().getOrgId()+"%'";

}

}

if(webEmployee.getIdType()!=0){

if(bool==1||bool==0){

strHQL+=" and idType="+webEmployee.getIdType();

}else if(bool==2){

strHQL+=" or idType="+webEmployee.getIdType();

}

}

if(webEmployee.getIsManager()!=-1){

if(bool==1||bool==0){

strHQL+=" and isManager="+webEmployee.getIsManager();

}else if(bool==2){

strHQL+=" or isManager="+webEmployee.getIsManager();

}

}

strHQL+=" )";

}

if(strHQL.indexOf("( )")!=-1){

strHQL=strHQL.replace("( )", "");

}

return strHQL;

}

@SuppressWarnings("unchecked")

public List<WebEmployee> findWebEmployeeListByParentOrgId(String parentOrgId){

Session session=this.getSession();

Query query=session.createQuery("from WebEmployee where parentOrgId=:parentOrgId and isDataEffid=1");

query.setString("parentOrgId",parentOrgId);

List<WebEmployee> webEmployee=query.list();

return webEmployee;

}

/**

* 根据主键查询管理者对象

* @param employeesn

* @return

*/

public WebEmployee getWebEmployee(String employeesn){

Session session=this.getSession();

Query query=session.createQuery("from WebEmployee where employeesn=:employeesn");

query.setString("employeesn",employeesn);

List<WebEmployee> webEmployeeList=query.list();

if(webEmployeeList.size()>0){

return webEmployeeList.get(0);

}else{

return new WebEmployee();

}

}

@SuppressWarnings("unchecked")

public List<WebEmployee> findIsMangerByParent(String parentOrgId) {

DetachedCriteria criteria=DetachedCriteria.forClass(WebEmployee.class);

criteria.add(Restrictions.eq("isManager", 1));

criteria.add(Restrictions.eq("isDataEffid",1));

criteria.add(Restrictions.eq("parentWebOrg.orgId", parentOrgId));

return criteria.getExecutableCriteria(getSession()).list();

}

public WebEmployee findByName(String name) {

DetachedCriteria criteria=DetachedCriteria.forClass(WebEmployee.class);

criteria.add(Restrictions.like("employeeName", ("%"+name+"%")));

criteria.add(Restrictions.eq("isDataEffid", 1));

return (WebEmployee) criteria.getExecutableCriteria(getSession()).uniqueResult();

}

}

service:

package com.claridy.facade;

import java.util.Date;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

import com.claridy.dao.IWebEmployeeDAO;

import com.claridy.domain.WebEmployee;

@Service

public class WebLoginService {

@Autowired

private IWebEmployeeDAO webEmployeeDao;

/**

* 用户登陆

* @param name 用户名

* @param password 密码

* @return

*/

public WebEmployee login(String name,String password){

WebEmployee webEmployee=webEmployeeDao.login(name, password);

if(webEmployee!=null){

webEmployee.setLoginDate(new Date());

webEmployeeDao.merge(webEmployee);

return webEmployee;

}

return null;

}

}

composer:

package com.claridy.admin.composer;

import org.apache.commons.lang.StringUtils;

import org.zkoss.util.resource.Labels;

import org.zkoss.zk.ui.Component;

import org.zkoss.zk.ui.select.SelectorComposer;

import org.zkoss.zk.ui.select.annotation.Listen;

import org.zkoss.zk.ui.select.annotation.Wire;

import org.zkoss.zkplus.spring.SpringUtil;

import org.zkoss.zul.Image;

import org.zkoss.zul.Textbox;

import com.claridy.common.util.DesEncryption;

import com.claridy.common.util.SystemProperties;

import com.claridy.common.util.XSSStringEncoder;

import com.claridy.common.util.ZkUtils;

import com.claridy.domain.WebEmployee;

import com.claridy.facade.WebLoginService;

import com.claridy.facade.WebSysLogService;

public class LoginComposer extends SelectorComposer<Component> {

/**

*

*/

private static final long serialVersionUID = -3369391370563245215L;

@Wire

private Textbox textField;//用户名

@Wire

private Textbox textField2;//密码

@Wire

private Textbox textField3;//验证码

@Wire

private Image randImage;//产生验证码按钮

@Listen("onClick=#randImage")

public void showRandImage() throws Exception{

randImage.setSrc("validata/image?"+ Math.random());

}

@Listen("onClick=#loadImage")

public void showLoadImage() throws Exception{

randImage.setSrc("validata/image?"+ Math.random());

}

@Listen("onClick=#loginBtn")

public void login() throws Exception{

boolean ifSucess=false;

String userName=textField.getValue();

String passWord=textField2.getValue();

String coldNumber=textField3.getValue();

userName= XSSStringEncoder.encodeXSSString(userName);

passWord= XSSStringEncoder.encodeXSSString(passWord);

coldNumber= XSSStringEncoder.encodeXSSString(coldNumber);

userName=userName.toLowerCase();

if(StringUtils.isBlank(userName)){

ZkUtils.showExclamation(Labels.getLabel("useJudge"),Labels.getLabel("info"));

textField.focus();

return;

}

if(StringUtils.isBlank(passWord)){

ZkUtils.showExclamation(Labels.getLabel("passJudge"),Labels.getLabel("info"));

textField2.focus();

return;

}

if(StringUtils.isBlank(coldNumber)){

ZkUtils.showExclamation(Labels.getLabel("codeJudge"),Labels.getLabel("info"));

textField3.focus();

return;

}

if(!ZkUtils.getCurrentSession().getAttribute("rand").equals(coldNumber.trim())){

ZkUtils.showExclamation(Labels.getLabel("codeError"),Labels.getLabel("info"));

textField3.focus();

return;

}

String deskey=((SystemProperties)SpringUtil.getBean("systemProperties")).systemDeskey;

String jiami = DesEncryption.desEncrypt(passWord, deskey);

WebEmployee webEmployee = ((WebLoginService) SpringUtil.getBean("webLoginService")).login(userName, jiami);

if (webEmployee!=null) {

ZkUtils.setSessionAttribute("webEmployee", webEmployee);

((WebSysLogService)SpringUtil.getBean("webSysLogService")).saveOrUpdateLog(ZkUtils.getRemoteAddr(),webEmployee.getEmployeesn(), "login _"+webEmployee.getEmployeesn(), "登入后台");

// WebIndexInfo footerinfo=((WebIndexInfoService)SpringUtil.getBean("webIndexInfoService")).getFooterInfo();

ZkUtils.setSessionAttribute("footerinfo", "");

ifSucess=true;

ZkUtils.setSessionAttribute("loginOK", ifSucess);

ZkUtils.sendRedirect("/home");

} else {

ZkUtils.showError(Labels.getLabel("withUserPass"), Labels.getLabel("error"));

}

}

@Listen("onOK=#main")

public void onOK$loginBtn() throws Exception{

boolean ifSucess=false;

String userName=textField.getValue();

String passWord=textField2.getValue();

String coldNumber=textField3.getValue();

userName= XSSStringEncoder.encodeXSSString(userName);

passWord= XSSStringEncoder.encodeXSSString(passWord);

coldNumber= XSSStringEncoder.encodeXSSString(coldNumber);

if(StringUtils.isBlank(userName)){

ZkUtils.showExclamation(Labels.getLabel("useJudge"),Labels.getLabel("info"));

textField.focus();

return;

}

if(StringUtils.isBlank(passWord)){

ZkUtils.showExclamation(Labels.getLabel("passJudge"),Labels.getLabel("info"));

textField2.focus();

return;

}

if(StringUtils.isBlank(coldNumber)){

ZkUtils.showExclamation(Labels.getLabel("codeJudge"),Labels.getLabel("info"));

textField3.focus();

return;

}

if(!ZkUtils.getCurrentSession().getAttribute("rand").equals(coldNumber.trim())){

ZkUtils.showExclamation(Labels.getLabel("codeError"),Labels.getLabel("info"));

textField3.focus();

return;

}

String deskey=((SystemProperties)SpringUtil.getBean("systemProperties")).systemDeskey;

String jiami = DesEncryption.desEncrypt(passWord, deskey);

WebEmployee webEmployee = ((WebLoginService) SpringUtil.getBean("webLoginService")).login(userName, jiami);

if (webEmployee!=null) {

ZkUtils.setSessionAttribute("webEmployee", webEmployee);

((WebSysLogService)SpringUtil.getBean("webSysLogService")).saveOrUpdateLog(ZkUtils.getRemoteAddr(),webEmployee.getEmployeesn(), "login _"+webEmployee.getEmployeesn(), "登入后台");

//获取页尾信息

// WebIndexInfo footerinfo=((WebIndexInfoService)SpringUtil.getBean("webIndexInfoService")).getFooterInfo();

ZkUtils.setSessionAttribute("footerinfo", "");

ifSucess=true;

ZkUtils.setSessionAttribute("loginOK", ifSucess);

ZkUtils.sendRedirect("/home");

} else {

ZkUtils.showError(Labels.getLabel("withUserPass"), Labels.getLabel("error"));

}

}

}

请大家多多关注我的头条号,谢谢大家,zk框架国内用的比较少,初学者有问题可以找我咨询。

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码