Spring Boot 2(一):Spring Boot 2を使用してMybatisインフラストラクチャを統合
6060 ワード
倉庫住所:spring-boot-learning star、forkを歓迎して、作者にいくつかの励ましをあげます
前言
Mybatisは初期に使用するのが面倒で、さまざまなプロファイル、エンティティクラス、Daoレイヤマッピング関連、その他の構成を大きくプッシュする必要があります.
mybatis-spring-boot-starter
公式説明:
もちろん、どのモードでもまず
私が一般的に使っているのはXML極簡モードですが、以前使っていたhibernateが慣れているせいか
極簡xmlバージョン
極めて簡単なxmlバージョンはマッピングファイルの古い伝統を維持し、インタフェース層は空の方法を定義するだけで、システムは自動的に方法名に基づいてマッピングファイルの中で対応するSqlを探す.
1関連するMavenファイルの追加
完全なPomバッグはここで貼らないで、みんなは直接ソースコードを見ます
2、
Spring Bootは
起動クラスにmapperパケットスキャン
あるいは直接Mapperクラスに注釈
3、Userのインスタンスを追加する
4、Userのマッピングファイルを追加する
実は前のバージョンのMapperのSqlをここのxmlに移しました
5、Mapper層のコードを書く
6、サービス層のコード作成
7、テスト
以上の5つのステップで基本的なインタフェースの開発が完了し,Controller層の開発を省くことができる.
最後のプロジェクトディレクトリ構造
まとめ
SpringBootとMybatisのCP、完璧
サンプルコード-github
前言
Mybatisは初期に使用するのが面倒で、さまざまなプロファイル、エンティティクラス、Daoレイヤマッピング関連、その他の構成を大きくプッシュする必要があります.
mybatis-spring-boot-starter
Spring Boot+Mybatisは、プロファイルを使わずに完全に注釈できますし、簡単に構成できます.mybatis-spring-boot-starter
公式説明:
MyBatis Spring-Boot-Starter will help you use MyBatis with Spring Boot
は実はMybatisがSpring Bootがこんなに熱くても解決策を開発してにぎやかになったのを見ていますが、このコンパクトは確かに多くの問題を解決して、使うのは確かにスムーズです.mybatis-spring-boot-starter
には主に2つの解決策があり、1つは注釈を使用してすべての問題を解決することであり、1つは簡略化された古い伝統である.もちろん、どのモードでもまず
mybatis-spring-boot-starter
のPomファイルを導入する必要がありますが、現在の最新バージョンは2.0です.1
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.0.1
私が一般的に使っているのはXML極簡モードですが、以前使っていたhibernateが慣れているせいか
極簡xmlバージョン
極めて簡単なxmlバージョンはマッピングファイルの古い伝統を維持し、インタフェース層は空の方法を定義するだけで、システムは自動的に方法名に基づいてマッピングファイルの中で対応するSqlを探す.
1関連するMavenファイルの追加
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.0.1
mysql
mysql-connector-java
runtime
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
完全なPomバッグはここで貼らないで、みんなは直接ソースコードを見ます
2、
application.yml
関連配置application.yml
を使用して配置することを推奨しますが、実際にはapplication.yml
またはapplication.properties
を使用するのは同じ効果で、application.yml
は最終的にapplication.properties
に変換して有効になりますが、application.yml
の視覚効果はより明らかに見えます.新規プロジェクトのデフォルトはapplication.properties
で、直接application.yml
に変更され、またapplication-test.yml
のユーザーが異なる環境で異なるプロファイルを使用するために追加されました.application.yml
構成:# test
spring:
profiles:
active: test
# Mybatis
mybatis:
type-aliases-package: com.niaobulashi.entity
mapper-locations: classpath:mapper/*.xml
configuration:
# , :Table(create_time) -> Entity(createTime)。 ,mybatis ` `
map-underscore-to-camel-case: true
# SQL
logging:
level:
com.niaobulashi.dao: DEBUG
application-test.yml
構成:spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
Spring Bootは
spring.datasource.*
関連構成を自動的にロードし、データソースは自動的にsqlSessionFactoryに注入され、sqlSessionFactoryは自動的にMapperに注入されます.そう、あなたはすべて気にしないで、直接持って使えばいいです.起動クラスにmapperパケットスキャン
@MapperScan
を追加@SpringBootApplication
@MapperScan("com.niaobulashi.dao")
public class MybatisApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisApplication.class, args);
}
}
あるいは直接Mapperクラスに注釈
@Mapper
を追加して、上のものを使うことをお勧めします.そうしないと、mapperごとに注釈を追加するのも面倒です.3、Userのインスタンスを追加する
@Data
public class SysUserEntity implements Serializable {
private static final long serialVersionUID = 1L;
// ID
private Long userId;
//
private String username;
//
private String password;
//
private String salt;
//
private String email;
//
private String mobile;
// 0: 1:
private Integer status;
//
private Date createTime;
}
4、Userのマッピングファイルを追加する
実は前のバージョンのMapperのSqlをここのxmlに移しました
5、Mapper層のコードを書く
public interface SysUserDao {
/**
* userId
* @param userId ID
*/
List queryUserInfo(Long userId);
}
6、サービス層のコード作成
SysUserService
インタフェースクラス:public interface SysUserService {
/**
* ID
*/
List queryUserInfo(Long userId);
}
SysUserServiceImpl
実装クラス:@Service("sysUserService")
public class SysUserServiceImpl implements SysUserService {
@Resource
private SysUserDao sysUserDao;
/**
* ID
* @param userId
* @return
*/
@Override
public List queryUserInfo(Long userId) {
return sysUserDao.queryUserInfo(userId);
}
}
7、テスト
以上の5つのステップで基本的なインタフェースの開発が完了し,Controller層の開発を省くことができる.
@RunWith(SpringRunner.class)
@SpringBootTest
public class MabatisTest {
private final static Logger logger = LoggerFactory.getLogger(MabatisTest.class);
@Autowired
private SysUserService sysUserService;
@Test
public void queryUserInfo() throws Exception {
SysUserEntity userEntity = new SysUserEntity();
userEntity.setUserId(1L);
List list = sysUserService.queryUserInfo(userEntity.getUserId());
logger.info("list:" + list);
}
}
最後のプロジェクトディレクトリ構造
まとめ
SpringBootとMybatisのCP、完璧
サンプルコード-github