Java活用生活

ログイン

オンライン状況

オンラインユーザー1人
ログインユーザー0人
登録ユーザー2人

カウンタ

COUNTER363164

日誌

Web Master
123456
2025/04/24new

JSON備忘録

固定リンク | by:aramaki
JSON備忘録
----------------------------------
JsonToken jsonToken=jsonParser.nextToken();
if(jsonToken==JsonToken.START_OBJECT) {
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(jsonParser);
String dayTimeJson=mapper.writeValueAsString(node);
System.out.println("strNode="+dayTimeJson);
//TypeReference<Map<String,BaseJsonNode>> typeRef
// =new TypeReference<Map<String,BaseJsonNode>>() {}; 
TypeReference<Map<String,List<BaseJsonNode>>> typeRef
=new TypeReference<Map<String,List<BaseJsonNode>>>() {}; 
    Map<String, List<BaseJsonNode>> mapData=mapper.readValue(dayTimeJson, typeRef);
// Mapデータの中身を表示する。
Set<String> keys= mapData.keySet();
Iterator<String> itr=keys.iterator();
while(itr.hasNext()) {
String setsubiCode=itr.next();
List<BaseJsonNode> baseNodeList=mapData.get(setsubiCode);
for(BaseJsonNode baseNode : baseNodeList) {
if(baseNode.isArray()) {
for(JsonNode element : baseNode) {
if (element.isDouble()) {
// 数値の場合
//int numberValue=element.intValue();
float numberValue=element.floatValue();
System.out.println("数値: " + numberValue);
}else if(element.isTextual()) {
// 文字列の場合
String textValue = element.textValue();
System.out.println("文字列: " + textValue);
}
}
}
}
}
23:28 | 投票する | 投票数(0) | コメント(0)
2025/04/22new

日時データ生成

固定リンク | by:aramaki
日時データ生成
-----------------------
public class DateTime {
private static SimpleDateFormat dateFormat =new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

private static List<String> calList=new LinkedList<String>();
public static void main(String[] args) {
// 年度開始日と終了日
/*
List<String> list=getYearRange(2025);
for(String date : list) {
System.out.println(date);
}
*/
// SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
 
Calendar startCal= makeStartCalender(2025);
Calendar endCal=makeEndDate(2025);
String startDateTime=dateFormat.format(startCal.getTime());
calList.add(startDateTime);
while(true) {
Calendar cal=getNext30Minite(startCal,30);
String dateTime=dateFormat.format(cal.getTime());
System.out.println(dateTime);
calList.add(dateTime);
int diff=endCal.compareTo(cal);
System.out.println("diff="+diff);
if(diff==0) {
// startCalとcalが同じ日時
break;
}
}
for(String cal: calList) {
// 日付出力する
String strDate=cal;
System.out.println(strDate);
}

}
public static Calendar makeStartCalender(int startYear) {
// 指定した年の4月1日
// 2025年の4月1日の場合
Calendar calendar=Calendar.getInstance();
calendar.set(startYear,3,1,0,0,0);
return calendar;
}
public static Calendar makeEndDate(int year) {
Calendar calendar=Calendar.getInstance();
//calendar.set(year+1, 2,31,11,59,30);
calendar.set(year, 3,30,23,30,00);
return calendar;
}
public static Calendar getNext30Minite(Calendar calendar,int addMinite) {
calendar.add(Calendar.MINUTE, addMinite);
return calendar;
}

// 年度の開始日と終了日を取得する
public static List<String> getYearRange(int year) {
List<String> list=new ArrayList<String>();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
LocalDateTime startOfYear=LocalDateTime.of(year, Month.APRIL, 1,0,0);
LocalDateTime endOfYear=LocalDateTime.of(year+1, Month.MARCH, 31,0,0);
String strStartOfYear= startOfYear.format(formatter);
String strEndOfYear= endOfYear.format(formatter);
list.add(strStartOfYear);
list.add(strEndOfYear);
return list;
}
}

23:00 | 投票する | 投票数(0) | コメント(0)
2025/04/20

配列リテラルからデータ取得

固定リンク | by:aramaki
配列リテラルからデータ取得
------------------------------------------------------
public void processReadFieldElement(JsonParser jsonParser) throws IOException{
JsonToken jsonToken=jsonParser.nextToken();
if(jsonToken==JsonToken.START_OBJECT) {
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(jsonParser);
String dayTimeJson=mapper.writeValueAsString(node);
System.out.println("strNode="+dayTimeJson);
TypeReference<Map<String,BaseJsonNode>> typeRef
=new TypeReference<Map<String,BaseJsonNode>>() {}; 
    Map<String, BaseJsonNode> mapData=mapper.readValue(dayTimeJson, typeRef);
// Mapデータの中身を表示する。
Set<String> keys= mapData.keySet();
Iterator<String> itr=keys.iterator();
while(itr.hasNext()) {
String setsubiCode=itr.next();
BaseJsonNode baseNode=mapData.get(setsubiCode);
if(baseNode.isArray()) {
for(JsonNode element : baseNode) {
if (element.isNumber()) {
// 数値の場合
int numberValue=element.intValue();
System.out.println("数値: " + numberValue);
}else if(element.isTextual()) {
// 文字列の場合
String textValue = element.textValue();
System.out.println("文字列: " + textValue);
}
}
}
}
System.out.println("TEST");
}
}
20:59 | 投票する | 投票数(0) | コメント(0)
2025/04/14

条件分岐

固定リンク | by:aramaki
<!-- 条件分岐 -->
<!--
<p th:if="${check}" th:text="${id} +' is ' + ${trueVal}">message.</p>

<p th:unless="${check}" th:text="${id} + 'is ' + ${falseVal} ">message.</p>
-->
21:33 | 投票する | 投票数(0) | コメント(0)
2025/04/10

input number スピンボタン非表示

固定リンク | by:aramaki

input number スピンボタン非表示 以下より抜粋
// Firefox、IE  
input[type="number"] {  
  -moz-appearance:textfield;  
}
23:23 | 投票する | 投票数(0) | コメント(0)
2025/04/10

数値のケタ数チェック

固定リンク | by:aramaki
数値のケタ数チェック
-----------------------------------

if  (!value.match(/^\d{10}$|^\d{4}$/)) {
      error = '半角数字4桁以内で入力してください。'
 }
22:51 | 投票する | 投票数(0) | コメント(0)
2025/04/07

エラーコントロール囲い

固定リンク | by:aramaki
エラーコントロール囲い
-----------------------------------
<!-- ユーザーID -->
<tr>
<th class="active col-sm-3">ユーザID</th>
<td>
<div class="form-group" >
<input type="text" class="form-control" th:field="*{userId}" th:classappend="${#fields.hasErrors('userId')} ? 'is-invalid'"/>
<div th:if="#{fields.hasErrors('userId')}" th:errors="*{userId}" ></div>
</div>
</td>
</tr>
22:34 | 投票する | 投票数(0) | コメント(0)
2025/04/05

プロパティーファイルのロード

固定リンク | by:aramaki
プロパティーファイルのロード
-------------------------------------------------------
プロパティーのロード
Properties props = new Properties();
props.load(new FileInputStream(CONFDIR + File.separator + "server.properties"));
String sslDebug = props.getProperty("ssl.debug");
18:24 | 投票する | 投票数(0) | コメント(0)
2025/03/29

Jackson研修サイト

固定リンク | by:aramaki
23:42 | 投票する | 投票数(0) | コメント(0)
2025/03/20

Spring MyBatis複数行insert

固定リンク | by:aramaki
Spring MyBatis複数行insert
--------------------------------------------
以下 のサイトの抜粋です。

========================
●CSV1行ごとの処理でのログ
エラーが発生したため、このレコードの処理をスキップします。エラー内容

●複数行insert
<insert id="insertAuthor" useGeneratedKeys="true"
    keyProperty="id">
  insert into Author (username, password, email, bio) values
  <foreach item="item" collection="list" separator=",">
    (#{item.username}, #{item.password}, #{item.email}, #{item.bio})
  </foreach>
</insert>

<insert id="insertAuthor">
  <selectKey keyProperty="id" resultType="int" order="BEFORE">
    select CAST(RANDOM()*1000000 as INTEGER) a from SYSIBM.SYSDUMMY1
  </selectKey>
  insert into Author
    (id, username, password, email,bio, favourite_section)
  values
    (#{id}, #{username}, #{password}, #{email}, #{bio}, #{favouriteSection,jdbcType=VARCHAR})
</insert>
--------------------------------------------------------------------------
●複数行insert の実装
  public void insert(List<Project> projects, Map<String, Type> types) {
        int rowThreshold = 3;

        List<Project> multiInsertProjects = new ArrayList<>();
        int counter = 0;

        for (Project project : projects) {
            counter++;

            multiInsertProjects.add(project);

            Type type = types.get(project.getTypeId());

            if (※typeMapper.selectById(type.getId()) == null) {
                typeMapper.insert(type);// insertとupdate 切り替えに使う
            }
//counterが100,000になったらcommit
            if (counter % rowThreshold == 0) {
                projectMapper.multiRowInsert(multiInsertProjects);
                multiInsertProjects = new ArrayList<>();
            }
        }

        if (!multiInsertProjects.isEmpty()) {
            projectMapper.multiRowInsert(multiInsertProjects);
        }
    }
}
-------------------------------------------------------------------
※typeMapper.selectById
<mapper namespace="com.example.spring.mybatis.mapper.TypeMapper">
  <select id="selectById" resultType="com.example.spring.mybatis.model.Type">
    select
      id, name
    from
      type
    where
      id = #{id}
  </select>
  <select id="select  略-----
-----------------------------------------------

22:01 | 投票する | 投票数(0) | コメント(0)
123456
Copyright © Java活用生活 All Rights Reserved .