精华内容
下载资源
问答
  • 创建查询使用的数据源只能是表
    千次阅读
    2018-12-10 16:26:37

    目录

    正文:

    原理:

    使用:

    举例:

    附:当不使用连接池与数据源技术时的程序(参考)

    附:Name jdbc is not bound in this Context 问题的解决方法


    ————————————————————————————————————————————————————————

    正文:

     参考书籍:Java Web编程技术(第二版)沈则刚

    在设计需要访问数据库的web应用程序时,需要考虑的一个主要问题是如何管理web应用程序的通信(即servlet建立数据库连接、执行查询、处理结果集、请求结束关闭链接)。

    固然可以每一次HTTP请求时创建一个连接对象,但这样会非常麻烦,同时是比较费时间的操作,且部分数据库对同时进行的连接数量支持比web服务器少。

    因此从JDBC2.0开始,出现了使用连接池与数据源技术的访问方法。

    原理:

    事先建立若干连接,将它们放在数据库连接池(connection polling)中供数据访问组件来使用。当应用程序启动,只需要创建少量的连接对象即可。通过javax.sql.DataSource对象获得数据库连接,结束后再放回连接池。

    使用:

    通过数据源获得数据库连接对象不能直接在应用程序中通过实例化生成DataSource对象,而是通过采用Java命名与目录接口【JNDI】技术获得引用。【关于JNDI以后如果涉及会单独论述】。

    在javax.naming包中提供了Context接口,该接口提供了将名字和对象绑定,通过名字检索对象的方法。可以通过该接口的InitialContext获得上下文对象。

    举例:

    (这里的方法仅仅为课程涉及,仅供参考:在Tomcat中配置使用DataSource建立数据库连接)

     

    在Tomcat中可以配置两种数据源,局部数据源全局数据源。前者只能被定义数据源的应用程序中使用,后者可被所有的应用程序使用。

    配置局部数据源(全局数据源暂时不考虑,可见书p184页)

    1. 在Tomcat中的Lib文件夹下复制JDBC驱动(注意不同数据库不同驱动)。
    2. WEB文件中建立一个META-INF目录,在其中建立一个context.xml文件。
    3. 使用以下代码来配置context.xml文件
      <?xml version="1.0" encoding="utf-8" ?>
      <Context reloadable="true">
          <Resource
                  name="jdbc/testDS"//这里可以自定
                  type="javax.sql.DataSource"//不用更改
                  maxActive="4"//可同时为连接池分配的活动连接实例的最大数
                  maxIdle="2"//连接池中可空闲连接的最大数
                  username="root"//数据库用户名
                  maxWait="1000"//没有连接时,连接池抛出异常前最大等待毫秒数
                  driverClassName="com.mysql.jdbc.Driver"//JDBC驱动名,不同数据库不同
                  password="123"//数据库密码
                  url="jdbc:mysql://localhost:3306/no9" />//传递给JDBC驱动程序的数据库URL,可以借用view视窗中的database功能快速生成
      </Context>

       

    4. 在应用程序中使用数据源,使用javax.naming.Context接口的lookup()查找JNDI数据源,注意需要java:comp/env这个前缀,它是JNDI命名空间的一部分,之后加数据源的name

      Context initContext=new InitialContext();
      //注意,下一条语句和下面两行从理论上作用一样,但是前者偶尔会引发找不到JDBC的情况……
      //语句1:DataSource ds=(DataSource)initContext.lookup("java:comp/env/jdbc/testDS");
      //语句2:
      Context envContext =(Context) initContext.lookup("java:comp/env/");
      DataSource ds=(DataSource)envContext.lookup("jdbc/testDS");

       

    5. 得到DataSource对象引用后就可以通过getconnection获得数据库连接对象Connection,使用后调用Connection的close()来将连接对象返回到数据库连接池。
                Connection conn=ds.getConnection();
    //这里注意使用?的时候,需要考虑数据库主键冲突问题,要么设置自动增长(AI),要么设置检测机制
                String sql1="insert into student2 values(?,?,?,?,?)";
                PreparedStatement statement =conn.prepareStatement(sql1);
                statement.setInt(1,id);
                statement.setString(2,name);
                statement.setString(3,gender);
                statement.setInt(4,age);
                statement.setString(5,major);
    //对插入语句进行更新
                statement.executeUpdate();
    //使用后将连接放回到连接池
                statement.close();
                conn.close();

    附:当不使用连接池与数据源技术时的程序(参考)

    可见连接池与数据源技术确实方便了很多,这里仅仅是一个程序进行连接,如果程序很多时,就需要反复写这几段

    package no9.taor;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.*;
    
    @WebServlet(name = "no10record", urlPatterns={"/record"},loadOnStartup=1)
    public class no10record extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //设置头信息
            PrintWriter out=response.getWriter();//设置输出流
            request.setCharacterEncoding("utf-8");//使用前设置字符集编码,此方法仅限post方法有限
            response.setContentType("text/html;charset=UTF-8");
            //获取
            String name= request.getParameter("name");
           int age= Integer.valueOf(request.getParameter("age")).intValue();
            //数据库操作
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
                out.println("driver loaded error!");
            }
            //设置数据库链接
            String dbURL="jdbc:mysql://localhost:3306/no9";
            Connection conn= null;
            try {
                conn = DriverManager.getConnection(dbURL,"root","123");
            } catch (SQLException e) {
                e.printStackTrace();
                out.println("connection built error!");
            }
            //预处理方式处理语句,先插入再更新
            String sql1="insert into student(name,age) values(?,?)";
            PreparedStatement stmt= null;
            try {
                stmt = conn.prepareStatement(sql1);
                stmt.setString(1,name);
                stmt.setInt(2,age);
                stmt.executeUpdate();
                stmt.close();
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
                out.println(e.getMessage());
            }
     

    附:Name jdbc is not bound in this Context 问题的解决方法

    有时我们按上述步骤进行后,会发现报错,报错内容如上,context中找不到那个jbdc驱动……

    网上搜索会发现解决方法往往是这个

    这个方法改动时,会带来更多的问题(像我这种学艺不精的人)

    根据我的经验:

    1. context.xml文件没有创建好,包括打错字以,及类型错误等问题,甚至是创建文件先后的问题……
    2. 如之上局部配置步骤4中所述,两种方法之间的谜之BUG
    3. 此时,首先停止Tomcat,将context.xml文件重新创建一次,并且将应用程序中的数据源使用第四步第二种方法,再次运行,问题解决。

     

     

     

    更多相关内容
  • Tableau工作2.1 Tableau工作2.2 Tableau编辑元数据3. Tableau字段操作3.1 合并字段3.2 字段分层3.3 字段分组3.4 字段拆分3.5 计算字段3.6 集4. Tableau函数与计算4.1 Tableau中的运算符4.2 Tableau函数(1)...

    1. Tableau数据提取

    1.1 先准备要导入tableau的数据

    tableau中的数据提取从数据源创建数据 子集,这有助于通过应用筛选器来提高性能,它还有助于将tableau的某些功能应用于数据源中可能不可用的数据,例如在数据中查找不同的值。但数据提取功能最常用于创建要存储在本地驱动器中的提取,以供tableau脱机访问。数据的提取通过遵循菜单【数据->编辑数据源筛选器】
    在这里插入图片描述
    提取华北及东北地区的家具销售利润低于5000的数据

    1. 先筛选“地区”

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    1. 再筛选“类别”
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
    2. 最后筛选“利润”
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    2. Tableau工作表

    2.1 Tableau工作表

    • 在tableau中添加工作表
    • 在tableau中重命名工作表
    • 在tableau中保存和删除工作表
    • 在tableau中重新排序和移动工作表
      在这里插入图片描述

    2.2 Tableau编辑元数据

    1. 检查元数据
      将“订单”表拖动到数据画布,显示列名称及其数据类型。
      字符串数据类型显示为Abc,数字数据类型显示为#

    在这里插入图片描述
    2. 更改数据类型
    连接到数据源,tableau将捕获源的元数据详细信息,如列及其数据类型,这用于创建视图使用的维度,度量和计算字段,我们可浏览元数拓并更改其某些特定要求的某些属性
    在这里插入图片描述 3. 列的重命名和隐藏
    可以使用重命名选项更改列名称。另外,我们可以隐藏一个列,使它不会出现在我们创建的数据视图中。通过单击元数据网格中的数据类型图标可以获得这些选项。可以试着修改"订单ID"列名为"订单编号",或尝试隐藏该列

    在这里插入图片描述
    4. 列别名
    可以为数据源的每一列分配一个别名,以帮助更好的了解列的性质。我们可以从上面的步骤中选择别名选项,然后出现用于创建或编辑别名选项。

    可以尝试着为"省/自治区"的"上海"这一列数据修改别名为:“上海市”
    在这里插入图片描述
    在这里插入图片描述

    3. Tableau字段操作

    3.1 合并字段

    我们可以组合两个维度字段来创建一个字段。此组合字段的名称是单个字段的组合。通过将两个字符串连接成一个以逗号分隔的字符串,维度中的值将合并为单个值。但是可以使用重命名字段操作更改此默认名称

    例如:将“国家”,“地区”,“城市”合并为一个“地址”字段

    第一步:创建(按住CTRL选中要创建的内容)
    在这里插入图片描述
    第二步:编辑
    在这里插入图片描述
    第三步:改名
    在这里插入图片描述

    第四步:效果
    在这里插入图片描述

    3.2 字段分层

    某些情况下,我们需要对几个变量创建一个分层结构。以便在制图或数据分析时随时向下钻取数据

    例如:将【类别,子类别,产品名称】作为一个分层结构,并命名为【产品类别】,以方便 向下查看

    创建分层
    在这里插入图片描述

    在这里插入图片描述
    拖拽“产品分类”到“行”,显示结果
    在这里插入图片描述
    在这里插入图片描述

    3.3 字段分组

    按文件夹分组
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    3.4 字段拆分

    如果数据中有包含多个信息单元的字符串字段(例如客户的名字和姓氏),在将该字段中的值拆分为多个单独的字段的情况下,数据分析起来将更为轻松
    在这里插入图片描述
    在这里插入图片描述

    3.5 计算字段

    如果基础数据未包括你实际工作中所需的所有字段,你可以在tableau中创建新字段,然后将其保存为数据源的一部分。
    在实际的业务中,我们可能更关心“实际销售额”(实际销售额)=销售额*(1-折扣),但现在表中没有这个字段,只能创建一个名叫“实际销售额”的计算字段

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    3.6 集


    实际工作中,如果我比较关注两块数据,如在示例超市表中,我希望了解利润亏损的产品情况和利润大于5000的产品情况,这个该怎么实现呢???

    例子1:利用Tableau集实现使用销售数据计算至少买过5000元商品的客户占总客户的百分比

    1. 创建集
      在这里插入图片描述

    2. 设置参数
      在这里插入图片描述
      在这里插入图片描述

    3. 添加行和列显示
      在这里插入图片描述

    4. 计算百分比,构建工作表
      在这里插入图片描述
      在这里插入图片描述

    5. 更改标题
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    6. 显示标签值
      在这里插入图片描述

    7. 利用占比表现
      在这里插入图片描述
      在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    例2:示例中多少客户在2016年和2017年都购买过我们的产品

    1. 把客户名称、订单日期、销售额放到相应的地方。
      在这里插入图片描述
    2. 筛选2016
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
    3. 筛选2017
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
    4. 创建合并集

    在这里插入图片描述
    在这里插入图片描述
    5. 用新工作表看效果
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    4. Tableau函数与计算

    4.1 Tableau中的运算符

    运算符是一个符号,通知编译器执行特定的数学或逻辑操作。tableau有多个运算符用于创建计算字段和公式。

    运算符类型

    • 常规运算符
    • 算术运算符
    • 关系运算符
    • 逻辑运算符

    常规运算符
    在这里插入图片描述
    算术运算符
    在这里插入图片描述
    比较运算符
    在这里插入图片描述

    逻辑运算符
    在这里插入图片描述
    算术符优先级
    在这里插入图片描述

    4.2 Tableau函数

    (1)数字函数

    在这里插入图片描述
    例如
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    结果
    在这里插入图片描述
    将"abs(-10)"拖拽到列
    在这里插入图片描述

    (2)字符串函数

    在这里插入图片描述

    例子
    在这里插入图片描述
    在这里插入图片描述

    (3)日期函数

    在这里插入图片描述
    例子
    在这里插入图片描述

    (4) 逻辑函数

    在这里插入图片描述
    在这里插入图片描述

    IIF判断

    在这里插入图片描述
    例1 :IIF(7>5, “Seven is greater than five”, “Seven is less than five”)
    在这里插入图片描述
    例2:利用利润,增加一列为利润评价
    (1)新建字段
    在这里插入图片描述
    (2)切换到数据源查看
    在这里插入图片描述

    IF判断

    在这里插入图片描述
    例子3 :增加一列数量评价
    在这里插入图片描述
    在这里插入图片描述
    多分支判断
    在这里插入图片描述
    在这里插入图片描述

    case

    在这里插入图片描述

    例子:增加邮寄方式这一列
    在这里插入图片描述
    在这里插入图片描述

    复合写法
    在这里插入图片描述

    (5)聚合函数

    在这里插入图片描述
    例子:求和及求平均
    在这里插入图片描述
    在这里插入图片描述
    例子:求统计
    在这里插入图片描述
    在这里插入图片描述

    (6)类型转换函数

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    (7)Tableau计算字段

    Tableau中的数值计算使用公式编辑器中提供的大量内置函数完成。在本例中,我们将看到如何对字段应用计算。计算可以简单地减去两个字段的值或将聚合函数应用于单个字段。

    如:接下来的我们的目标是研究不同运输方式的产品的利润和折扣之间的差异。因此我们创建一个公式,从利润中减去折扣

    颜色含义:函数(淡蓝色) 字段(橙色)运算符(黑色)参数(紫色)注释(绿色)

    例子:邮寄方式和利润折扣关系
    在这里插入图片描述
    在这里插入图片描述

    例子:平均销售额与邮寄方式的关系
    在这里插入图片描述
    在这里插入图片描述

    (8) 字符串计算

    例子:查看包含"安"字的城市的销售情况
    在这里插入图片描述
    在这里插入图片描述

    (9)Tableau日期计算

    例子:每种商品的“订单日期”与“发货日期”的时间总间隔
    在这里插入图片描述
    在这里插入图片描述
    例子:列出“类别”与“利润”与(订单和发货日期时间差)的关系

    在这里插入图片描述

    (10)表计算

    tableau函数与计算中最后一个知识点是:表计算。表计算是一种转换,基于详细级别中的维度将该转换应用于视图中单一度量的值。

    对于任何tableau视图,都有一个由视图中的维度确定的虚拟表。此表不会与数据源中的表混淆。具体来说,虚拟表同“详细信息级别”内的维度来决定,这意味着由tableau工作表中任何以下工作区或卡上的维度来决定

    表计算可以理解为是一种功能更强大的计算字段

    表计算类型

    • 差异计算
    • 百分比差异计算
    • 百分比计算
    • 总额百分比计算
    • 排名计算
    • 百分位计算
    • 汇总计算
    • 移动计算

    差异计算

    对于视图中的每个标记,“差异”表计算将计算表中当前值与另一个值之间的差异
    例如:查看销售额每年中逐月增加或逐月减小的幅度

    1. 先列出某年某季某月的销售额(原始视图)
      在这里插入图片描述

    2. 复制一份原始数据并改名为“差异计算”

    3. 添加"差异计算"
      在这里插入图片描述
      在这里插入图片描述

    4. 一个月比前一个月,点击编辑差异计算
      在这里插入图片描述
      在这里插入图片描述

    5. 二月比一月的差异
      在这里插入图片描述
      在这里插入图片描述

    百分比差异计算

    “百分比差异”表计算将计算表中当前值与另一个值之间的百分比差异。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    百分比计算

    “百分比”表计算会将值计算为某 个其他值的百分比—通常计算为表中前一个值的百分比。如按年分类(从左至右)和按季度和月分类(从上到下)的总销售额
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    45.3%

    总额百分比计算

    "总额百分比"表计算会将值计算为当前分区中所有值的百分比

    1. 复制原始数据
      在这里插入图片描述
    2. 添加表计算
      在这里插入图片描述
      在这里插入图片描述

    排名计算

    给定年度内每个月在总销售额中从最高销售额(排在第1位)到最低销售额(排在第12位)的排名情况
    “排名”表计算将计算分区中每个值的排名

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    百分位计算

    “百分位”表计算在分区中计算每个值的百分位排名
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    想要了解给定年度每个月的值(以百分位表示),而不是了解绝对销售值。对于此类表计算,分配给最低排名值的百分位为0,分配给最高排名值的百分位为100(假设计算按升序进行,这是默认值)。系统会按排为把有其他值分配百分位。因为,对于1,3,22,67这一组的四个值,百分位将分别为0%,33%,67%和100%

    在这里插入图片描述

    汇总计算

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    移动计算

    "移动计算"表计算(有时称为滚动计算)会对当值之前和/或之后指定数目的值执行聚合(总计值、平均值、最小值、最大值)来确定视图中的标记值。移动计算通常用于平滑短期数据婆动,这样可以查看长期趋势。例如:对于证券数据,市场每天都在波动,很难通过每日的上升和下降把握全局。可以使用移动计算来定义一系列值通过所选聚合进行汇总

    要了解总销售额在一段时间内的趋势,如:我想查看每一年每一季季末的平均销售额,而不是季末那一个月的销售额(如:我想查看2013年10月份的数据是:前两个月,即8月,9月及10月的平均销售额,而不是10月份的销售,其他的依此类推)

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    对比【移动计算后的数据】与【原始数据】,验证数据的正确性。
    如:2013年的第一季的最后一个月:三月的原始销售额为:167.17373,移动计算后值为:167,902.57=(231,597.62+104,936.37+167,173.73)/3
    再如:2013年第一季度的第二个月:二月的原始销售额为
    104936.37,移动计算后值为:168266.99=(231597.62+104936.37)/2
    再如:2013年第二季度的第一个月:四月份的原始销售额为:96984.69移动计算后值为:123031.60=(104936.37+167173.73+96984.69)/3
    在这里插入图片描述

    快速表计算

    快速表计算是一个单步骤过程,在此过程中,您可以从列表中选择常用的表计算类型。tableau会为该计算类型自动应用最典型的设置

    快速表计算的步骤:

    1. 单击视图中的度量从上下文菜单中选择“快速表计算”
    2. 从子菜单中选择计算类型
      如果结果令人满意,就表示您完成操作。否则,可以再次单击该度量并选择“编辑表计算”以继续使用计算

    可用快速计算类型的列表与您在“表计算”对话框中看到的默认计算类型的列表并不完全匹配。例如,“复合增长率”快速表计算是选择了“计算复利率”选项的“百分比差异”表计算。如果想要知道如何定义任何给定的快速表计算,请添加计算,然后回去编辑该计算,以查看它在“表计算”对话框中的配置方式。

    临时计算

    临时计算是您在处理视图中功能区上的字段时可创建和更新的计算
    临时计算也称为调用类型输入计算或内联计算

    在这里插入图片描述

    展开全文
  • 【PB】创建数据窗口时数据源使用方式

    千次阅读 热门讨论 2017-06-26 22:01:34
    PB提供5种数据源:Quick Select(快速选择类型)、SQL Select(SQL选择类型)、Query(查询类型)、External(外部类型)和Stored Procedure(存储过程类型)。

            上一篇中有讲到数据源的使用方式有多种,这里来简单介绍下。首先,给大家看一张图:


            PB提供5种数据源:Quick Select(快速选择类型)、SQL Select(SQL选择类型)、Query(查询类型)、External(外部类型)和Stored Procedure(存储过程类型)

    Quick Select

           快速选择类型,只能从一个数据表或者视图中选取数据(无关联的表或者视图)


    SQL Select

           SQL选择类型,可以实现多表查询

    选择表



    选择字段

           选择需要查询的数据字段


    指定检索条件

           还可以根据条件进行查询等等


    Query

           查询类型,PB可以将特定的SQL语句保存为Query对象,不同的Query数据源的数据窗口都可以使用这些已经保存好的SQL语句来提取数据


    External

           外部类型,添加外部数据源,当和不存在于数据库中的数据打交道或者要利用数据窗口的某些特性但不进行数据处理时,使用此数据源。无SQL语句。


    Stored Procedure

            存储过程类型,使用已经定义好的存储过程来做数据源。



           使用PB软件开发程序的小伙伴们一定要好好了解这五种数据源方式哦!

    展开全文
  • 如何创建 SQL Server 数据源

    万次阅读 2017-05-03 20:49:36
    软件环境 ...使用 SuperMap Deskpro .NET 6R (2012)创建数据库型数据源,数据库类型为 SQLServer 2005。 实现思路 连接到 SQL Server 2005 数据库,新建一个数据库登录名,再打开 SuperMap Deskpro

    软件环境
    数据库:SQL Server 2005
    桌面产品:SuperMap Deskpro .NET 6R (2012)
    实现内容
    使用 SuperMap Deskpro .NET 6R (2012)创建数据库型数据源,数据库类型为 SQLServer 2005。
    实现思路
    连接到 SQL Server 2005 数据库,新建一个数据库登录名,再打开 SuperMap Deskpro .NET 6R (2012),用这个新建的数据库登录名,创建一个 SQL Server 数
    据库,也就是 SQL Server 数据源。
    实现步骤
    新建数据库的登录名( 图一 ),设置服务器角色为 dbcreator( 有关服务器角色的概念,请参见附录一 )( 图二 )。不需要设置用户映射,当在 Deskpro .NET 中创建了 SQL Server 数据源后会自动将新创建的数据库映射到新建的这个登录名中。
    这里写图片描述
    这里写图片描述

    1. 打开Deskpro .NET 6R (2012),新建SQL Server数据源,在弹出的新建SQL Server Plus 数据源对话框中,输入数据库服务器名称,或 IP\实例名,数据库名称为用户自定义的名称,例中为 supermap,用户名称和用户密码为在 SQL Server中新建的登录名及其相应的密码(图三 ),点击新建,即可新建成功(图四 )。
      这里写图片描述
      这里写图片描述
    2. 可以再回到 SQL Server 2005 中验证一下是否生成了相应的数据库,刷新数据库,会看到生成了一个名为 supermap 的数据库,再查看之前新建的登录名,会看到默认映射到 supermap 数据库中,并设置了数据库角色身份为db_owner( 执行所有数据库角色活动 )和 public( 维护所有默认权限 )。
      这里写图片描述
      附录一:
    1. 服务器角色:服务器角色限制在发布 SQL Server 时就已经建立于其中的角色,并且,它在这里主要是为了进行系统的维护以及授予完成非数据库特有的事情的能力,如登录账户和创建连接服务器。
      SQL Server 服务器角色是指根据 SQL Server 的管理任务,以及这些任务相对的重要性等级来把具有 SQL Server 管理职能的用户划分为不同的用户组,每一组所具有的管理 SQL Server 的权限都是系统内置的,即不能对其进行添加、修改和删除,只能向其中加入用户或者其他角色。
      SQL Server 服务器角色存在于各个数据库之中,要想加入用户,该用户必须有登录账号以便加入到角色中。SQL Server 提供了七种常用的固定 SQL Server 服务器角色,其具体含义如下:
       系统管理员(sysadmin):拥有 SQL Server 所有的权限许可;
       服务器管理员(serveradmin):管理 SQL Server 服务器端的设置;
       磁盘管理员(diskadmin):管理磁盘文件;
       进程管理员(processadmin):管理 SQL Server 系统进程;
       安全管理员(securityadmin):管理和审核 SQL Server 系统登录;
       安装管理员(setupadmin):增加、删除连接服务器,建立数据库复制以及管理扩展存储过程;
       数据库创建者(dbcreator):创建数据库,并对数据库进行修改。
       Bulkadmin:用于执行 bulk insert 语句的权限,否则的话,只能由具有 sysadmin权限的人来执行 bulk insert 语句。
    2. 数据库角色。数据库角色限制在单个数据库的范围之----用户属于一个数据库中的db_datareader 角色并不意味着他属于另一个数据库中的那个角色。数据库的角色分为两个子类:固定数据库角色和用户自定义数据库角色。这里主要为大家介绍固定数据库角色。固定数据库角色有预先定义好的专门的用途,这是不能使用常规的语句复制出来的。包括以下的内容:
       db_owner :执行数据库中的所有维护和配置活动。
       db_accessadmin :添加或删除 windows 用户、组和 SQL Server 登录的访问权限。
       db_datareader :读取所有用户表中的所有数据。
       db_datawriter: 添加、删除或更改所有用户表中的数据。
       db_ddladmin :在数据库中运行任何数据定义语言 (ddl) 命令。
       db_securityadmin :修改角色成员身份并管理权限。
       db_backupoperator :备份数据库。
       db_denydatareader :无法读取数据库用户表中的任何数据。
       db_denydatawriter :无法添加、修改或删除任何用户表或视图中的数据。
    展开全文
  • spring动态创建,加载,使用数据源

    万次阅读 热门讨论 2013-12-27 16:44:43
    项目中我们经常会遇到多数据源的问题,尤其是数据同步或定时任务等项目更是如此。多数据源让人最头痛的,不是配置多个数据源,而是如何能灵活动态的切换数据源。例如在一个spring和hibernate的框架的项目中,我们在...
  • FastReport使用数据源

    千次阅读 2021-02-26 17:48:11
    文章目录1、序言2、操作数据源2.1 新建数据源2.2 新建链接2.3 选择或SQL查询 1、序言 现有的产品上都是使用的传入DataSet或List数据源,而我接触的时候就思考了一个问题,其实这样对报表或者单据带来了耦合性,...
  • 细说 MySQL 创建表的三种方法

    万次阅读 多人点赞 2021-08-15 21:38:02
    SQL 标准使用 CREATE TABLE 语句创建数据表;MySQL 则实现了三种创建的方法,支持自定义结构或者通过复制已有的结构(CREATE TABLE ... LIKE 以及 CREATE TABLE ... SELECT)来创建新,本文给大家分别介绍...
  • SAP 数据源

    千次阅读 2020-12-15 20:41:31
    SAP BW或者BI作为数据仓库会抽取SAP系统数据和非SAP系统数据系统的主要类型有以下几种: 1、SAP系统:R/3、S/4、CRM、等, 2、文本文件:将数据库转化为XML或者CSV文件放在FTP上,然后去读取数据, 3、数据库...
  • Spring-动态数据源

    千次阅读 2022-02-26 18:17:45
    Spring-动态数据源 动态数据源的原理得先说清。 原理 平常在使用Mysql的时候是通过JDBC的,得给一个url,userName,和password,如下: jdbc:mysql://localhost:3306/t_db1?useSSL=false&...
  • 使用sharding-jdbc解决SaaS系统动态数据源问题

    千次阅读 热门讨论 2021-02-16 21:41:17
    设计思路2.1 SaaS数据隔离的三种方案2.1.1 共享数据(tenant_id)2.1.2 独立schema2.1.3 独立数据库2.2 创建租户思路2.2.1 创建租户时指定数据源2.2.2 创建租户流程3. 使用sharding-jdbc实现4. 总结 1. 需求背景 ...
  • Java+RestltData通过操作数据源获取数据库、数据库、表字段、执行sql等信息
  • SpringBoot使用Nacos动态配置数据源

    千次阅读 2021-03-17 09:35:44
    SpringBoot/SpringCloud项目部署运行后,如果使用硬编码方式定义数据源,那么如果需要更换数据库,就只能通过更改源码并重启的方式来达成目的 而SpringCloud生态中有配置中心这一组件,我们可以将数据源连接属性编写...
  • Grafana配置数据源,自定义查询语法

    万次阅读 多人点赞 2019-08-20 15:38:17
    1.概述--美观、强大的可视化监控指标展示工具 grafana 是一款采用 go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大...每个数据源...
  • springboot使用mybatis多数据源动态切换的实现

    万次阅读 多人点赞 2018-01-23 12:39:31
    需求:项目使用了读写分离,或者数据进行了分库处理,我们希望在操作不同的数据库的时候,我们的程序能够动态的切换到相应的数据库,执行相关的操作。 首先,你需要一个能够正常运行的springboot项目,配置mybatis...
  • 文章目录直接添加数据源(Data Source)添加驱动和数据源(Driver and Data Source)用户驱动 直接添加数据源(Data Source) 直接添加数据源,IDE 会默认指定数据库驱动,如下图所示: ...注意:创建数据源
  • SpringBoot整合Sharding-JDBC,实现从数据库读取sharding-jdbc数据源,实现多种数据库数据源切换,数据库方言动态切换 Hello,隔壁老王时隔很久很久又来了,今天给大家介绍的是一个分库分表的框架—sharding-jdbc。...
  • 要求:请安装Kingbase数据库软件,在数据库软件中创建一个自己名字的模式,在该模式下创建学生关系数据表、课程、选课表。 插入一些数据,尝试查询、更新、删除 二、相关原理与知识 (完成实验所用到的相关原理...
  • 文章目录(1)自定义数据源准备(2)实现自定义数据源功能① 准备环境② 获取数据眼③ 自定义数据源代码示例④ 测试自定义数据源 (1)自定义数据源准备 ...SourceFunction: 非并行数据源(并行度只能=1)
  • ODBC数据源的作用及配置

    千次阅读 2020-09-17 22:08:56
    再以添加SQL Server数据库为例说明一下(创建一个文件DSN),在“创建数据源”对话框中选择"SQL Server",点击下一步, 填写数据源名称,连接的SQL Server服务器(本文使用的是本机数据库,输入本机数据库服务器...
  • 最近项目需要指出多数据源,同时支持事务回滚,这里记录一下 1、多数据源方式介绍 主要方式有以下两种: 通过配置多个SqlSessionFactory 来实现多数据源,这么做的话,未免过于笨重,而且无法实现动态添加数据源...
  • Mybatis-Plus的分页 乐观锁插件 通用枚举 多数据源

    千次阅读 多人点赞 2022-03-17 17:11:57
    根据总尚硅谷杨博超老师的视频总结的Mybatis-Plus 的分页插件 乐观锁插件 通用枚举 多数据源等知识
  • 数据表的定义3. 临时4. 分区5. 视图5.1 普通视图5.2 物化视图 1. 数据库 语法: create database if not exists db_name engine = engine_name on cluster cluster_name drop database if exists db_name on ...
  • ORM(object relationship model)是我们在开发当中必定会用到的一项数据库操作技术,他是我们脱离了繁琐的原生SQL语句,极大的简化了我们开发的难度,使用flask在开发中我们一般使用sqlalchemy作为ORM。 python中想...
  • 1、mybatis多数据源使用场景: 操作同一台服务器上不同的数据库,或者多地机器上的相同或不相同数据库。 进行跨库操作、多数据源进行分离数据; 使得程序得以扩展,当一台或者部分服务器宕机,不影响整个应用的...
  • SQL(创建导入数据)

    千次阅读 2019-06-13 08:47:19
    创建导入数据 1 在数据库中创建一个新的数据库,命名。 2 命名之后在数据库文件选择路径,两个都要确定。 3 在新建的数据库中新建一个,... 路径:数据源excel;文件路径根据文件所在的地方; 然后是...
  • 文章目录多数据源系列简介实操基本使用集成druid连接池源码分析整体结构总结 简介 前两篇博客介绍了用基本的方式做多数据源,可以应对一般的情况,但是遇到一些复杂的情况,比如:动态增减数据源数据源分组,纯粹...
  • 最近项目有使用到多数据源,写一篇博客分享给大家,也当给自己做个记录。 我使用的数据库版本为: MySql:8.0.15 Orcale:11g(11.2.0.1.0) 1:pom文件添加配置文件: <!-- mysql --> <dependency> &...
  • excel切片器默认情况下,只能对同一数据源做联动,插入切片器后,右键-【报表连接】,然后选择多个透视就可 如果对不同数据源,就要用power pivot进行连接,类似于SQL中的Join 先选中Ctrl+T 转成表格后,选择...
  • 如图 7‑12所示为某公司销售订单汇总的数据透视,其数据源为外部数据连接,当该数据透视数据源发生变动时,如果需要将变动后的数据更新到数据透视中,就需要对数据透视进行手动刷新操作。那么,有没有...
  • Dataphin数据中台使用

    千次阅读 2022-04-22 20:35:15
    目录 一、产品功能介绍 ...1).dataphin拥有开发/测试环境(XX_XX_XX_DEV)和生产环境(XX_XX_XX),使用Dev-Pord模式,将任务调度配置成功之后,进行发布,然后在发布模块,再次进行发布,该任务就会进入到生产..

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 488,487
精华内容 195,394
热门标签
关键字:

创建查询使用的数据源只能是表