小编Jer*_*ith的帖子

在Spring 3/PostgreSQL 8.4.9中从行插入中获取自动生成的密钥

我想从行插入中检索自动生成的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)

java postgresql spring jdbc auto-generate

44
推荐指数
4
解决办法
8万
查看次数

限制TextView中的行数

我有一个可滚动的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之外还有第二个组件,当我删除它时它工作,所以我会找到一个解决方法.谢谢 !

android scroll lines textview

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

将getCallingActivity的活动与另一个活动进行比较

我想将调用活动与其他人进行比较,以了解哪一个称为当前活动.我试过了:

getCallingActivity().getClassName().toString().equals(MainActivity.class.toString())
Run Code Online (Sandbox Code Playgroud)

它不起作用,除了在调用Intent中传递一个值,我们如何使用getCallingActivity()或者比较类getCallingPackage()

java android android-activity

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

如何在Zend应用程序中将charset设置为UTF-8?

我正在开发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()用来显示它们.有什么建议吗?

谢谢你的帮助 !!

database zend-framework utf-8 character-encoding

6
推荐指数
3
解决办法
3万
查看次数

使用jQuery each()函数返回一个值

我是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)

我怎么能访问该阵列?

谢谢 !

javascript arrays jquery json

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

从EditText中提取一行

我们如何从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在字符串中查找?

string android android-widget android-edittext

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

将块放在ScrollView的中心

我有一个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?

android scrollview android-layout layout-gravity

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

取消ProgressDialog并停止线程

我有一个运行几次操作的线程,我想在用户取消时停止它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)

multithreading android progressdialog

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

setAutoCommit(false)不使用c3p0

我正在使用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)

postgresql connection-pooling jetty c3p0

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

共享和存储 IV 以进行 AES 加密/解密

我目前在 Android 应用程序上对用户密码使用 AES-ECB 加密,但我必须将此应用程序的数据库连接到一个网站,用户可以在该网站上以与移动应用程序相同的方式注册和登录。

我读到 ECB 模式不安全,所以我想通过生成 IV 来使用 CBC。

在服务器端的 php 和应用程序中将 IV 作为常量存储在代码中(我也以这种方式存储密钥)是否安全?

如果没有,网站和移动应用程序是否有办法共享其 IV 来加密/解密用户密码?

或者,我可能选择了错误的加密算法,可能有一种更适合我的需求

php encryption android aes

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