Category Archives: Software

「java」replaceAll()で文字列を置換するコード

サンプルコード
str1=”abcd”;
str2=”cd”;
str3=str1.replaceAll(str2,””);
//str3=”ab”

「Linux」findでディレクトリツリーリスト表示する

コマンド

# pwd
/usr/local/apache-tomcat-8.5.11/webapps/form/WEB-INF/cftdata/kd/hj/info

# find . -type d | sed -e “s/[^-][^\/]*\// |/g” -e “s/|\([^ ]\)/|-\1/”

結果

-pppp
| |-higigg
| | |-sonota

「SpringMVC入門」例外をハンドリングする@ExceptionHandlerの書き方

1.内部exception(Controllerのみ)
@ExceptionHandler
public ModelAndView exceptionHandler(Exception ex){
ModelAndView mv = new ModelAndView(“error”);
mv.addObject(“exception”, ex);
System.out.println(“in testExceptionHandler”);
return mv;
}

@RequestMapping(“/error”)
public String error(){
int i = 7/0;
return “hello”;
}

2.global exceprion(全てのController)
@ControllerAdvice
public class testControllerAdvice {
@ExceptionHandler
public ModelAndView exceptionHandler(Exception ex){
ModelAndView mv = new ModelAndView(“error”);
mv.addObject(“exception”, ex);
System.out.println(“in testControllerAdvice”);
return mv;
}
}

3.設定ファイル
<!– configure SimpleMappingExceptionResolver –>
<bean class=”org.springframework.web.servlet.handler.SimpleMappingExceptionResolver”>
<property name=”exceptionMappings”>
<props>
<prop key=”java.lang.ArithmeticException”>error</prop>
</props>
</property>
</bean>

Spring MVCでエイリアス(alias)インターセプターを利用する

1.web.xmlにFilterクラスを指定
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

2.struts.xmlにパラメータを設定する
Action1の定義
<action name=”XXX” class=”XXXAction”>
<result name=”success”></result>
<result name=”input” type=”chain”>
<param name=”actionName”>input_error</param>
</result>
</action>

Action2の定義
<action name=”input_error” class=”inputErrorAction”>
<param name=”aliases”>#{‘error_status’:’status’,’error_desc’:’desc’}</param>
</action>

MongoDBでインデックスを作成、削除操作方法

1.インデックスを作成
db.collection.ensureIndex({key:1})

2.インデックスを参照
db.collection.stats()

3.インデックスのクエリをチェック
db.collection.find({key:value}).explain()
> db.test.find().explain()
{
“cursor” : “BasicCursor”,
“nscanned” : 1,
“nscannedObjects” : 1,
“n” : 1,
“millis” : 0,
“nYields” : 0,
“nChunkSkips” : 0,
“isMultiKey” : false,
“indexOnly” : false,
“indexBounds” : { }
}

4.インデックスを削除
db.collection.dropIndex({key:1})

5.唯一インデックスを作成
db.collection.ensureIndex({key:1}

PostgreSQLでプライマリーキー(primary key)を追加する方法

1.primary keyを追加
ALTER TABLE テーブル名 ADD PRIMARY KEY(カラム名);

2.primary keyを削除
ALTER TABLE table_name DROP CONSTRAINT “key_name”
3.indexを削除
DROP index index_name

C#入門–foreachの使い方

C#コード
using System;namespace ArrayApplication{
class InfoArray
{
static void Main(string[] args)
{
int [] n = new int[10];
for ( int i = 0; i < 10; i++ )
{
n[i] = i + 100;
}

foreach (int j in n )
{
int i = j-100;
Console.WriteLine(“Element[{0}] = {1}”, i, j);
}
Console.ReadKey();
}
}}

実行結果
Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109

Linuxでawkを使って文字列を連結する方法

1.文字列-数字
[kduser@st24 ~]$ awk ‘BEGIN{a=”87″;b=”10kduser10″;print (a+b+0);}’

2.数字-文字列
[kduser@st24 ~]$ awk ‘BEGIN{a=87;b=87;c=(a””b);print c}’

3.文字列を連結
[kduser@st24 ~]$ awk ‘BEGIN{a=”a”;b=”b”;c=(a””b);print c}’

LinuxでOS環境情報とミドルウェアバージョンを調べるコマンド

Ubuntu

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION=”Ubuntu 14.04.4 LTS”
CentOS

$ cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
Java
$ java -version
java version “1.8.0_91”
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
Maven
$ mvn -v
Node.js
$ node -v

NPM
$ npm -v

$ ruby -v
ruby 2.0.0p645 (2015-04-13 revision 50299) [universal.x86_64-darwin15]

Nginx
$ nginx -v
nginx version: nginx/1.4.6 (Ubuntu)
Httpd (Apache)

$ httpd -v
Server version: Apache/2.4.16 (Unix)
Server built: Jul 31 2015 15:53:26
MongoDB

$ mongod –version

$ mongo –version
MongoDB shell version: 3.2.3
OpenSSH

$ ssh -V
OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6, OpenSSL 1.0.1f 6 Jan 2014
cURL

$ curl –version

Git
$ git –version
git version 2.5.4 (Apple Git-61)
Bash

$ bash –version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin15)
Copyright (C) 2007 Free Software Foundation, Inc.
Zsh

phpでbackup_tablesを使ってmysqlのテーブルをバックアップする

参考コード:
<?php
backup_tables(‘localhost’,’startnews24user’,’startnews24pwd’,’blog’,’*’);

function backup_tables($host,$user,$pass,$name,$tables = ‘*’){
$return = “”;
$link = mysql_connect($host,$user,$pass);
mysql_select_db($name,$link);

if($tables == ‘*’)
{
$tables = array();
$result = mysql_query(‘SHOW TABLES’);
while($row = mysql_fetch_row($result))
{
$tables[] = $row[0];
}
}
else
{
$tables = is_array($tables) ? $tables : explode(‘,’,$tables);
}

foreach($tables as $table)
{
$result = mysql_query(‘SELECT * FROM ‘.$table);
$num_fields = mysql_num_fields($result);

$return.= ‘DROP TABLE ‘.$table.’;’;
$row2 = mysql_fetch_row(mysql_query(‘SHOW CREATE TABLE ‘.$table));
$return.= “\n\n”.$row2[1].”;\n\n”;

for ($i = 0; $i < $num_fields; $i++)
{
while($row = mysql_fetch_row($result))
{
$return.= ‘INSERT INTO ‘.$table.’ VALUES(‘;
for($j=0; $j<$num_fields; $j++)
{
$row[$j] = addslashes($row[$j]);
$row[$j] = ereg_replace(“\n”,”\\n”,$row[$j]);
if (isset($row[$j])) { $return.= ‘”‘.$row[$j].'”‘ ; } else { $return.= ‘””‘; }
if ($j<($num_fields-1)) { $return.= ‘,’; }
}
$return.= “);\n”;
}
}
$return.=”\n\n\n”;
}

$handle = fopen(‘db-backup-‘.time().’-‘.(md5(implode(‘,’,$tables))).’.sql’,’w+’);
fwrite($handle,$return);
fclose($handle);
}
?>