zoukankan      html  css  js  c++  java
  • 02

        服务器返回数据的json处理+搭建项目环境    

    服务器返回数据的json处理

    springMVC JSP响应流程 请求 -->DispatcherServlet -->HandlerMapping -->Controller --Jsp响应

    JSON响应流程 请求 -->DispatcherServlet -->HandlerMapping -->Controller -->Json响应

    如何实现Json处理

    • 导包 Jackson
    • 配置文件 web.xml spring-mvc.xml
    • 在返回数据的方法上使用@ResponseBody

    JavaBean规范 - 必须有包 - 实现序列化接口 - 为属性增加set/get方法 - 创建无参构造器 - 有ID属性时,重写equals/hashcode方法

    云笔记

    • 项目概述
    • 模块划分 用户模块 笔记本模块 笔记模块 活动模块 笔记的分享和收藏模块 回收站模块

    • 设计思想 基于MVC分层思想,分为

    • 表现层(V) HTML+javascript+jQuery+ajax
    • 控制层(C) DServlet + Controller
    • 业务层(M) Service组件
    • 数据层(M) Dao组件
    • 技术架构

    采用的技术:java+javascript+jQuery+Ajax+SpringIOC+SpringAOP+Mybatis

    • java: 核心技术
    • javascript: 用于HTML
    • jQuery: 简化js代码
    • Ajax: 异步处理
    • SpringIOC: 管理组件
    • SpringAOP: 主要用户日志生成/事务处理
    • Mybatis: 作用于持久层

    项目整体规范

    • 发送请求($.ajax)
    • HTML+JS
    • 服务器返回数据,采用JSON 进行处理
    • Result{state,data,message}

    数据库构建

    E-R图 entity-relation

    • 通过业务的分析得到E-R图

    • 关系:1对1/1对多/多对多

    数据库信息

    启动mysql: mysql -uroot -p

    常用命令

    • show databases; 显示数据库列表

    • use 数据库名; 连接具体数据库实例

    • show tables; 显示实例下的所有表

    • source sql脚本文件

    • set names utf8;

    • source /home/soft01/cloud_note.sql;

    • source e:cloud_note.sql;

    spring+mybatis整合

    • 导包
    • 配置文件
    • 测试

    项目环境搭建

    • 导包(两个案例的包)
    • 配置文件(web.xml conf/spring-mvc.xml conf/spring-mybatis.xml)
    • 数据准备

    代码:

    src/main/java

    cn.tedu.cloudnote.dao

    package cn.tedu.cloudnote.dao;
    
    import cn.tedu.entity.User;
    
    public interface UserDao {
        User findByName(String name);
    }
    UserDao.java

    cn.tedu.entity

    package cn.tedu.entity;
    
    import java.io.Serializable;
    
    public class User implements Serializable{
    
        private static final long serialVersionUID = -2074369796447083139L;
        /**
         * 参考cn_user表定义属性
         * 属性名与字段名保持一致
         */
        private String cn_user_id;
        private String cn_user_name;
        private String cn_user_password;
        private String cn_user_token;
        private String cn_user_nick;
        public User(){
            
        }
        public String getCn_user_id() {
            return cn_user_id;
        }
        public void setCn_user_id(String cn_user_id) {
            this.cn_user_id = cn_user_id;
        }
        public String getCn_user_name() {
            return cn_user_name;
        }
        public void setCn_user_name(String cn_user_name) {
            this.cn_user_name = cn_user_name;
        }
        public String getCn_user_password() {
            return cn_user_password;
        }
        public void setCn_user_password(String cn_user_password) {
            this.cn_user_password = cn_user_password;
        }
        public String getCn_user_token() {
            return cn_user_token;
        }
        public void setCn_user_token(String cn_user_token) {
            this.cn_user_token = cn_user_token;
        }
        public String getCn_user_nick() {
            return cn_user_nick;
        }
        public void setCn_user_nick(String cn_user_nick) {
            this.cn_user_nick = cn_user_nick;
        }
        @Override
        public String toString() {
            return "User [cn_user_id=" + cn_user_id + ", cn_user_name=" + cn_user_name + ", cn_user_password="
                    + cn_user_password + ", cn_user_token=" + cn_user_token + ", cn_user_nick=" + cn_user_nick + "]";
        }
        @Override
        public int hashCode() {
            final int prime = 31;
            int result = 1;
            result = prime * result + ((cn_user_id == null) ? 0 : cn_user_id.hashCode());
            return result;
        }
        @Override
        public boolean equals(Object obj) {
            if (this == obj)
                return true;
            if (obj == null)
                return false;
            if (getClass() != obj.getClass())
                return false;
            User other = (User) obj;
            if (cn_user_id == null) {
                if (other.cn_user_id != null)
                    return false;
            } else if (!cn_user_id.equals(other.cn_user_id))
                return false;
            return true;
        }
    }
    User.java

    src/main/resources

      conf

    <?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:jdbc="http://www.springframework.org/schema/jdbc"  
        xmlns:jee="http://www.springframework.org/schema/jee" 
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:aop="http://www.springframework.org/schema/aop" 
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xmlns:util="http://www.springframework.org/schema/util"
        xmlns:jpa="http://www.springframework.org/schema/data/jpa"
        xsi:schemaLocation="
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
            http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd
            http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
            http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
            http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd">
           <!-- 配置数据库的连接参数及连接池 -->
           <bean id="dbcp"
           class="org.apache.commons.dbcp.BasicDataSource">
               <property name="username" 
                            value="root"></property>
               <property name="password" 
                           value="root"></property>
               <property name="driverClassName"
                         value="com.mysql.jdbc.Driver"></property>
               <property name="url" 
                            value="jdbc:mysql:///cloud_note"></property>            
           </bean>
           <!-- 配置sqlSessionFactory -->
           <bean id="ssf" 
                   class="org.mybatis.spring.SqlSessionFactoryBean">
               <property name="dataSource" 
                            ref="dbcp"></property>
               <property name="mapperLocations"
                            value="classpath:mapper/*.xml"></property>
           </bean>
           <!-- 配置mapper扫描 -->
           <bean id="mapperScanner"
                   class="org.mybatis.spring.mapper.MapperScannerConfigurer">
                   <property name="basePackage"
                                value="cn.tedu.cloudnote.dao"></property>
           </bean>
           
    
    </beans>
    spring-mybatis.xml

      mapper

    <?xml version="1.0" encoding="UTF-8" ?>  
    <!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"      
     "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
    <mapper namespace="cn.tedu.cloudnote.dao.UserDao">
        <select id="findByName" 
                        parameterType="String"
                        resultType="cn.tedu.entity.User">
            select * from cn_user
            where cn_user_name=#{name}
        </select>
    </mapper>
    UserMapper.xml

    src/test/java

      cn.tedu.test

    package cn.tedu.test;
    
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import cn.tedu.cloudnote.dao.UserDao;
    import cn.tedu.entity.User;
    
    public class TestUserDao {
        @Test
        public void test(){
            ApplicationContext ctx
                =new ClassPathXmlApplicationContext(
                        "conf/spring-mybatis.xml");
            //测试dao接口
            UserDao dao=ctx.getBean(
                        "userDao",UserDao.class);
            User user=dao.findByName("demo");
            if(user!=null){
                System.out.println("用户存在");
                System.out.println(user);
            }else{
                System.out.println("用户不存在");
            }
        }
    }
    TestUserDao.java
      <dependencies>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-webmvc</artifactId>
              <version>3.2.8.RELEASE</version>
          </dependency>
          <dependency>
              <groupId>org.mybatis</groupId>
              <artifactId>mybatis</artifactId>
              <version>3.3.0</version>
          </dependency>
          <dependency>
              <groupId>org.mybatis</groupId>
              <artifactId>mybatis-spring</artifactId>
              <version>1.2.3</version>
          </dependency>
          <dependency>
              <groupId>commons-dbcp</groupId>
              <artifactId>commons-dbcp</artifactId>
              <version>1.4</version>
          </dependency>
          <dependency>
              <groupId>mysql</groupId>
              <artifactId>mysql-connector-java</artifactId>
              <version>5.1.37</version>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-jdbc</artifactId>
              <version>3.2.8.RELEASE</version>
          </dependency>
          <dependency>
              <groupId>junit</groupId>
              <artifactId>junit</artifactId>
              <version>4.12</version>
          </dependency>
      </dependencies>
    pom.xml
  • 相关阅读:
    HDU 5583 Kingdom of Black and White 水题
    HDU 5578 Friendship of Frog 水题
    Codeforces Round #190 (Div. 2) E. Ciel the Commander 点分治
    hdu 5594 ZYB's Prime 最大流
    hdu 5593 ZYB's Tree 树形dp
    hdu 5592 ZYB's Game 树状数组
    hdu 5591 ZYB's Game 博弈论
    HDU 5590 ZYB's Biology 水题
    cdoj 1256 昊昊爱运动 预处理/前缀和
    cdoj 1255 斓少摘苹果 贪心
  • 原文地址:https://www.cnblogs.com/tangshengwei/p/6582767.html
Copyright © 2011-2022 走看看