springboot 整合mybatis 注解方式,基于注解的mybatis

  springboot 整合mybatis 注解方式,基于注解的mybatis

  

目录

一、环境准备步骤1:数据库相关步骤2:导入冲突包步骤3:创建模型类步骤4:创建大刀接口和实现类步骤5:创建服务接口和实现类步骤6:添加jdbc.properties文件步骤7:添加框架核心配置文件步骤8:编写测试程序二、整合思路分析三、整合步骤步骤1:导入整合冲突包步骤2:创建数据源配置类步骤3:创建框架配置类步骤4:创建春天主配置类步骤5:编写运行程序

 

  

一、环境准备

 

  

步骤1:数据库相关

建库建表

 

  创建春天_数据库数据库,tb _用户表

  创建数据库春天_数据库字符集utf8使用春天_数据库创建表tb_user(id int主键auto_increment,name varchar(35),age int);插入数据

  添加几条实验数据

  插入spring_db.tb_user(姓名,年龄)值(‘大角’,18);插入到spring_db.tb_user(姓名,年龄)值(大角牛, 20);插入到spring_db.tb_user(姓名,年龄)值(倔强的牛角, 100);

  

步骤2:导入jar包

创建专家工程,在pom.xml文件导入相关依赖

 

  依赖依赖!- springframework框架-groupId org . spring framework/groupId artifact id spring-context/artifact id version5.2.10.RELEASE/version/dependency!- JDK 9以后需要导的注解依赖-依赖关系groupIdjavax.annotation/groupId贾瓦克斯。注释-API/artifactId版本1 . 3 . 2/版本/依赖关系!-我的巴蒂斯依赖-依赖关系groupIdorg.mybatis/groupId artifactIdmybatis/artifactId版本3 . 5 . 9/版本/依赖!德鲁伊连接池-依赖关系groupIdcom.alibaba/groupId artifactIddruid/artifactId版本1 . 1 . 16/版本/依赖关系!- mysql驱动-依赖关系groupId MySQL/groupId artifact id MySQL-connector-Java/artifact id版本8 .0 .28/版本范围运行时间/范围

   </dependency> </dependencies>

 

  

步骤3:创建模型类

根据tb_user表字段,创建User模型类

 

  

