註解型單資料來源Mybatis.md
阿新 • • 發佈:2018-12-06
-
例項需求:使用者資訊(使用者名稱、別名、密碼、性別、郵箱、建立時間),實現簡單增刪改查
-
技術要點:
- mybatis的xml型和註解型異同:
同:都是呼叫mapper介面來關聯資料庫;
異:xml型-mapper.xml檔案通過mapper的namespace屬性關聯mapper介面,相應的sql指令碼直接在mapper.xml檔案實現;註解型-通過mapper介面對應的方法通過mybatis註解來關聯和管理sql指令碼。
- springboot單資料來源配置:
註解型的,配置檔案去除mybatis相關配置 spring.datasource.driverClassName:資料來源驅動類 spring.datasource.url:資料來源url spring.datasource.username:使用者名稱 spring.datasource.password:密碼 spring.datasource.driverClassName = com.mysql.jdbc.Driver spring.datasource.url = jdbc:mysql://192.168.32.128:3306/test?useUnicode=true&characterEncoding=utf-8 spring.datasource.username = root spring.datasource.password = root
- springboot與mybatis整合配置:
@MapperScan("com.lm.mapper") 使用@MapperScan來掃描註冊mybatis資料庫介面類 /** * 應用啟動 * * @author liangming.deng * @date 2017年6月20日 * */ @SpringBootApplication @MapperScan("com.lm.mapper") public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } }
- 使用相關的mybatis註解對Mapper介面進行開發:
/** * mybatis中mapper介面 * @author liangming.deng * @date 2017年6月21日 * */ public interface UserMapper { @Select("select * from user") @Results({ @Result(id=true,property="id",column="id"), @Result(property="userName",column="userName"), @Result(property="nickName",column="nickName"), @Result(property="passWord",column="passWord"), @Result(property="email",column="email"), @Result(property="regTime",column="regTime"), @Result(property="sexEnums",column="sex",javaType=SexEnums.class)}) List<UserEntity> getAll(); @Select("select * from user where id=#{id}") @Results({ @Result(id=true,property="id",column="id"), @Result(property="userName",column="userName"), @Result(property="nickName",column="nickName"), @Result(property="passWord",column="passWord"), @Result(property="email",column="email"), @Result(property="regTime",column="regTime"), @Result(property="sexEnums",column="sex",javaType=SexEnums.class)}) UserEntity getUserById(Long id); @Insert("INSERT INTO user(userName,nickName,passWord,email,regTime,sex) " + "VALUES(#{userName}, #{nickName}, #{passWord}, #{email}, #{regTime}, #{sex}) ") void insert(UserEntity user); @Update("UPDATE user SET userName=#{userName},nickName=#{nickName} where id=#{id}") void update(UserEntity user); @Delete("DELETE FROM user where id=#{id}") void delete(Long id); }
- 進行controller層的開發:注入相應的Mapper介面進行操作