Ajax & Springboot & Oracel 基本使用

使用第三方库(JQuery)发送ajax请求:

         1)导入 JQuery 的库:

<script src="js/jquery-3.2.1.min.js"></script>

         2)用法:

$.ajax({
	url:"请求url地址",
	type:"get|post|put|delete",
	data:"请求参数",
	dataType:"服务器返回的响应格式,一般不用设置", 取值// json,html,text,xml..
	success: function(结果){}, // 响应成功后调用的函数
	error: function(){}, // 请求和响应过程中出错了调用的函数
});

          测试代码:

function test(){
   $.ajax({
        url:"/test",
        type:"get",
        data:{content:$("#c").val()},
        success: function(obj){ // obj代表服务器返回的结果, 如果是json会转换成对象传递过来
                   var c = obj.content;
                   $("#d1").text(c);
                },
        error:function (xhr) {
                  if(xhr.status==404) {
                        $("#d1").text("该路径不存在");
                  } else if(xhr.status==500) {
                        $("#d1").text("服务器内部错误");
                 }
              }
  });
}

 

Jquery中使用ajax发送请求的另外几种方式:

       1)只发送 " Get " ajax请求:  

              $.get("请求url地址", "请求参数").done(function(结果){ 请求成功 }).fail(function(xhr){ 请求失败 });

                       **** 注意:     done 是成功时的回调函数, fail是失败时的回调函数

      2)只发送 " Post " ajax请求:

              $.post("请求url地址", "请求参数").done(function(结果){ 请求成功 }).fail(function(xhr){ 请求失败 });

       ***注意: Ajax 默认不支持跨域调用(不同域名,不同ip之间不可以使用ajax来发送请求)

                       支持跨域调用的两种方式:

                                         方法1:jsonp 方式  需要服务器端的配合 
                                         方法2:cors 方式

 

SpringBoot :

           首先Spring Boot不是一个框架,它是一种用来轻松创建具有最小或零配置的独立应用程序的方式。这是方法用来开发基于Spring的应用,但只需非常少的配置。它提供了默认的代码和注释配置,快速启动新的Spring项目而不需要太多时间。它利用现有的Spring项目以及第三方项目来开发生产就绪(投入生产)的应用程序。它提供了一组Starter Pom或gradle构建文件,可以使用它们添加所需的依赖项,并且还便于自动配置。 Spring Boot根据其类路径上的库自动配置所需的类。假设应用程序想要与数据库交互,如果在类路径上有Spring数据库,那么它会自动建立与数据源类的连接。

创建一个Springboot项目的基本配置:

        1)创建 Springboot 项目:

                  方式一: https://start.spring.io/    到官方地址按照向导生成相应的项目 

                  方式二: 手动创建 maven 项目,在 pom.xml 中 添加相应的 Springboot 的依赖

  

               方式一: 

 选项: 工程(maven)               语言(java)            SpringBoot版本(2.1.0)
 Group填组名             右侧Dependencies 可以选择相应的依赖,因为我们要构建web项目,所以可以添加web的依赖

Artifact填模块名         点击 Generate Project 生成下载项目。
 

                           

        2)将生成的压缩文件解压之后用 IDEA打开:

                   springboot的项目结构: (***注意:springboot 推荐打jar包,而不是war)

                                        

       3)程序入口,启动程序:

          可以看到springboot启动的服务端口为 8080:因为它内嵌了 tomcat

                          4) 创建Controller demo测试:

package com.chen.Springboot.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class DemoController {
    @RequestMapping("hello")
    @ResponseBody
    public String demo(Model model){

        model.addAttribute("text","hello");
        return "hello";
    }
}

             5)启动项目:

             - 在idea中,直接运行SpringBootApplication.java 文件。 
             - 把项目通过maven命令 mvn package 打成jar包,通过命令 java -jar demo-0.0.1-SNAPSHOT.jar 直接执行jar包 
             - 借助maven插件,执行mvn spring-boot:run 即可运行项目。
 

            6) 效果:

                     

 

     ****注意

     1. 入口类的包级别要比其他的controller ,service , mapper
     2. 但入口类包不能没有,否则会出现java.io.FileNotFoundException: class path resource [org/springframework/social/config/annotation/SocialConfigurerAdapter.class] cannot be opened because it does not exist 

    

