我想从行插入中检索自动生成的id,但是我得到了一个 NullPointerException
这是代码:
long result = 0;
final String SQL = "INSERT INTO compte (prenom, nom, datenaissance, numtelephone) "
+ " VALUES(?,?,?,?)";
KeyHolder keyHolder = new GeneratedKeyHolder();
int row= this.jdbcTemplate.update(new PreparedStatementCreator(){
public PreparedStatement createPreparedStatement(Connection connection)
throws SQLException {
PreparedStatement ps =connection.prepareStatement(SQL);
ps.setString(1, a.getSurname());
ps.setString(2, a.getName());
ps.setDate(3, a.getDob());
ps.setString(4, a.getPhone());
return ps;
}
},keyHolder);
if (row > 0)
result = keyHolder.getKey().longValue(); //line 72
Run Code Online (Sandbox Code Playgroud)
这是PostgreSQL表:
CREATE TABLE compte
(
idcompte serial NOT NULL,
prenom character varying(25) NOT NULL,
nom character varying(25) NOT …Run Code Online (Sandbox Code Playgroud) 我有一个可滚动的textView,我想限制显示的行数,但xml属性不起作用:
<TextView
android:id="@+id/tv_addesc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical"
android:maxLines="12"
android:textColor="#FFFFFFFF"
android:textSize="15sp" />
Run Code Online (Sandbox Code Playgroud)
显示的行数为50,文本中有900个字符.
如何限制显示的行数并使其可滚动?
编辑:我测试了846行和15824个字符,无论设置不同的属性,都会显示整个文本.
编辑:除了textView之外还有第二个组件,当我删除它时它工作,所以我会找到一个解决方法.谢谢 !
我想将调用活动与其他人进行比较,以了解哪一个称为当前活动.我试过了:
getCallingActivity().getClassName().toString().equals(MainActivity.class.toString())
Run Code Online (Sandbox Code Playgroud)
它不起作用,除了在调用Intent中传递一个值,我们如何使用getCallingActivity()或者比较类getCallingPackage()?
我正在开发Zend应用程序.我的数据库中的数据以"utf8_unicode_ci"编码.我在我的application.ini中声明:
resources.view.encoding = "UTF-8"
Run Code Online (Sandbox Code Playgroud)
但每当我尝试检索包含特殊字符的字符串时
db中的{'é','à','è',...},除非我使用该函数,否则不会显示该字符串: utf8_decode()
所以我试着将charset设置为UTF-8:
引导程序:
protected function _initDoctype() {
$this->bootstrap('view');
$view = $this->getResource('view');
$view->doctype('XHTML_STRICT');
$view->setEncoding('UTF-8');
}
protected function _initFrontControllerOutput() {
$this->bootstrap('FrontController');
$frontController = $this->getResource('FrontController');
$response = new Zend_Controller_Response_Http;
$response->setHeader('Content-Type', 'text/html; charset=UTF-8', true);
$frontController->setResponse($response);
$frontController->setParam('useDefaultControllerAlways', false);
return $frontController;
}
Run Code Online (Sandbox Code Playgroud)
布局:
$this->headMeta()->appendHttpEquiv('Content-Type', 'text/html;charset=utf8');
echo $this->headMeta();
Run Code Online (Sandbox Code Playgroud)
application.ini:
resources.view.encoding = "UTF-8"
resources.db.params.charset = "utf8"
Run Code Online (Sandbox Code Playgroud)
编辑:现在我可以在页面中显示特殊字符,但是当我从数据库中检索元素时,不会显示特殊字符.
null($this->escape($string))echo $string 替换特殊字符 ?所以我仍然需要utf8_decode()用来显示它们.有什么建议吗?
谢谢你的帮助 !!
我是javascript的新手,我想从JSON中检索值并将其推入一个数组,以便我可以在另一个函数中再次解析这个数组,但是我不知道如何在将元素推入其中后返回数组.
在以下脚本中,我无法在项目中显示值
function gC(b,c,p) {
$.getJSON('getmonths', 'b='+b+'&c='+c+'&p='+p, processJSON);
}
function processJSON(data) {
var retval = [];
$.each(data, function(key, val) {
retval.push(val);
//alert(retval.pop());
});
return retval;
}
$(document).ready(function(){
var b = $("#b").val();
var c = $("#c").val();
var p = $("#p").val();
var items = [];
items = gC(b,c,p);
var i = 0;
$('td').each(function(index) {
$(this).attr('bgcolor', items[i]);
i++;
}
Run Code Online (Sandbox Code Playgroud)
我怎么能访问该阵列?
谢谢 !
我们如何从multiLine中提取一条线EditText?
我试过这种方式,但我知道这不是一个好习惯:
String street1 = "";
String street2 = "";
EditText streetEt = ((EditText) findViewById(R.id.street));
ExtractedText extractedText = new ExtractedText();
ExtractedTextRequest req = new ExtractedTextRequest();
int endOfLineOffset = 0;
req.hintMaxLines = 1;
streetEt.extractText(req, extractedText);
endOfLineOffset = extractedText.partialEndOffset;
street1 = extractedText.toString();
...
Run Code Online (Sandbox Code Playgroud)
是否有更简单的方法来执行此操作,如\n在字符串中查找?
我有一个ScrollView包含一个子元素(由LinearLayout包装的元素).有时候这个孩子的身高是视口高度的一半,有时它会更大.
这里的布局:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:background="@color/some_background">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@drawable/fond_consult"
android:orientation="vertical"
android:weightSum="2">
... Some TextViews and ImageViews...
</LinearLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
当屏幕大小和密度较低时,子项在ScrollView中正确显示,但是当在较大的屏幕(如HDPI和XHDPI)上呈现此活动时,内容将放置在ScrollView的顶部.
有没有办法为ScrollView的唯一子项设置重力,或者如果设备屏幕大于孩子的高度,我是否必须删除scrollView?
我有一个运行几次操作的线程,我想在用户取消时停止它ProgressDialog.
public void run() {
//operation 1
//operation 2
//operation 3
//operation 4
}
Run Code Online (Sandbox Code Playgroud)
这个线程只运行一次,所以我无法实现一个循环来检查他的线程是否仍然在运行.
这是我的ProgressDialog:
//Wait dialog
m_dlgWaiting = ProgressDialog.show(m_ctxContext,
m_ctxContext.getText(R.string.app_name),
m_ctxContext.getText(R.string.msg_dlg_analyse_pic),
true, //indeterminate
true,
new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
m_bRunning = false;
}
});
Run Code Online (Sandbox Code Playgroud)
由于我不知道如何停止线程,通过循环对线程的操作进行排序以查看它是否仍应该运行是否正确,还是有更好的方法?
public void run() {
int op = 0;
while(m_bRunning) {
switch(op) {
case 0 :
//operation 1
break;
case 1 :
//operation 2
break;
case 2 :
//operation 3
break;
case 3 :
//operation 4
break;
} …Run Code Online (Sandbox Code Playgroud) 我正在使用postgresql 9.2和C3p0 0.9.2.1,我创建了一个连接自定义程序来禁用autoCommit和设置transactionMode但是当我执行查找InitialContext以检索时dataSource,autoCommit未在连接上禁用(日志在底部).如何禁用自动提交?
连接定制器:
public class IsolationLevelConnectionCustomizer extends
AbstractConnectionCustomizer {
@Override
public void onAcquire(Connection c, String parentDataSourceIdentityToken)
throws Exception {
super.onAcquire(c, parentDataSourceIdentityToken);
System.out.println("Connection acquired, set autocommit off and repeatable read transaction mode.");
c.setAutoCommit(false);
c.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);
}
}
Run Code Online (Sandbox Code Playgroud)
用于检索DAO数据源的类:
public class DAOAcquire {
private ComboPooledDataSource m_cpdsDataSource = null;
private static final String LOOKUP_CONNECT = "jdbc/mydb";
public DAOAcquire() throws NamingException {
InitialContext context = new InitialContext();
m_cpdsDataSource = (ComboPooledDataSource) context.lookup(LOOKUP_CONNECT);
if (m_cpdsDataSource != …Run Code Online (Sandbox Code Playgroud) 我目前在 Android 应用程序上对用户密码使用 AES-ECB 加密,但我必须将此应用程序的数据库连接到一个网站,用户可以在该网站上以与移动应用程序相同的方式注册和登录。
我读到 ECB 模式不安全,所以我想通过生成 IV 来使用 CBC。
在服务器端的 php 和应用程序中将 IV 作为常量存储在代码中(我也以这种方式存储密钥)是否安全?
如果没有,网站和移动应用程序是否有办法共享其 IV 来加密/解密用户密码?
或者,我可能选择了错误的加密算法,可能有一种更适合我的需求