首页 文章 精选 留言 我的

精选列表

搜索[网站开发],共10000篇文章
优秀的个人博客,低调大师

应用开发数据库之ORACLE 12C初探

简介 oracle 12c较oracle之前的版本最大的改变就是引入了CDB(Container Database)与PDB(Pluggable Database)的新特性,其引入的多租用户环境,允许一个数据库容器(CDB)承载多个可拔插的PDB。在12从之前,数据库是实例与数据库是一对一或多对一关系(RAC)。当12C之后,数据库与实例可以是多对一的关系。ORACLE 12C在JDBC方面也有所改动!传统的链接方法:jdbc:oracle:thin:@localhost:1521:orcl,新的的链接jdbc:oracle:thin:@127.0.0.1:1521/pdborcl! PDB介绍 01. oracle12C 通过默认的sqlplus / as sysdba 默认进入的使“CDB$ROOT”环境,该环境下不允许用户新建用户,否则的话会报“ORA-65096:不合法的用户或角色”。如下代码 SQL>select sys_context ('USERENV', 'CON_NAME') from dual; ---------------------------------------------------------------------------------------------------- CDB$ROOT02. 可以通过如下命名查看当前实例下有多少租户(多少数据库):如下代码: SQL>select con_id,dbid,NAME,OPEN_MODE from v$pdbs; ------------------------------------------------------------------------------- CON_ID DBID NAME OPER_MODE 2 3074450648 PDB$SEED READONLY 3 1604605593 ORCLPDB MOUNTED (备注:mounted状态,此时数据库不可用) 03. 通过使用如下命令,将其插拔上: alter pluggable database pdborcl open;此时con_ID=3的OPER_MODE状态变为“read,write”状态了,表名此时,数据库可以用了(任何数据库客户端都可以正常连接该数据库)。 04. 通过如下命名,可以在pl/sql终端进行环境(数据库)的切换 alter session set container=ORCLPDB;05.可以在该命令下,执行像单实例单数据库的操作(包括创建用户等等一系列的操作)。 ORACLE 12C JDBC操作 01. 在oracle12C之前的JDBC不能继续使用,需要更换为支持ORACLE12C的JDBC驱动程序,目前支持的版本有(ojdbc7或ojdbc8),需要官网上下载。 02. 连接方式上: oracle12c以前的连接方式不会被支持:如果url为如下地址: jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:ORCLPDB将会抛出如下的错误信息 Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor at oracle.net.ns.NSProtocolNIO.negotiateConnection(NSProtocolNIO.java:271) at oracle.net.ns.NSProtocol.connect(NSProtocol.java:317) at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1438) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:518) 正确的写法如下: jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521/ORCLPDB

优秀的个人博客,低调大师

Android应用开发—PendingIntent:如何判断两个PendingIntent对等

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/voidreturn/article/details/78995910 摘录自:PendingIntent详解 如何判断两个PendingIntent对等: 两个PendingIntent对等是指它们的operation一样, 且其它们的Intent的action, data, categories, components和flags都一样。但是它们的Intent的Extra可以不一样。 主要常量 FLAG_CANCEL_CURRENT:如果当前系统中已经存在一个相同的PendingIntent对象,那么就将先将已有的PendingIntent取消,然后重新生成一个PendingIntent对象。 FLAG_NO_CREATE:如果当前系统中不存在相同的PendingIntent对象,系统将不会创建该PendingIntent对象而是直接返回null。 FLAG_ONE_SHOT:该PendingIntent只作用一次。在该PendingIntent对象通过send()方法触发过后,PendingIntent将自动调用cancel()进行销毁,那么如果你再调用send()方法的话,系统将会返回一个SendIntentException。 FLAG_UPDATE_CURRENT:如果系统中有一个和你描述的PendingIntent对等的PendingInent,那么系统将使用该PendingIntent对象,但是会使用新的Intent来更新之前PendingIntent中的Intent对象数据,例如更新Intent中的Extras。

优秀的个人博客,低调大师

AgileEAS.NET平台开发实例-药店系统-BLL层分析

