temp

mysql 常见语法

眉间皱痕 提交于 2020-02-16 19:01:53
一、数据库简单介绍 1、 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系统中,关系型数据库使用最为广泛。面向对象数据库则是由面向对象语言催生的新型数据库,目前的一些数据库系统,如:SQL Server 2005、Oracle10g等都开始增加面向对象的特性。 二、常用基本SQL语句/语法 Ø SQL 语句基础理论 SQL是操作和检索关系型数据库的标准语言,标准SQL语句可用于操作然后关系型数据库。 标准的 SQL 语句通常划分为以下类型: 查询语句: 主要由于select关键字完成,查询语句是SQL语句中最复杂,功能最丰富的语句。 DML (Data Munipulation Language,数据操作语言)语句,这组DML语句修改后数据将保持较好的一致性;操作表的语句,如插入、修改、删除等; DDL (Data Definition Language,数据定义语言)语句,操作数据对象的语言,有create、alter、drop。 DCL (Data Control Language,数据控制语言)语句,主要有grant、revoke语句。 事务控制语句: 主要有commit、rollback和savepoint三个关键字完成 DDL 语句 DDL语句是操作数据库对象的语句

二叉树

无人久伴 提交于 2020-02-16 13:03:09
二叉树的性质: 完全二叉树和满二叉树的概念: 二叉树的广义表表现形式: 将广义表转换为二叉树(伪代码): 设置一个标记变量 k,初始为 -1; 设置一个标记节点 p; 循环遍历存储广义表的字符串 str: 如果 str[i] 是左括号: 则设置 k 为 0; 把 p 压入栈中。 否则如果 str[i] 是逗号: 则设置 k 为 1。 否则如果 str[i] 是右括号: 则栈顶元素出栈。 否则如果 str[i] 是一个字母,用节点 temp 来存储: 如果 k 为 -1: 则把 temp 作为根节点并压入栈中。 如果 k 为 0: 如果此时栈顶节点是 p,则先出栈; 然后将 temp 作为栈顶节点的左孩子; 再把 temp 压入栈中。 如果 k 为 1: 栈顶元素出栈; 将 temp 作为栈顶节点的右孩子; 再把 temp 压入栈中。 输出二叉树的广义表形式伪代码: 输出节点存储的值; 如果左孩子不为空: 输出 “(”; 递归输出左子树; 如果右孩子为空: 输出 “)”。 如果右孩子不为空: 如果左孩子为空: 输出 “(”。 输出 “,”; 递归输出右子树; 输出 “)”。 根据先序遍历和中序遍历,输出二叉树 , Node *build(char pre_str[], char in_str[], int len){ Node *p = init(pre_str[0] - ‘0’);

java.lang.RuntimeException: java.util.ConcurrentModificationException

 ̄綄美尐妖づ 提交于 2020-02-15 17:38:31
java.lang.RuntimeException: java.util.ConcurrentModificationException解决方法: 一开始的代码是这样的 public static Collection<MailModel> query(MailQuery mailQuery){ List<MailModel> temp = new ArrayList<MailModel>(); Iterator iterator = items.iterator(); while (iterator.hasNext()){ MailModel mm = (MailModel) iterator.next(); if (!mm.getDeptId().equals(mailQuery.getDeptId())){ // temp.add(mm); items.remove(mm); } } // items.removeAll(temp); return items; } 至于为什么报错呢? 项目中为了获取Collection中的某个值使用了Iterator,但像List,map等Collection的实现并没有同步化,如果在多线程应用程序中出现同时访问,而且出现修改操作的时候都要求外部操作同步化

spring data jpa使用别名--as

♀尐吖头ヾ 提交于 2020-02-15 13:30:29
使用jpa进行两表联查时总会有字段名相同,所以需要用别名进行区分; 例子: department表同时包含子级id和父级id: 查询语句为: select d.id,d.name,d.description,d.parent_id,temp.name as parent_name from department d,department temp where d.parent_id=?1 and if(d.parent_id=-1,d.id=temp.id,d.parent_id=temp.id) 此时希望同时获取部门信息、部门的父级id和父级部门名称,但不希望在department表在新建一列parent_name,所以我们可以使用@Transient注解表示该属性并非是一个要映射到数据库表中的字段; 但使用@Transient注解需要注意: 1、直接将@Transient注解直接加在parentName属性上,数据库不会创建parent_name字段,上述查询也无法获取值; 2、将@Transient注解加在parentName属性的get方法上,数据库会创建parent_name字段,上述查询可以获取值; 3、将@Transient注解加在parentName属性的set方法上,数据库不会创建parent_name字段,上述查询可以获取值; 关键代码如下: package

NYOJ3——多边形重心问题

≯℡__Kan透↙ 提交于 2020-02-15 11:02:05
多边形重心问题 时间限制: 3000 ms | 内存限制: 65535 KB 难度: 5 描述:在某个多边形上,取n个点,这n个点顺序给出,按照给出顺序将相邻的点用直线连接, (第一个和最后一个连接),所有线段不和其他线段相交,但是可以重合,可得到一 个多边形或一条线段或一个多边形和一个线段的连接后的图形; 如果是一条线段,我们定义面积为0,重心坐标为(0,0).现在求给出的点集组成的图形的面积和重心横纵坐标 的和; 输入:第一行有一个整数0<n<11,表示有n组数据; 每组数据第一行有一个整数m<10000,表示有这个多边形有m个顶点; 输出:输出每个多边形的面积、重心横纵坐标的和,小数点后保留三位; 样例输入 3 3 0 1 0 2 0 3 3 1 1 0 0 0 1 4 1 1 0 0 0 0.5 0 1 样例输出 0.000 0.000 0.500 1.000 0.500 1.000 思路来源:http://blog.csdn.net/kay_zhyu/article/details/8805631 代码: #include<stdio.h> #include<math.h> const int N = 10001; struct POINT { double x; double y; }; POINT point[N]; int main() { int n,num,i;

A*算法实践

末鹿安然 提交于 2020-02-15 08:48:13
关于A*算法使用的总结和体会 部分理论叙述转自:https://blog.csdn.net/hitwhylz/article/details/23089415 **A 算法的使用范围:**最普遍的就是矩形网格上的最短路,可以拓展至其他几何图形网格,但我认为一定得是能够计算出估计值并且满足乐观图条件的网格才能使用A 算法。 A 算法的必要组成: A 算法是一种基于bfs类似dijkstra的启发式算法,其核心便是 F = G + H 这里,G = 从起点 A 移动到指定方格的移动代价,沿着到达该方格 而生成的路径。H = 从指定的方格移动到终点 B 的估算成本。 其他成分我做了一个例举: 1、open list 用于储存被松弛的点,由于A*算法每次都要以F值最小的在列点开始,可以配合结构体使用优先队列来实现。 2、close list 用于储存“松弛过别的点的点”(注意,不是被松弛过的点,那些点可能会被多次操作),在程序中可以使用布尔数组vis实现。 3、father记录,每次执行松弛操作后,被松弛的点的父节点改为执行松弛操作的点,可以轻松追溯路径,使用father数组储存。 4、distance记录,判断能否执行松弛操作的一项值就是distance是否减少,distance储存的是每个节点的G的最小值。 H(估计值)的计算方法 目前我仅了解两种: 1、曼哈顿估值: H=|Xend

43. 字符串相乘

走远了吗. 提交于 2020-02-15 05:49:54
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 示例 1: 输入: num1 = “2”, num2 = “3” 输出: “6” 示例 2: 输入: num1 = “123”, num2 = “456” 输出: “56088” 说明: 1).num1 和 num2 的长度小于110。 2)num1 和 num2 只包含数字 0-9。 3)num1 和 num2 均不以零开头,除非是数字 0 本身。 4)不能使用任何标准库的大数类型(比如 BigInteger)或直接将输入转换为整数来处理。 解答:类似于字符串计算的问题,一般都可以采用竖式计算来解决。 注意的要点有: 1)进位carry( 尤其是最后一次进位 ) 2)num1与num2的每一位的乘法结果后要视情况补0 图片来自leetcode class Solution { public : string multiply ( string num1 , string num2 ) { if ( num1 == "0" || num2 == "0" ) return "0" ; string result = "" ; //num2逐位与num1相乘 for ( int i = num2 . size ( ) - 1 ; i >= 0 ; -- i

冒泡排序及其优化的C++代码实现

谁说胖子不能爱 提交于 2020-02-14 11:35:46
关于冒泡排序算法,这里就不多说了。 简单说一下优化,一般的冒泡排序是单向的,而其优化之一就是双向冒泡:正向扫描获取最大值,反向扫描获取最小值。 由于C++11以前的实现有点复杂,在此就基于C++11新特性来实现,并写成库的形式。 编译环境:C++11 代码实现如下: #include <type_traits> // std::declval template<typename _Tp> void swap(_Tp &a1, _Tp &a2) { _Tp tmp = a1; a1 = a2; a2 = tmp; } template<typename _Tp> struct Comparator { int operator()(const _Tp &arg1, const _Tp &arg2) const { if(arg1 < arg2) return 1; if(arg2 < arg1) return -1; return 0; } }; typedef unsigned long size_type; /// 普通冒泡排序 /// 范围:[beg, end) /// 参数限定:支持前向迭代 template<typename _ForwardIter, typename _Compare = Comparator<decltype(*std::declval<

MP3播放-基于MCI-API接口

谁都会走 提交于 2020-02-14 00:42:19
今天整理到音频播放的部分,本来就想抽取一个简单的接口方便以后可能会用到,然而不知不觉就把常用的功能都给一起封装好了,核心其实就是调用MCI的API接口,具体的功能就是变换不同的MCI指令来实现。 ========== 原创作品 作者:未闻 出处:博客园 ========== 一、常见的音频播放方式 * System.Media.SoundPlayer:播放wav * MCI Command String:播放MP3、AVI等 * axWindowsMediaPlayer:COM组件,功能丰富易用 二、 注意事项 * 应用于窗体程序,不能应用于控制台程序(不知道是不是因为取不到窗体句柄,加Sleep也没用,知道的不妨留言告知) 三、代码 封装好的类,可以直接用了,这里用了单例简化了用法,其实只要别名不一样,还可以支持同时播放多个音频。 /// <summary> /// MP3播放器(基于MCI-API接口) /// 作者:未闻 /// 时间:2020.02.13 /// /// 详细的指令介绍 /// https://blog.csdn.net/psongchao/article/details/1487788 /// </summary> public class MP3Player { // 播放标记,MCI接口是基于这个标记来处理,看播放暂停等代码就能明白

js字符串编码和unicode编码互转

大兔子大兔子 提交于 2020-02-13 14:37:57
//字符串编码转为unicode编码 function charToUnicode(str) { let temp; let i = 0; let r = ''; for (let val of str) { temp = val.codePointAt(0).toString(16); while ( temp.length < 4 ) temp = '0' + temp; r += '\\u' + temp; }; return r; } //unicode编码转为字符串编码 function unicodeToChar(str){ //方案一 return eval("'" + str + "'"); //方案二 return unescape(str.replace(/\u/g, "%u")); } //js获取字符串长度(字符真实个数) //由于es5之前都将此类四个字节组成的字符"𠮷"("𠮷".length == 2)处理成2个长度,所以使用"for of"方法可以正确遍历字符串的长度 function getLength(str){ let length = 0; for(let val of str){ length++ } return length }    //codePointAt方法是测试一个字符由两个字节还是由四个字节组成的最简单方法。 function