Spring整合Mybatis(纯注解开发)

student数据库表

CREATE TABLE Student          
      (
      Sno	CHAR(9) PRIMARY KEY,                 
      Sname	CHAR(20) UNIQUE, 
      Ssex	CHAR(2),
      Sage	SMALLINT,  
      Sdept	CHAR(20)
      ); 
  
  
insert into student values('201215121','李勇','男',20,'CS');
insert into student values('201215122','刘晨','女',19,'CS');
insert into student values('201215123','王敏','女',18,'MA');
insert into student values('201215125','张立','男',19,'IS');
insert into student values('201215126','李一平','男',18,'IS');
insert into student values('201215127','张琴','女',19,'CS');
insert into student values('201215128','王方','女',20,'MA');
insert into student values('201215129','黄林林','男',21,'IS');

1. 新建一个maven项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Go3FE7tO-1665971578952)(assets/image-20221016222846258.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aP542tyU-1665971578953)(assets/image-20221016224935443.png)]

完整项目结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mO9ULUTX-1665971578954)(assets/image-20221017001712328.png)]

2. 导入依赖

在pom.xml中导入依赖

 <dependencies>

        <!--spring依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.20</version>
        </dependency>

        <!--阿里数据源-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.16</version>
        </dependency>

        <!--mybatis依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.6</version>
        </dependency>

        <!--mysql依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.30</version>
        </dependency>

        <!--spring控制jdbc-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.3.20</version>
        </dependency>
        
        <dependency>
            <!--
                Spring与Mybatis整合的jar包
                这个jar包mybatis在前面,是Mybatis提供的
            -->
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.0</version>
        </dependency>
    </dependencies>

3. 创建实体类用来接收mybatis返回的数据

domain包中新建一个Student实体类

package cloud.truesun.domain;

public class Student {
    String Sname;
    String Sno;
    String Ssex;
    int Sage;
    String Sdept;
	//setter...getter...toString...方法略  

4. 创建Dao接口

在Dao中创建StudentDao接口

如果sql语句比较复杂,建议用xml配置文件

package cloud.truesun.dao;

import cloud.truesun.domain.Student;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface StudentDao {

    //    简单增删改查
    @Select("select * from student")
    List<Student> selectAll();

    @Update("insert into student value ('201215130', '张三', '男', 20, '软件')")
    void insertInfo();

    @Delete("delete from student where Sname=#{Sname}")
    void deleteInfoByName(String Sname);

    @Update("update student set Sdept=#{Sdept} where Sno=#{Sno}")
    void updateSdept(int Sno, String sdept);
    
}

5. 创建Service接口和实现类

在service下创建impl包和StudentService接口,impl包内创建StudentServiceImpl实现类

package cloud.truesun.service;

import cloud.truesun.domain.Student;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

public interface StudentService {
    //    简单增删改查
    List<Student> selectAll();

    void insertInfo();

    void deleteInfoByName(String Sname);

    void updateSdept(int Sno, String sdept);

}

//StudentServiceImpl实现类
package cloud.truesun.service.impl;

import cloud.truesun.dao.StudentDao;
import cloud.truesun.domain.Student;
import cloud.truesun.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;
@Service
public class StudentServiceImpl implements StudentService {
    //支持自动装配注入bean
    @Autowired
    private StudentDao studentDao;

    public List<Student> selectAll() {
        return studentDao.selectAll();
    }


    public void insertInfo() {
        studentDao.insertInfo();
    }


    public void deleteInfoByName(String Sname) {
        studentDao.deleteInfoByName(Sname);
    }