public class User { private Integer id; private String name; private Integer age; //省略setter和getter方法}

 

  

步骤4:创建Dao接口和实现类

创建简单的UserDao接口UserDaoImpl实现类,里面就一个查询方法。

 

  

/*UserDao接口*/public interface UserDao { @Select("select * from tb_user where id = #{id} ") User findById(Integer id);}/*UserDaoImpl实现类*/@Repositorypublic class UserDaoImpl implements UserDao { @Override public User findById(Integer id) { return null; }}

 

  

步骤5:创建Service接口和实现类

创建简单的UserService接口UserServiceImpl实现类

 

  

/*UserService接口*/public interface UserService { void findById(Integer id);}/*UserServiceImpl实现类*/@Servicepublic class UserServiceImpl implements UserService { @Autowired private UserDao userDao; @Override public void findById(Integer id) { User user = userDao.findById(id); System.out.println("id为" + id + "的用户姓名:" + user.getName()); System.out.println("id为" + id + "的用户年龄:" + user.getAge()); }}

 

  

步骤6:添加jdbc.properties文件

resources目录下添加jdbc.properties文件,用于配置数据库连接四要素

 

  

# 注册驱动,可以缺省,会根据url自动识别jdbc.driver=com.mysql.cj.jdbc.Driver# 数据库连接地址jdbc.url=jdbc:mysql://localhost:3306/spring_db# 数据库管理员名称jdbc.username=root# 数据库密码jdbc.password=123456

 

  

步骤7:添加Mybatis核心配置文件

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <!--读取properties配置文件--> <properties resource="jdbc.properties"/> <!--别名扫描的包路径--> <typeAliases> <package name="com.bighorn.pojo"/> </typeAliases> <!--配置数据源--> <environments default="mysql"> <environment id="mysql"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </dataSource> </environment> </environments> <!--映射文件扫描包路径--> <mappers> <package name="com.bighorn.dao"/> </mappers></configuration>

 

  

步骤8:编写测试程序

public static void main(String[] args) throws IOException { //1.加载mybatis的核心配置文件 InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); //2.获取 SqlSessionFactory对象 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //3. 获取SqlSession对象,用它来执行sql SqlSession sqlSession = sqlSessionFactory.openSession(); //4.获取userMapper接口的代理对象 UserDao userDao = sqlSession.getMapper(UserDao.class); //5.执行查询,获取结果User User user = userDao.findById(1); System.out.println(user); //6. 释放资源 sqlSession.close();}

运行结果截图

 

  说明环境配置没有问题

  

 

  

 

  

二、整合思路分析

 

  以上流程可以全部移交给Spring来处理

  其中有两个重要的整合

  Spring要管理MyBatis中的SqlSessionFactorySpring要管理Mapper接口的扫描注解整合 MyBatis 的开发步骤

  修改 mybatis 外部配置文件格式为注解格式;业务类使用 @Component 或其衍生注解声明 bean,使用 @Autowired 注入对象;建立配置文件 DataSourceConfig与 MyBatisConfig 类,并将其导入到核心配置类 SpringConfig;开启注解扫描;使用 AnnotationConfigApplicationContext 对象加载配置项。

 

  

三、整合步骤

 

  

步骤1:导入整合jar包

mybatis-spring是Mybatis提供的Spring与Mybatis整合的jar包

 

  

<dependency> <!--Spring操作数据库需要该jar包--> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.2.10.RELEASE</version></dependency><dependency> <!-- Mybatis提供的Spring与Mybatis整合的jar包 --> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.0</version></dependency>

 

  

步骤2:创建数据源配置类

创建DataSourceConfig类,完成Druid数据源的创建

 

  

/*数据源配置类*/// 加载jdbc.properties配置文件@PropertySource("classpath:jdbc.properties")public class DataSourceConfig { //用SpEl表达式将属性注入 @Value("${jdbc.driver}") private String driver; @Value("${jdbc.url}") private String url; @Value("${jdbc.username}") private String username; @Value("${jdbc.password}") private String password; // 将方法的返回值放置Spring容器中 @Bean("druidDataSource") public DruidDataSource getDataSource() { DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName(driver); dataSource.setUrl(url); dataSource.setUsername(username); dataSource.setPassword(password); return dataSource; }}

 

  

步骤3:创建Mybatis配置类

主要是让Spring管理两个第三方BeanSqlSessionFactoryBeanMapperScannerConfigurer

 

  说明:

  SqlSessionFactoryBean是FactoryBean的一个子类,也是mybatis-spring整合jar包中的类,该类将SqlSessionFactory的创建进行了封装,简化对象的创建,

  MapperScannerConfigurer也是MyBatis提供的整合jar包中的类,用来处理原始mapper映射文件相关配置,加载数据层的Mapper(Dao)接口类。核心属性basePackage,就是用来设置所扫描的包路径

  

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

 

  

步骤4:创建Spring主配置类

创建SpringConfig类,开启注解扫描、引入外部配置类(数据源配置类和Mybatis配置类)

 

  

/*Spring核心配置类*///配置类注解@Configuration//开启注解扫描功能@ComponentScan("com.bighorn")//引入数据源配置类和Mybatis配置类@Import({DataSourceConfig.class,MybatisConfig.class})public class SpringConfig {}

 

  

步骤5:编写运行程序

在运行类中,从IoC容器中获取UserService对象,调用其方法

 

  

public static void main(String[] args) throws SQLException { //获取配置类初始化容器 ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class); //从容器中获取UserService对象 UserService userService = context.getBean(UserService.class); //调用service的方法 userService.findById(3);}

运行结果如下

 

  说明Spring整合Mybatis成功辣!

  

 

  以上就是Spring利用注解整合Mybatis的方法详解的详细内容,更多关于Spring注解整合Mybatis的资料请关注盛行IT其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: