1. 程式人生 > >註解型單資料來源Mybatis.md

註解型單資料來源Mybatis.md


  1. 例項需求:使用者資訊(使用者名稱、別名、密碼、性別、郵箱、建立時間),實現簡單增刪改查

  2. 技術要點:

  • 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);
}
  1. 進行controller層的開發:注入相應的Mapper介面進行操作