介绍 上篇我们分析了AgileEAS.NET平台的DAL层的设计与相关的使用说明分析,本篇我们来分析下业务逻辑层/服务层的设计与分析,并且分析下如何抽离单独的业务逻辑 层,分离出单独的分布式访问服务支持。我们主要是分析如何设计出严格的基于现有DAL层之上的BLL->服务层>UI层这样的分层设计模式,本系列中的药店系统则采用的分层 方式是DAL->BLL层->UI层,下面我们来分析下这2种的不同的实现方案及代码的组织,并且分析关于分布式服务支持的写法和内部的实现原理分析。 大纲 1、DAL->BLL层->服务层->UI层。 2、DAL->BLL层->UI层。 3、AgileEAS.NET平台的分布式访问支持的契约分析。 DAL->BLL层->服务层->UI层 我们先来看看大家比较关系的将业务层与服务层职责相分类的实现方案。 通过上图我们知道这个分层架构中每层的职责,那么下面我们将会对每层的职责进行一个严格的划分和设计说明: 既然DAL层我们不添加任何的内容,那么我们把跟该实体相关的业务逻辑添加到BLL层,下面我们来看看。 有了相关的业务逻辑层我们就可以在服务层完成一些业务逻辑流程的组织:可以理解成服务层就是通过外观模式来控制业务逻辑流程的外观层。 综上所述,服务层就相当于一个业务逻辑流程的粗粒度的接口,当然我们在服务层与业务逻辑层之间通过DTO来传输数据。 关于上述架构的组织,我会在后续的案例场景中单独的写出一些使用该架构的案例结合AigleEAS.NET来完成。 DAL->BLL层->UI层 本节来分析下,我们之间通过BLL层来完成相关业务逻辑及业务流程的组织,例如上篇讲述的关于药品出库操作时的业务流程管理。 上图中描述了业务逻辑层的职责: 我们来看看药品出库操作时的相关业务逻辑层业务: 2、我们看到了每个业务逻辑中的写法与平时我们的写法差别不大,下面我们来解析下内部的具体实现原理和使用分析: 3、上面我们还没有查看如何使用事务来执行批量操作呢?这也是该AgileEAS.NET平台的亮点之一,通过委托来执行事务,很方便的书写批量的事务操作。 4、下面我们来看看具体的调用事务执行的函数定义与委托定义: 函数的委托定义: 包含自定义参数 不包含自定义参数 5、调用事务执行方法定义: 6、通过上面我们就知道了委托事务的执行思路了,可以参考着自己实现一遍,当然可能还有更好的解决方案,不过我觉得这样的写法,写起来比较不错。 AgileEAS.NET平台的分布式访问支持 本节我们来分析下AgileEAS.NET平台实现分布式访问的原理解析,当然具体的实现,我这里可能也给不出具体的实现代码。 目前平台主要是支持如下几种格式的分布式访问: 下面我们来一步步分析分布式访问的内部实现原理 1、下面我们来分析下这个服务IOC容器的内容: 2、查看服务组件基类的相关定义: 该类只是定义一个契约,满足该契约的类都可以支持分布式服务。 3、查看“SessionObject的内部定义” 4、通过上面我们知道,AgileEAS.NET平台使用MarshalByRefObject来支持分布式访问,所以下面我们只需要实现好业务逻辑层中的业务逻辑即可。关于具体的使用及 分布式服务的配置,会在后面的应用部署模块中详细的阐述如何部署分布式访问。 总结 本篇也是分析了关于分布式访问的实现方案和原理进行了分析,关于具体的配置和如何使用分布式服务等,后续会在模块的应用部署及配置的环节中详细的阐述,当然 由于本人的水平有限,或者是对AgileEAS.NET的研究程度不深刻,所以部分讲述的不清楚或者不明白,还请大家批评指出。 本文转自何戈洲博客园博客,原文链接:http://www.cnblogs.com/hegezhou_hot/archive/2011/04/01/2002084.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

【iOS 开发】Xcode9 自动签名更新设备列表

内测分发测试 iOS App 的时候,在 https://developer.apple.com/account/ios/device/ 添加了设备的 UDID 之后,往往 Xcode 这边不会及时同步信息,提供一个解决办法: 去 ~/Library/MobileDevice/Provisioning 这个路径下删除所有内容(注:如果你同时管理了多个 AppleID 或者有一些无法通过 AppleID 自动同步的 provisioning profile 要防止误删) 如下图,在 Xcode 偏好设置里面点击 Download Manual Profiles 把云端管理的 provisioning profile 下载到 Xcode 把项目的 Build Target 选为真机,在自定签名的地方点按 i 按钮可以看到更新后的设备总数

优秀的个人博客,低调大师

Android开发实践:JNI层线程回调Java函数示例

JNI是Java Native Interface的缩写,是Java平台的重要特性,使得Java代码可以方便地与C/C++代码编译生成的动态链接库进行交互。本文主要给出一份示例代码(工程文件见附件),描述如何在Android的JNI层开启一个线程,并在线程中回调Java层的函数。 代码主要分为Java层(java代码)和JNI层(c语言代码),首先看看Java层的代码(Native.java)。 如上所示,Java层与JNI层的接口代码主要封装在Native类中,该类定义了三个native函数,分别完成jni库的初始化,调用jni层开启线程,调用jni层关闭线程等功能。并且提供一个回调函数(onNativeCallback),供jni层调用,并在回调函数中打印count的值。 再看看JNI层是如何开启线程并回调Java层的(native.c),关键的地方都在代码中进行了注释: 1. 头文件包含和全局变量的定义 2. 初始化函数的实现 3. 开启关闭线程的实现 4. 线程的实现(关键) 由上述代码可以看到,JNI层通过pthread库完成了线程的创建,需要特别注意的是,JNI层的线程中,必须通过全局的JavaVM来获取到环境变量,也必须通过全局的jobject获取java类对象,从而找到java端的函数,进行回调。 本文转自 Jhuster 51CTO博客,原文链接:http://blog.51cto.com/ticktick/1358558,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册