Spring整合Mybatis案例

目录

1.在pom.xml文件中添加需要用的项目依赖

2.添加jdbc.properties文件

3.准备数据库表和模型类

4.创建Dao接口

5.创建Service层接口和实现类

6.创建主配置类,并指定扫描的包,指定读取的properties配置文件

7.创建数据源外部配置类JdbcConfig,引入jdbc.prperties文件中值

8.创建外部配置类MybatisConfig,配置SqlsessionFactory

9.在主配置类中引入外部配置类

10.测试类中运行


利用Spring整合Mybatis,不在使用MyBatisConfig.xml配置文件,通过配置类来代替XMl文件中的设置;

1.在pom.xml文件中添加需要用的项目依赖

<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.10.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.16</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.6</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        
        <dependency>
        <!--Spring操作数据库需要该jar包-->
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>5.2.10.RELEASE</version>
        </dependency>
        <dependency>
            <!--Spring与Mybatis整合的jar包,这个jar包mybatis在前面,因为是Mybatis提供的-->
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.0</version>
        </dependency>
    </dependencies>

2.添加jdbc.properties文件

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/db12
jdbc.username=root
jdbc.password=root

3.准备数据库表和模型类

//数据库中的表中的字段,需要和模型类中属性对应;
    public class Student {
        private int id;
        private String name;
        private int age;
        private int cid;
    }

4.创建Dao接口

@Repository
public interface StuDao {
    @Insert("insert into student(name,age,cid)values(#{name},#{age},#{cid})")
    void save(Student student);
    @Delete("delete from student where id = #{id} ")
    void delete(Integer id);
    @Update("update student set name = #{name} , age = #{age},cid=#{cid} where id = #{id}")
    void update(Student student);
    @Select("select * from student")
    List<Student> findAll();
    @Select("select * from student where id = #{id}")
    Student findById(Integer id);
}

5.创建Service层接口和实现类

public interface StuService {
    void save(Student student);
    void delete(Integer id);
    void update(Student student);
    List<Student> findAll();
    Student findById(Integer id);
}

@Service("stuService")
public class StuServiceImpl implements StuService {
    @Autowired	//指定根据类型自动注入
    private StuDao stuDao;
    @Override
    public void save(Student student) {
        stuDao.save(student);
    }
    @Override
    public void delete(Integer id) {
        stuDao.delete(id);
    }
    @Override
    public void update(Student student) {
        stuDao.update(student);
    }
    @Override
    public List<Student> findAll() {
        return stuDao.findAll();
    }
    @Override
    public Student findById(Integer id) {
        return stuDao.findById(id);
    }
}

6.创建主配置类,并指定扫描的包,指定读取的properties配置文件

@Configuration  //spring的主配置类
@ComponentScan("com.heima") //指定扫描的包
@PropertySource("classpath:jdbc.properties")    //指定读取的配置文件
public class SpringConfig {
}

7.创建数据源外部配置类JdbcConfig,引入jdbc.prperties文件中值

public class JdbcConfig {
    @Value("${jdbc.driver}")
    private String driver;
    @Value("${jdbc.url}")
    private String url;
    @Value("${jdbc.username}")
    private String name;
    @Value("${jdbc.password}")
    private String password;
    
    @Bean("dataSource")
    public DataSource dataSource(){
        DruidDataSource ds = new DruidDataSource();
        ds.setDriverClassName(driver);
        ds.setUrl(url);
        ds.setUsername(name);
        ds.setPassword(password);
        return ds;
    }
}

8.创建外部配置类MybatisConfig,配置SqlsessionFactory

//mybatis配置类
public class MybatisConfig {

    @Bean   //定义bean,SqlSessionFactoryBean,用于产生SqlSessionFactory对象
    public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource){
        //创建sqlsessionFactoryBean对象
        SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean();
            //设置模型类的别名扫描
        ssfb.setTypeAliasesPackage("com.heima.domain");
            //设置数据源
        ssfb.setDataSource(dataSource);
        return ssfb;
    }

    //定义bean,返回MapperScannerConfigurer对象,用来处理原始配置文件中的mappers相关配置加载数据层的Mapper接口类
    @Bean       
    public MapperScannerConfigurer mapperScannerConfigurer(){
        MapperScannerConfigurer msc = new MapperScannerConfigurer();
        //设置所扫描的包路径
        msc.setBasePackage("com.heima.dao");
        return msc;
    }
}

9.在主配置类中引入外部配置类

@Configuration  //spring的主配置类
@ComponentScan("com.heima") //指定扫描的包
@PropertySource("classpath:jdbc.properties")    //指定读取的配置文件
@Import({JdbcSpring.class,MybatisConfig.class}) //引入外部配置类
public class SpringConfig {
}

10.测试类中运行

public class Test1 {
    public static void main(String[] args) throws IOException {

        AnnotationConfigApplicationContext axt = new AnnotationConfigApplicationContext(SpringConfig.class);

        StuService stuService = axt.getBean(StuService.class);
        Student student = stuService.findById(2);
        System.out.println(student);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值