01-Mybatis基础配置

1、Spring整合Mybatis

  1. 创建jdbc.properties

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/spring
    jdbc.username=root
    jdbc.password=Aa123456
  2. 编写JDBC配置类

@Configuration
// 注明jdbc配置文件名
@PropertySource("classpath:jdbc.properties")
public class JdbcConfig {
    @Value("${jdbc.driver}")
    private String className;
    @Value("${jdbc.url}")
    private String url;
    @Value("${jdbc.username}")
    private String username;
    @Value("${jdbc.password}")
    private String password;
    @Bean
    public DataSource dataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(className);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }
}
  1. 编写MybatisConfig注册类
@Configuration
public class MybatisConfig {
    //由于SqlSessionFactoryBean是Mybatis的核心对象,且无状态,创建一次即可,则交由SpringIoc容器管理即可
    //其他Mapper以及实体对象以及有状态对象不建议SpringIoc容器管理,除非特殊对象
    @Bean
    public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource) {
        // 创建SqlSessionFactoryBean 对象
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        // 设置typeAlias包扫描路径
        sqlSessionFactoryBean.setTypeAliasesPackage("top.newhand");
        sqlSessionFactoryBean.setDataSource(dataSource);
        return sqlSessionFactoryBean;
    }
    // 这里是纯注解开发,则Mybatis的配置文件也用注解开发,所以省略Mybatis的配置文件
    // 注意这里引用了 Mybatis-Spring的包,Pom文件里加载了
    // 目前主流框架Spring全家桶,所以其他第三方插件需要自己对Spring兼容配置,而不是Spring对他们进行兼容
    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer () {
        MapperScannerConfigurer msc = new MapperScannerConfigurer();
        // 设置Mybatis扫描路径,一般设置代码的上一层级
        msc.setBasePackage("top.newhand.dao");
        return msc;
    }
}
  1. 编写Dao层
@Repository
public interface AccountDao {
    @Insert("insert into user(id, name) values (#{id}, #{name})")
    void save(Account account);
    @Delete("delete from user where id = #{id}")
    void delete(Integer id);

    @Update("update user set id = #{id}, name = #{name} where id = #{id}")
    void update(Account account);

    @Select("select * from user")
    List<Account> findAll();
    @Select("select * from user where id = #{id}")
    Account findById(Integer id);
}
  1. 编写Test测试类
//【第二步】使用Spring整合Junit专用的类加载器
@RunWith(SpringJUnit4ClassRunner.class)
//【第三步】加载配置文件或者配置类
@ContextConfiguration(classes = {SpringConfig.class})
public class AccountServiceTest {

    //支持自动装配注入bean
    @Autowired
    private AccountService accountService;

    @Test
    public void testFindById(){
        System.out.println(accountService.findById(1));
    }

    @Test
    public void testFindAll(){
        System.out.println(accountService.findAll());
    }
}
作者:何贤刚  创建时间:2024-03-08 19:39
最后编辑:何贤刚  更新时间:2024-04-19 22:33