我有字符串数组[1,2,3],我使用Arrays.binarySearch搜索所有这些数字,它找到1和2,但是3,它返回-1.任何想法为什么它这样工作?什么是总是在数组/集合中搜索的更好的替代方案?
考虑一个包含3列的表:ID(唯一的,取自Oracle序列),CATEGORY和CODE(最后两个没有约束).
每个类别都附加了多个代码,但代码在该类别中必须是唯一的.例:
ID CATEGORY CODE
1 1 X
2 1 Y
3 1 Y //wrong
Run Code Online (Sandbox Code Playgroud)
第三个不行,因为我们已经为类别1提供了代码Y.
现在考虑在插入和检查之前运行的触发器,以查看要插入的值是否正常.也就是说,对于正在插入的记录,触发器读取类别,然后从表中读取具有该类别的所有代码,如果必须插入的记录中的代码已经存在,则引发异常以便记录没有插入.
我的问题是,如果事务隔离级别是,READ_COMMITED并且在两个不同的事务中几乎完全同时执行了两个插入但是事务稍后提交,那么触发器会在表中"看到"的内容是什么?
例:
(1)最初,表格如下所示:
ID CATEGORY CODE
1 1 X
Run Code Online (Sandbox Code Playgroud)
(2)T1和T2有两个事务(READ_COMMITED两者的隔离级别);
(3)两个交易都要插入category = 1和code = Y;
(4)T1执行插入并执行触发.表中没有Y所以可以插入;
(5)T2执行插入并执行触发.表中没有Y(T1尚未提交),因此可以插入;
(6)T1提交,表现在看起来像这样:
ID CATEGORY CODE
1 1 X
2 1 Y
Run Code Online (Sandbox Code Playgroud)
(7)T2现在提交.这里发生了什么?我是否收到错误并且未插入记录或我得到下表:
ID CATEGORY CODE
1 1 X
2 1 Y
3 1 Y //this is wrong
Run Code Online (Sandbox Code Playgroud)
?!
触发器"看到"什么以及插入物会发生什么?
嘿那里,
我目前正在开发一个基于PHP的工具来监控相当多的URL及其重定向状态.我花了很长时间才找到获取HTTP响应头内容的最佳方法来提取当前的重定向代码和位置.这就是目前的做法:
$resource = fopen( $url, 'r' );
$metadata = stream_get_meta_data( $resource );
$metadata = $metadata['wrapper_data'];
// Looping through the array to find the necessary fields
Run Code Online (Sandbox Code Playgroud)
这适用于我正在监控的95%的URL.还有一些我通过解析网站在执行重定向之前返回的实际HTML来解决它,因为它包含类似"此网站已被移动到此处"的内容.这似乎不是一个非常强大的解决方案,但它在一些情况下有所帮助.
这仍然留给我一些我无法自动检查的URL.
像Ask Apache HTTP Headers Tool这样的工具似乎更可靠,我想知道什么是获得重定向信息的更好方法?
生成数据库ID的最佳策略是什么?用数据库生成器?使用自定义发电机?各有哪些优缺点?
我刚刚从微软网站安装了VS2010 Beta 1,我启动了一个基本的C++ Win32控制台应用程序,它生成了以下代码:
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我尝试编译代码只是为了看它是如何运行的,然后我遇到了几个(超过100个)编译错误.
这是构建输出的第一部分:
1>ClCompile:
1> stdafx.cpp
1>c:\program files\microsoft visual studio 10.0\vc\include\crtdefs.h(520): error C2065: '_In_opt_z_' : undeclared identifier
1>c:\program files\microsoft visual studio 10.0\vc\include\crtdefs.h(520): error C2143: syntax error : missing ')' before 'const'
1>c:\program files\microsoft visual studio 10.0\vc\include\crtdefs.h(520): warning C4229: anachronism used : modifiers on data are ignored
1>c:\program files\microsoft visual studio 10.0\vc\include\crtdefs.h(520): error C2182: '_invalid_parameter' : illegal use of type 'void'
1>c:\program files\microsoft visual studio 10.0\vc\include\crtdefs.h(520): error …Run Code Online (Sandbox Code Playgroud) 好吧,我现在已经在几个项目中使用了Hibernate,但在使用之前我没有学习它的复杂性.我开始查看使用JPA Annotations并与Spring集成的代码,一切运行良好.但是现在我想向我的学生讲授基本的Hibernate,并且我正在创建一个示例并使用文档教程第1章,我遇到了在一个持久化类中保存一组集合值的问题.
这是持久性阶级......
public class Student {
private Long id;
private String firstName;
private String lastName;
private Set<Course> courses = new HashSet<Course>();
private Set<String> contactDetails = new HashSet<String>();
//getters and setters
}
Run Code Online (Sandbox Code Playgroud)
映射文件......
<hibernate-mapping package="com.phoenixone.school.model">
<class name="Student" table="student">
<id name="id" column="studentId">
<generator class="native" />
</id>
<property name="firstName" />
<property name="lastName" />
<set name="courses" table="student_course" lazy="false">
<key column="studentId" />
<many-to-many column="courseId" class="Course" />
</set>
<set name="contactDetails" table="contactDetails">
<key column="studentId" />
<element type="string" column="contactDetail" />
</set>
</class>
</hibernate-mapping>
Run Code Online (Sandbox Code Playgroud)
DAO(保存部分)
public class StudentDaoHibernate …Run Code Online (Sandbox Code Playgroud) 我最近有一个"泄漏"文件描述符的Linux进程:它打开它们并没有正确关闭其中的一些.
如果我对此进行了监控,我可以提前告知 - 该过程已达到极限.
是否有一个很好的Bash\Python方法来检查Ubuntu Linux系统中给定进程的FD使用率?
编辑:
我现在知道如何检查有多少个打开的文件描述符; 我只需要知道进程允许多少个文件描述符.某些系统(如Amazon EC2)没有该/proc/pid/limits文件.
谢谢,
乌迪
我创建了自己的用户控件,它只包含一个面板:
当我在设计器中拖动myPanel对象然后尝试在其上添加一个按钮时,该按钮实际上被添加到窗体的控件中.
我必须设置一个属性/属性才能执行此操作,另一种方法可以执行我想要的操作吗?
public class MyPanel : UserControl
{
private Panel panelMain;
public MyPanel()
{
InitializeComponent();
}
private void InitializeComponent()
{
this.panelMain = new System.Windows.Forms.Panel();
this.SuspendLayout();
//
// panelMain
//
this.panelMain.BackColor = System.Drawing.SystemColors.ActiveCaption;
this.panelMain.Dock = System.Windows.Forms.DockStyle.Fill;
this.panelMain.Location = new System.Drawing.Point(0, 0);
this.panelMain.Name = "panelMain";
this.panelMain.Size = new System.Drawing.Size(150, 150);
this.panelMain.TabIndex = 0;
//
// myPanel
//
this.Controls.Add(this.panelMain);
this.Name = "MyPanel";
this.ResumeLayout(false);
}
}
Run Code Online (Sandbox Code Playgroud) 我想快速检查我的iPhone应用程序的Documents目录(或任何路径)中是否存在文件.我可以枚举目录的文件,或者我可以尝试打开一个特定的文件.什么是最快的方式?我只需要知道文件是否存在或者是否存在.
我正在制作的程序旨在无人值守运行,因此我将stdout和stderr流重定向到日志文件.虽然这没有任何问题,但我仍在制作和调试软件,我希望它也显示在屏幕上.这可能吗?
重定向我使用过的流
System.setErr(logWriter);
System.setOut(logWriter);
Run Code Online (Sandbox Code Playgroud)
谢谢.
java ×3
arrays ×1
c# ×1
c++ ×1
cocoa-touch ×1
compilation ×1
database ×1
file-manager ×1
hibernate ×1
http-headers ×1
ios ×1
iphone ×1
limit ×1
linux ×1
oracle ×1
persistence ×1
php ×1
redirect ×1
scripting ×1
stderr ×1
stdout ×1
transactions ×1
triggers ×1
winforms ×1