问题列表 - 第12079页

你如何确定什么应该是主键?

这是一个相当普遍的问题,但我想知道你在确定表的主键时使用了什么.随你提供的示例非常需要.

我注意到许多程序员添加了ID列并将其用作主键.我认为,从设计的角度来看,它存在缺陷,因为在这种情况下,ID与表格无关.

mysql sql database-design

7
推荐指数
2
解决办法
529
查看次数

测试JavaScript代码而不重新创建标记?

我想在我们的网络应用程序中测试JavaScript代码.我们正在使用jQuery库和.Net MVC.我看了这些答案,jqUnit看起来不错,所以我试了一下,只是意识到我必须为我想要测试的每个页面重新创建所有标记.

我错过了什么吗?有没有其他方法来测试JS/jQuery代码?我们的标记有时很复杂,并且由于AJAX调用而变化很大.

我能想到的最好的尝试是将我们的应用程序粘贴在测试页面上的iframe中.尚未尝试过.

javascript markup jquery unit-testing

6
推荐指数
1
解决办法
657
查看次数

JDBC基本概念,池和线程

我总是在单线程环境中使用JavaSE中的JDBC.但是现在我需要使用连接池并让许多线程与数据库(MSSQL和Oracle)进行交互,我很难尝试制作它,因为我似乎缺少api的一些基本功能.

连接和记录a后的AFAIK Connection表示与数据库的picalical tcp/ip连接.它创建的Statement(s)可以被视为与数据库之间的SQL交互Connection.

  • 交易和回滚在哪里?它是在水平Connection还是Statement水平.
  • 'one' Connection创建N语句并将其赋予不同的线程以便让每个人拥有它的使用是否安全Statement

如果没有,并在配置池后像这样:

OracleDataSource ods = new OracleDataSource(); 
ods.setURL("jdbc:oracle:thin:@tnsentryname");
ods.setUser("u");
ods.setPassword("p");
Run Code Online (Sandbox Code Playgroud)
  • 顺便说一句,我在哪里设置连接池大小?

  • 这是我在每个线程中要做的,以便正确使用连接?

// thead run方法

Connection conn = ods.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("the sql");
// do what I need to do with rs
rs.close();
int updateStatus = stmt.executeUpdate("the update");
stmt.close();
conn.close();
Run Code Online (Sandbox Code Playgroud)

//线程运行方法结束

  • 如果池的任何物理连接以某种方式崩溃或断开连接,池是否会自动尝试重新连接并在池中注入新连接,以便后续的pool.getConnection()只获得健康连接?

非常感谢,请原谅我的坏英语.

java oracle multithreading connection-pooling jdbc

8
推荐指数
2
解决办法
9462
查看次数

生成动态方法以设置结构的字段而不是使用反射

假设我有以下代码更新struct使用反射的字段.由于struct实例被复制到DynamicUpdate方法中,因此需要在传递之前将其装箱到对象.

struct Person
{
    public int id;
}

class Test
{
    static void Main()
    {
        object person = RuntimeHelpers.GetObjectValue(new Person());
        DynamicUpdate(person);
        Console.WriteLine(((Person)person).id); // print 10
    }

    private static void DynamicUpdate(object o)
    {
        FieldInfo field = typeof(Person).GetField("id");
        field.SetValue(o, 10);
    }
}
Run Code Online (Sandbox Code Playgroud)

代码工作正常.现在,假设我不想使用反射,因为它很慢.相反,我想生成一些CIL直接修改id字段并将该CIL转换为可重用的委托(例如,使用动态方法功能).特别是,我想用s/t替换上面的代码,如下所示:

static void Main()
{
    var action = CreateSetIdDelegate(typeof(Person));
    object person = RuntimeHelpers.GetObjectValue(new Person());
    action(person, 10);
    Console.WriteLine(((Person)person).id); // print 10
}