    public void updateSdept(int Sno, String Sdept) {
        studentDao.updateSdept(Sno, Sdept);
    }
}

6. 创建Spring配置类

在config包下面创建SpringConfig类

resource资源报下创建jdbc.properties配置文件,用来存放连接数据库的配置

package cloud.truesun.config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

//将该类设置为配置类
@Configuration

//包扫描,用于扫描cloud.truesun下面的bean
@ComponentScan("cloud.truesun")


//导入配置文件
@PropertySource("classpath:jdbc.properties")
public class SpringConfig {
}

jdbc.properties文件(数据库改成自己的数据库,密码改成自己的密码)

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/spring_db?useSSL=false
jdbc.username=root
jdbc.password=root

7. 创建Jdbc配置类

在config包下创建JdbcConfig类

package cloud.truesun.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;

import javax.sql.DataSource;

public class JdbcConfig {
    @Value("${jdbc.driver}")
    private String driver;
    @Value("${jdbc.url}")
    private String url;
    @Value("${jdbc.username}")
    private String userName;
    @Value("${jdbc.password}")
    private String password;

    @Bean
    //将该类设置成bean
    public DataSource dataSource(){
        DruidDataSource ds = new DruidDataSource();
        ds.setDriverClassName(driver);
        ds.setUrl(url);
        ds.setUsername(userName);
        ds.setPassword(password);
        return ds;
    }
}

8. 创建Mybatis配置类

在config报下创建MybatisConfig配置类

package cloud.truesun.config;

import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;

import javax.sql.DataSource;

public class MybatisConfig {
    //定义bean,SqlSessionFactoryBean,用于产生SqlSessionFactory对象
    @Bean
    public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource){
        SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean();
        //设置模型类的别名扫描
        ssfb.setTypeAliasesPackage("cloud.truesun.domain");
        //设置数据源
        ssfb.setDataSource(dataSource);
        return ssfb;
    }
    //定义bean,返回MapperScannerConfigurer对象
    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer(){
        MapperScannerConfigurer msc = new MapperScannerConfigurer();
        msc.setBasePackage("cloud.truesun.dao");
        return msc;
    }
}

9. 将jdbc和mybatis的配置类导入Spring配置类中

在SpingConfig中加入一行注释@Import({JdbcConfig.class,MybatisConfig.class})

@Configuration
//包扫描,主要扫描的是项目中的AccountServiceImpl类
@ComponentScan("cloud.truesun")

@Import({JdbcConfig.class,MybatisConfig.class})

@PropertySource("classpath:jdbc.properties")
public class SpringConfig {
}

10. 编写主类进行测试

在cloud.turesun报下新建一个APP类

package cloud.truesun;

import cloud.truesun.config.SpringConfig;

import cloud.truesun.domain.Student;
import cloud.truesun.service.StudentService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;


import java.util.List;

public class APP {
    public static void main(String[] args) {
        ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);

        StudentService studentService = ctx.getBean(StudentService.class);

        List<Student> students = studentService.selectAll();

        for (Student student : students){
            System.out.println(student.getSname());
        }
    }
}

运行结果如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CIBw4Iil-1665971578954)(assets/image-20221017001622083.png)]

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Spring整合MyBatis注解开发,你可以按照以下步骤进行: 1. 首先,在你的项目中引入相应的依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> ``` 2. 创建一个MyBatis的配置文件,比如`mybatis-config.xml`,在该文件中配置MyBatis的相关属性和插件。例如,可以配置数据源、事务管理器等。 3. 创建一个数据源配置类,用于配置数据库连接信息和数据源。可以使用Spring Boot的`application.properties`或`application.yml`文件进行配置。 4. 创建Mapper接口,使用MyBatis注解方式定义SQL语句的映射。例如: ```java @Mapper public interface UserMapper { @Select("SELECT * FROM users") List<User> getAllUsers(); @Insert("INSERT INTO users(name, age) VALUES(#{name}, #{age})") void insertUser(User user); } ``` 5. 创建对应的Mapper XML文件(可选),用于更复杂的SQL语句编写。 6. 在Spring Boot的启动类上加上`@MapperScan`注解,指定扫描Mapper接口所在的包。 ```java @SpringBootApplication @MapperScan("com.example.mapper") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 7. 使用@Autowired注解将Mapper接口注入到其他组件中使用。 这样,你就可以在Spring Boot项目中使用MyBatis注解方式进行开发了。希望对你有帮助!如果你还有其他问题,可以继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值