两种配置方式
注解配置
配置pom.xml
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency>
创建application.yml文件
server:port: 8080servlet:context-path: /spring:datasource:driver-class-name: com.mysql.jdbc.Driverusername: rootpassword: rooturl: jdbc:mysql://localhost:3306/study?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
测试能否链接mysql
@SpringBootApplication@MapperScan("com.wg.demo.mapper")public class EasyexcelApplication {public static void main(String[] args) {ConfigurableApplicationContext context = SpringApplication.run(DemoApplication.class, args);JdbcTemplate jdbcTemplate = context.getBean(JdbcTemplate.class);List<Map<String, Object>> result = jdbcTemplate.queryForList("SELECT * FROM member");System.out.println(result);}}
测试成功后
启动类上添加@MapperScan("com.wg.demo.mapper")
@SpringBootApplication@MapperScan("com.wg.demo.mapper")public class EasyexcelApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}}
根据com.wg.demo.mapper路径,创建mapper包
创建MemberMapper类
若启动类上,添加了@MapperScan注解,则具体的mapper类上不用再添加@Mapper注解
@Mapperpublic interface MemberMapper {@Select("SELECT * FROM member")@Results({@Result(property = "id", column = "id"),@Result(property = "username", column = "username"),@Result(property = "password", column = "password"),@Result(property = "nickname", column = "nickname"),@Result(property = "birthday", column = "birthday"),@Result(property = "phone", column = "phone"),@Result(property = "gender", column = "gender"),})List<Member> getMember();@Options(useGeneratedKeys = true, keyProperty = "po.id", keyColumn = "id")@Insert("insert into member (username, password, nickname, birthday, phone, gender) values (#{po.username}, #{po.password}, #{po.nickname}, #{po.birthday}, #{po.phone}, #{po.gender})")int save(@Param("po") MemberPo po);@Update("update member set `username`=#{username} where id = #{id}")int add(@Param("id") int id, @Param("username") String username);@Delete("delete from member where id = #{id}")int delete(@Param("id") int id);}
@Insert注解用来插入@Options注解用来指定一些配置信息,比如上面的语句中用来配置将插入的id,保存到参数MemberPo的id字段上
在service类中,通过@Autowired注入来使用
@Servicepublic class MemberServiceImpl {@AutowiredMemberMapper mapper;public List<Member> getMember(){return mapper.getMember();}}
over
稍微复杂高级点的操作
/*** foreach 查询** @param ids* @return*/@Select("<script> select * from member where id in " +"<foreach collection='ids' index='index' item='id' open='(' separator=',' close=')'>" +"#{id}" +"</foreach></script>")List<MemberPo> getByIds(@Param("ids") List<Integer> ids);
公众号:程序员WeiG
个人博客:wggz.top
