我已经阅读了很多主题,但无法找出问题的答案:是否可以同时读写?
我有后台线程更新一些数据,UI需要存储在DB中的小块数据.因此在UI线程中执行SELECT操作.但它会在更新过程中阻止.结果,UI冻结了几秒钟.
写作时有没有人能从DB中读取成功?
它可以在iPhone上读写DB.这种差异的原因是在本机sqlite函数上同步实现包装吗?
我有一个SQL表,它由以下代码创建:
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TABLE_NAME + " (" + _ID
+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + SUBJECT
+ " TEXT NOT NULL," + TOPIC + " TEXT NOT NULL, "
+ LECTURENUMBER + " TEXT NOT NULL, " + PAGENUMBER
+ " TEXT NOT NULL, " + DATE + " TEXT NOT NULL, " + _DATA
+ " TEXT NOT NULL);");
}
Run Code Online (Sandbox Code Playgroud)
我查询表如下:
String sql = "SELECT " + _ID + "," …Run Code Online (Sandbox Code Playgroud) 我按照教程介绍Play框架,但它给了我一个错误:
执行异常VerifyError发生:期望方法控制器中的堆栈映射帧.安全$ Security.authentify(Ljava/lang/String; Ljava/lang/String;)Z偏移量为33
我不确定我做错了什么.我正在使用的代码(片段):
package controllers;
..
@With(Secure.class)
public class Application extends Controller
{
@Before
public static void setConnectedUser()
{
if (Security.isConnected())
{
User user = User.find("byEmail", Security.connected()).first();
user.password = null;
renderArgs.put("user", user);
}
}
...
Run Code Online (Sandbox Code Playgroud)
对于Security类:
package controllers;
import models.*;
public class Security extends Secure.Security {
static boolean authenticate(String username, String password) {
return User.connect(username, password) != null;
}
}
Run Code Online (Sandbox Code Playgroud)
我还将安全模块添加到dependencies.yml,它在重新启动Play框架后正确加载.我将安全模型添加到了我的路线中.Eclipse没有错误; 错误仅在执行时发生.Secure.Security类确实具有可用的公共静态isConnected方法.我正在使用最新版本的Play框架(1.2.2).
是否通过编程确定某个布局的所有子项?
例如,我有两个孩子的布局:
<LinearLayout android:layout_height="wrap_content"
android:id="@+id/linearLayout1" android:layout_width="fill_parent">
<SeekBar android:layout_height="wrap_content" android:id="@+id/seekBar1"
android:layout_weight="1" android:layout_width="fill_parent"></SeekBar>
<TextView android:id="@+id/textView2" android:text="TextView"
android:layout_width="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_height="wrap_content"></TextView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我想做的事情如下:
LinearLayout myLayout = (LinearLayout) findViewById(R.id.linearLayout1);
myLayout.setEnabled(false);
Run Code Online (Sandbox Code Playgroud)
为了禁用这两个textviews.
知道怎么样?
编辑:我正在使用Play!1.2版(生产版)
我想测试由安全模块类保护的控制器操作,因此我需要在测试我的控制器之前登录(否则我将被重定向到登录页面).
我在调用安全操作之前尝试登录.这是我的FunctionalTest的样子:
@Test
public void someTestOfASecuredAction() {
Map<String, String> loginUserParams = new HashMap<String, String>();
loginUserParams.put("username", "admin");
loginUserParams.put("password", "admin");
// Login here so the following request will be authenticated:
Response response = POST("/login", loginUserParams);
// The following is an action that requires an authenticated user:
Map<String, String> params;
params.put("someparam", "somevalue");
response = POST("/some/secured/action", params);
assertIsOk(response); // this always fails because it is a 302 redirecting to /login
}
Run Code Online (Sandbox Code Playgroud)
单步执行代码,我已经验证登录帖子是否有效 - 它会导致重定向响应,并将位置设置为主页(表示登录成功).
但随后在随后的安全行动调用中,我总是被重定向到"/ login"页面 - 表明我之前的登录没有坚持第二个POST请求.
查看FunctionalTest的源代码,我看到有一个@Before拦截器可以清除所有cookie.我尝试在我自己的中间超类中覆盖此截取(以保留cookie),但这也不起作用.
编辑:我把play.mvc.Before拦截器与org.junit.Before混淆了 - …
您认为从数据库获取所有表名并将其添加到列表的正确方法是什么?
现在就到了这么远:
final ArrayList<String> dirArray = new ArrayList<String>();
SqlHelper sqlHelper = new SqlHelper(this, "TK.db", null, 1);
SQLiteDatabase DB = sqlHelper.getWritableDatabase();
Cursor c = DB.rawQuery("SELECT name FROM sqlite_master WHERE type='table'", null);
c.moveToFirst();
while (c.isAfterLast() == false) {
dirArray.add("n" + c.getColumnIndex("name"));
c.moveToNext();
}
c.close();
Run Code Online (Sandbox Code Playgroud)
但它输出一些"android_metadata"而不是我的表名.所以猜测查询有问题.
谢谢!
我想设置活动菜单项的样式,为此我需要比较当前的URL再次路由.我知道我可以在javascript中执行此操作,但我想知道其他人是如何在游戏中解决这个问题的.
有什么建议?
伪代码:
<a #{routeIsActive Application.index()} class="active"#{/if} href="@{Application.index()}">My Page</a>
Run Code Online (Sandbox Code Playgroud) 有没有办法在剧中使用环境变量!application.conf文件?像这样的东西:
%prod.db.url=${env.DATABASE_JDBC_URL}
%prod.db.driver=org.postgresql.Driver
%prod.jpa.ddl=validate
Run Code Online (Sandbox Code Playgroud)
我不想在我的application.conf中对URL进行硬编码,因为它包含开发人员无权访问的凭据.
在命令之后play run,Play如何作为计算机上的主机启动?它是在幕后运行apache,tomcat还是其他?
如果我想让我的应用程序(使用play!framework构建)托管在例如apache上,那么这将是一件容易的事吗?
我在尝试启动Play 2.0应用时遇到了一条未找到密钥的错误消息.我实际上认为我没有改变任何东西,这个错误只是突然出现.其实我做了一件事.我打开文件夹target/scala-2.9.1/src_managed/main中的文件并关闭它(我没有更改任何内容,也没有保存或删除文件).但重新加载应用程序后,我收到此错误.知道我能做什么吗?
[info] play - 在端口9000上侦听HTTP ...
(服务器启动,使用Ctrl + D停止并返回控制台...)
[错误] {文件:/卷/ INPROG/03_Projects/06_Play_Applications /空间换艺术/}空间换艺术/编译:来源:没有找到关键:java.util.NoSuchElementException SOURCE [错误]应用 -
!内部服务器错误,请求[GET /] - >
play.api.UnexpectedException:意外异常[NoSuchElementException异常:键未找到:SOURCE]在sbt.PlayReloader $$匿名$ $$ 2 $ anonfun重载$ $$ 3 $ anonfun 2 $$ anonfun $ $申请11.apply(PlayReloader.scala:228) 〜[NA:NA]在sbt.PlayReloader $$匿名$ $$ 2 $ anonfun重载$ $$ 3 $ anonfun 2 $$ anonfun $ $申请11.apply(PlayReloader.scala:221)〜[NA:NA]在scala.Option.地图(Option.scala:133)〜[阶-library.jar:0.11.2]在sbt.PlayReloader $$匿名$ $$ 2 $ anonfun重载$ $$ 3 $ anonfun 2.适用(PlayReloader.scala:221)〜[呐:在sbt.PlayReloader $$匿名$ $$ 2 $ anonfun重载$ $$ 3 $ anonfun NA 2.适用(PlayReloader.scala:219)〜[NA:NA]在scala.Either $ LeftProjection.map(Either.scala:183 )〜[阶-library.jar:0.11.2] java.util.NoSuchElementException:键未找到:(MapLike.scala SOURCE在scala.collection.MapLike $ class.default:224)〜[阶-library.jar:0.11 .2] …