こちらの記事の続編です。 VueとSpringで作成したプロジェクトの構築手順の備忘録。
備忘録のため、詳細な説明を省略している部分があります。 O/RMapperとは、Object/Relational Mapperの略で、ざっくり言うとJava(Object)と
関係データベース(Relational)を紐付ける機能(Mapper)です。 表形式であるSQLの実行結果をどのようにJavaのクラスに当てはめるか、
またJavaから受け渡されたパラメータをどのようにSQLに反映するかといった設定をしておくことが出来ます。 これによりJavaのプログラムからSQLを発行して、実施結果を取得する際、
Java側はSQL部分を意識せずに処理を記述することができ、
逆にSQL側はJavaを意識せずにSQL文を記述できるのが利点です。 数あるO/Rマッパーの中でもMyBatisはSQLラッパー型と呼ばれるものに分類され、xmlファイルにプレーンに近いSQLを記述することができます。
mybatis-spring-boot-starterの使い方 - Qiita 一応起動確認して今回のセットアップが何かしら影響を与えていないか確認してDONE。 今回はここまでです!
お付き合いいただきありがとうございました。まえがき
目的
前提
環境
やること
O/Rマッパー
MyBatisとは?
実装-バックエンド-
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0'
# SQL
logging.level.org.hibernate.SQL=debug
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=trace
logging.level.jp.co.systemd.homeservices.domain.mapper=debug
spring.jpa.properties.hibernate.format_sql=true
#MyBatis
mybatis.mapper-locations=classpath*:/mapper/*.xml
public class TblDankaEntity {
private Integer dnkId;
private Integer dnkTempleId;
private String dnkSeshuName;
private String dnkKoshuName;
private String dnkKaihi;
private String dnkKoshuName2;
private String dnkAddress1;
private String dnkAddress2;
private String dnkBikou1;
private String dnkBikou2;
private String dnkBikou3;
private String dnkPhonenumber1;
private String dnkPhonenumber2;
private String dnkEmail1;
private String dnkEmail2;
private String dnkHasBochi;
private String createdAt;
private String createdBy;
private String updatedBy;
private String isDeleted;
private String updatedAt;
// setter/getterは省略
}
@Mapper
public interface DankaMapper {
List<TblDankaEntity> findAllDanka();
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="jp.co.tms.domain.mapper.DankaMapper">
<select id="findOneByDankaId" resultType="jp.co.tms.domain.entity.TblDankaEntity">
SELECT
*
FROM
tbl_danka
</select>
</mapper>
@Service
public class DankaService {
@Autowired
DankaMapper dankaMapper;
public List<TblDankaEntity> findAllDankaList(){
List<TblDankaEntity> dankaList = new ArrayList<>();
dankaList = dankaMapper.findAllDanka();
return dankaList;
}
}
@RestController
@RequestMapping("/api")
public class DankaContoller {
@Autowired
DankaService dankaService;
@GetMapping("/danka")
@ResponseBody
public List<TblDankaEntity> getAllDanka(){
return (List<TblDankaEntity>) dankaService.findAllDankaList();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
</configuration>
mybatis.config-location=classpath:/mybatis-config.xml