SpringBoot的基本配置:(基本配置都在文件 application.properties 中配置)

        1)配置端口号:  (也可以在启动时 Run Configuration 中配置 Override parameters来改动端口号)               

          # 修改web程序端口
          server.port=9090

        2)配置日志:               

     #logging.level.包名=级别
     # 配置某个日志的输出
      logging.level.com.chen.springboot.mapper=debug
      logging.level.com.chen.springboot.controller=debug

        自己输出日志
                private static final Logger logger = LoggerFactory.getLogger(UserController.class);
                logger对象中有error, warn, info, debug 用他们来记录不同重要程度的信息

@Controller
public class UserController {
    // logback 是日志实现, 一般用它的接口 slf4j--> Logger 对象
    // 定义日志对象
    private static final Logger logger = LoggerFactory.getLogger(UserController.class);

    @Autowired
    private UserService userService;

    @RequestMapping("/byId")
    @ResponseBody
    public User findById(int id) {
        try {
            // 输出日志信息, 选择日志级别 error > warn > info > debug > trace
            // 不要记录敏感信息 password
            logger.debug("进入了findById方法 id的值是:{}...................", id);
//            int i = 1/0;
            return userService.findUserById(id);
        } catch (Exception e) {
            logger.error("进入了findById方法出现问题:", e);
            return null;
        }
    }
}

           3) 配置连接数据库的信息:

#配置连接数据库的信息
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/eshop?serverTimezone=GMT%2B8&useSSL=false&useServerPrepStmts=true&cachePrepStmts=true&rewriteBatchedStatements=true&useCursorFetch=true&defaultFetchSize=100&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=root

           4)修改 默认的数据库连接池(dbcp),使用自定义的连接池(druid

                    1.在 pom.xml 文件中导入 druid 的依赖:                          

        <!--  加入连接池实现 druid -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.1.7</version>
		</dependency>

                     2. 自定义一个数据库连接信息的实体类                     

package com.westos.springboot.druid;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;


@Component // 让spring容器扫描到它并管理
@ConfigurationProperties(prefix = "westos.druid") // 用来读取*.properties配置文件中的信息
public class DruidDataSourceProperties {

    private String driverClassName;
    private String url;
    private String username;
    private String password;
    /**
     * max connection count
     * @param maxActive
     */
    private int maxActive;
    private int minIdle;

    public String getDriverClassName() {
        return driverClassName;
    }

    public void setDriverClassName(String driverClassName) {
        this.driverClassName = driverClassName;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public int getMaxActive() {
        return maxActive;
    }


    public void setMaxActive(int maxActive) {
        this.maxActive = maxActive;
    }

    public int getMinIdle() {
        return minIdle;
    }

    public void setMinIdle(int minIdle) {
        this.minIdle = minIdle;
    }
}

                         3. 在 application.properties 文件中配置连接数据库的信息

westos.druid.driver-class-name=com.mysql.cj.jdbc.Driver
westos.druid.url=jdbc:mysql://localhost:3306/eshop?serverTimezone=GMT%2B8&useSSL=false&useServerPrepStmts=true&cachePrepStmts=true&rewriteBatchedStatements=true&useCursorFetch=true&defaultFetchSize=100&allowPublicKeyRetrieval=true
westos.druid.username=root
westos.druid.password=root
westos.druid.max-active=8
westos.druid.min-idle=1

 

使用注解配置测试类:利用spring的依赖注入特性,注入要测试的类       

package com.westos.springboot;

import com.westos.springboot.domain.User;
import com.westos.springboot.mapper.UserMapper;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class TestSpringBoot {

    @Autowired
    private UserMapper userMapper;

    @Test
    public void test1() {
        User user = userMapper.findUserById(1);
//        System.out.println(user);
        Assert.assertTrue( user != null);
        Assert.assertEquals(1,user.getId());
        Assert.assertEquals("zhangsan",user.getName());
    }


}

 

   

 Oracle基本使用:

1)后台的服务
             OracleService服务名      OracleServiceXE     数据库主服务
             Oracle服务名TNSListener   OracleXETNSListener 监听服务    1521

2) 连接oracle服务
             1) 用命令行(黑窗口)
                        权限最高的用户 Sys
                        管理员用户  System  
                        sqlplus 用户名/密码
             2) 用网页管理
                        http://127.0.0.1:8080/apex/f?p=4950
            3) 用第三方的工具
                         plsql developer 