private static Action<object, object> CreateSetIdDelegate(Type t)
{
    // build dynamic method …
Run Code Online (Sandbox Code Playgroud)

.net c# reflection reflection.emit dynamic-method

11
推荐指数
3
解决办法
7705
查看次数

从谷歌阅读器api获取用户的标签列表

这篇博客文章中我看到,一旦你知道标签名称,就可以在标签中找到项目

/reader/atom/user/[user id]/label/[tag]
Run Code Online (Sandbox Code Playgroud)

但我怎么知道用户可以使用哪些标签?如何从谷歌阅读器api获取用户的可用标签列表.

我见过第三方应用程序这样做,不知道他们是如何做到的.

google-reader

4
推荐指数
1
解决办法
953
查看次数

MSBuild从ProjectReference获取程序集引用

我正在编写一个MSBuild任务,它将一些代码生成添加到标准C#项目(.csproj).该任务需要访问该项目引用的程序集中的类型.

这对于程序集引用很简单(获取<Reference>中的所有项目),但是对其他项目的引用变得更加困难(<ProjectReference>)

MSBuild是否提供了从<ProjectReference>检索已编译的程序集引用的方法?

如果没有,是否有一种简单的方法可以通过读取.csproj文件来解析该名称?

.csproj文件不直接提供已编译的程序集路径,必须从其他属性重建.此外,某些属性是有条件的(取决于调试/发布配置),因此使用简单的XPath读取器将无法工作:

可以从<AssemblyName>获取DLL文件名,但是写入Dll文件的路径是

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
  <OutputPath>;bin\Release</OutputPath>
<PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

有没有办法以编程方式读取.csproj文件并通过评估所有条件来解析OutputPath的正确值?

我需要一个解决方案,其中引用的.csproj文件仍然是普通的旧项目文件(不修改csproj文件,以更易于访问的方式添加必要的信息)

msbuild

6
推荐指数
1
解决办法
4131
查看次数

Mono中的可可锋利在哪里

我为Mac OS下载并安装了Mono 2.4.2.3 Framework.文档说下载包括Cocoa Sharp框架二进制文件.但我在任何地方都看不到它.

有谁知道它在哪里?

macos mono

1
推荐指数
1
解决办法
754
查看次数

导入SQLite时转义单引号字符

我有一个record.txt文件,如下所示:

INSERT INTO 'blogtitles' VALUES('Kelly's at house');
INSERT INTO 'blogtitles' VALUES('Nice catch!');
Run Code Online (Sandbox Code Playgroud)

当我尝试将records.txt导入db:sqlite3 my.db <records.txt由于第一行导致错误.我在records.txt文件中有很多这样的行.我需要一个sed语法,它将转义字符串中的所有这些单引号.因此导入时不会有任何问题.我真的需要这个:(谢谢!

sqlite quotes escaping sed

6
推荐指数
2
解决办法
3576
查看次数

财产(没有额外处理)与公共领域

每当有关于Properties的可信度的问题时,我发现大多数讨论都是围绕函数/方法和属性进行的.但我也想知道使用属性与相关私有字段直接与公共字段直接使用的令人信服的理由,包含最常见的获取/设置行为而没有其他处理,我的意思是这种方式

public string CustomerName;
Run Code Online (Sandbox Code Playgroud)

VS

private string customerName;
public string CustomerName
{
get{return customerName;}
set(string value){this.customerName=value;}
}
Run Code Online (Sandbox Code Playgroud)

c# properties

14
推荐指数
1
解决办法
3291
查看次数

如何将VB.NET中的扩展名移植到C#?

我在VB.NET中为StringBuilder写了一个扩展来添加一个AppendFormattedLine方法(所以我不必使用其中一个参数来换行符号):

Imports System.Runtime.CompilerServices
Public Module sbExtension
    <Extension()> _
    Public Sub AppendFormattedLine(ByVal oStr As System.Text.StringBuilder, _
                                   ByVal format As String, _
                                   ByVal arg0 As Object)
        oStr.AppendFormat(format, arg0).Append(ControlChars.NewLine)
    End Sub
    <Extension()> _
    Public Sub AppendFormattedLine(ByVal oStr As System.Text.StringBuilder, _
                                   ByVal format As String, ByVal arg0 As Object, _
                                   ByVal arg1 As Object)
        oStr.AppendFormat(format, arg0, arg1).Append(ControlChars.NewLine)
    End Sub
    <Extension()> _
    Public Sub AppendFormattedLine(ByVal oStr As System.Text.StringBuilder, _
                                   ByVal format As String, _
                                   ByVal arg0 As Object, _
                                   ByVal arg1 As Object, …
Run Code Online (Sandbox Code Playgroud)

c# vb.net stringbuilder extension-methods

1
推荐指数
1
解决办法
442
查看次数