-spring boot mengintegrasikan mybatis menggunakan anotasi
spring boot dan mybatis telah disepadukan seperti biasa apabila menggunakan pertanyaan (projek tidak mempunyai sebarang fail XML)
@Mapper
@Table(name = "t_user")
public interface UserMapper {
@Select("select * from t_user where user_id = #{id}")
public User findUserById(@Param("id") String id);
}
Saya tidak tahu kenapa dengan cara ini, hanya beberapa atribut akan diisi dengan nilai, dan hasil pertanyaan atribut lain semuanya batal
Tetapi jika saya menulis
@Results({
@Result(column = "user_id",property = "userId"),
@Result(column = "username",property = "username"),
@Result(column = "pass",property = "pass"),
@Result(column = "phone_number",property = "phoneNumber")
})
Ia akan betul sepenuhnya, setiap atribut mempunyai nilai
Soalan 1: Mengapakah sesetengah atribut mempunyai nilai dan sesetengah atribut tidak mempunyai nilai?
Soalan 2: Saya tidak boleh menulis setiap pertanyaan seperti ini, kerana akan ada banyak pendua@Result
部分,有没有注解将其在内部进行对应关系实现,不需要每次都写@ Result
?
Soalan 1. Kerana lajur set hasil tidak sesuai dengan sifat Bean, sudah tentu ia akan menjadi batal.
Soalan 2. Anda boleh menggunakan alias dalam sql untuk menjadikan lajur dan sifat sepadan, supaya soalan 1 tidak akan berlaku.
Untuk soalan 1, kerana medan pangkalan data dipisahkan dengan garis bawah dan medan dalam kacang dinamakan dalam kes unta, seperti nama_pengguna dan Nama pengguna, ia tidak boleh dipadankan
Jika anda mengkonfigurasinya melalui fail xml, anda hanya perlu mendayakan penukaran penamaan kes unta
<setting name="mapUnderscoreToCamelCase" value="true"/> Dalam
yml mungkin seperti ini