3) oracle存储结构:表空间下在存储具体的表
              表空间 - 逻辑单位
              SYSTEM 表空间,用来存储系统表
              TEMP 表空间,临时表空间
              USERS 表空间,应用程序使用空间
               
    

4) 基本命令:

           修改oracle(web)服务的端口号
                       exec dbms_xdb.sethttpport(8083);
           查看oracle(web)服务的端口号
                       select dbms_xdb.gethttpport() from dual;

          创建和管理用户
                       create user 用户名 identified by 密码;

                       : create user scott identified by tiger;

         刚创建的用户没有权限,需要授权
                       grant 权限 to 用户名;

                       :grant connect, resource to scott;

         测试用户 hr 
                 解锁hr用户
                       alter user hr account unlock;

                 修改hr用户的密码:
                       alter user hr identified by hr;

         查看有哪些表
                       select table_name from user_tables;  查询系统视图

         查看表结构
                      desc 表名

         建表
                create table 表名(
                        列名 数据类型 约束,
                           ...
                );

 

Oracel中的数据类型:


         数字类型: Number(有效数字最大位数, 小数点后位数)
                         Number(10)   长度最大为10的整数
                         Number(10,2) 整数部分最大8位,小数2位

         可变字符类型
                         VARCHAR2(最大长度)  注意最大长度按字节处理, 一个汉字一般占3个字节(底层是utf-8)
                         NVARCHAR2(最大长度) 这回最大长度按字符为单位处理

          日期
                         DATE 可以保存年月日,时分秒
                         TIMESTAMP 保留的日期信息更多
                         获取当前时间:sysdate, systimestamp

         布尔值:

                         一般用 number(1) 代表布尔值,0代表false, 非0代表true

             *****注意oracle数据库中没有自增列
          序列 sequence
                           create sequence 序列名;
          从序列中获取值
                           select 序列名.nextval from dual;
          插入时数据时使用序列
                            insert into 表(id, ...) values (序列名.nextval, ...);

          dual 表
                      只有一行一列, 使用场景:当某个计算或某个函数只想调用一次的时候,必须配合dual表

                      select 1+1 from countries; // 返回多行2 ,太浪费
                      select 1+1 from dual; // 只会返回一个2

          rownum 行号
                       作用:可以给查询结果做个一编号,可以被看做特殊的列(伪列

                       ****注意rownum 可以用做比较条件, 只能是`< , <= `但不能是`=, >, >=`

                       例子: 与 order by 使用时需要注意, 是先编号,再排序,所以结果与我们期望的不同

      解决办法(子查询):select rownum, a.region_name from (select region_name from regions order by region_name) a;

     

       rownum 应用:

            分页:三层嵌套子查询配合rownum实现分页   (rownum rn: 此时的rownum 并不是 伪列,而是真实存在的

                格式:  select * from 
                                  (select a.*, rownum rn from   (select * from 表 c order by 排序列)  a  where rownum <= 页号*每页记录数) b
                             where b.rn > (页号-1)*每页记录数


               例:     查出第2页,每页10条记录

                            select * from 
                                 (select a.*, rownum rn from (select * from countries c order by country_name) a  where rownum <= 20) b
                             where b.rn > 10;

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值