• ORM 操作 MySQL


    目录

    第一种方式 : @Mapper

    第二种方式 @MapperScan

    第三种方式: Mapper文件和Dao接口分开管理

    第四个 事务


    使用MyBatis框架操作数据, 在SpringBoot框架集成MyBatis

    使用步骤:

    1. mybatis起步依赖 : 完成mybatis对象自动配置, 对象放在容器中

    2. pom.xml 指定把src/main/java目录中的xml文件包含到classpath中

    3. 创建实体类Student

    4. 创建Dao接口 StudentDao , 创建一个查询学生的方法

    5. 创建Dao接口对应的Mapper文件, xml文件, 写sql语句

    6. 创建Service层对象, 创建StudentService接口和他的实现类。 去dao对象的方法。完成数据库的操作

    7. 创建Controller对象,访问Service。

    8. 写application.properties文件

      配置数据库的连接信息。

    创建业务层对象配置文件 连接数据库

    第一种方式 : @Mapper

    @Mapper:放在dao接口的上面, 每个接口都需要使用这个注解。

    1. /**
    2. * @Mapper:告诉MyBatis这是dao接口,创建此接口的代理对象。
    3. * 位置:在类的上面
    4. */
    5. @Mapper
    6. public interface StudentDao {
    7. Student selectById(@Param("stuId") Integer id);
    8. }

     

    第二种方式 @MapperScan

    1. /**
    2. * @MapperScan: 找到Dao接口和Mapper文件
    3. * basePackages:Dao接口所在的包名
    4. */
    5. @SpringBootApplication
    6. @MapperScan(basePackages = {"com.bjpowernode.dao","com.bjpowernode.mapper"})
    7. public class Application {
    8. }

     第三种方式: Mapper文件和Dao接口分开管理

    现在把Mapper文件放在resources目录下

    1)在resources目录中创建子目录 (自定义的) , 例如mapper

     2)把mapper文件放到 mapper目录中 

    3)在application.properties文件中,指定mapper文件的目录

    1. #指定mapper文件的位置
    2. mybatis.mapper-locations=classpath:mapper/*.xml
    3. #指定mybatis的日志
    4. mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

     4) 在pom.xml中指定 把resources目录中的文件 , 编译到目标目录中

    1. <resources>
    2. <resource>
    3. <directory>src/main/resourcesdirectory>
    4. <includes>
    5. <include>**/*.*include>
    6. includes>
    7. resource>
    8. resources>

    第四个 事务

    Spring框架中的事务:

    1) 管理事务的对象: 事务管理器(接口, 接口有很多的实现类)

    例如:使用Jdbc或mybatis访问数据库,使用的事务管理器:DataSourceTransactionManager

    2 ) 声明式事务: 在xml配置文件或者使用注解说明事务控制的内容

    控制事务: 隔离级别,传播行为, 超时时间

    3)事务处理方式:

    1) Spring框架中的@Transactional

    2) aspectj框架可以在xml配置文件中,声明事务控制的内容

    SpringBoot中使用事务: 上面的两种方式都可以。

    1)在业务方法的上面加入@Transactional , 加入注解后,方法有事务功能了。

    2)明确的在主启动类的上面 ,加入@EnableTransactionManager

    1. /**
    2. * @Transactional: 表示方法的有事务支持
    3. * 默认:使用库的隔离级别, REQUIRED 传播行为; 超时时间 -1
    4. * 抛出运行时异常,回滚事务
    5. */
    6. @Transactional
    7. @Override
    8. public int addStudent(Student student) {
    9. System.out.println("业务方法addStudent");
    10. int rows = studentDao.insert(student);
    11. System.out.println("执行sql语句");
    12. //抛出一个运行时异常, 目的是回滚事务
    13. //int m = 10 / 0 ;
    14. return rows;
    15. }

     

     

     

     

     

  • 相关阅读:
    C语言程序设计实验指针(一)
    WinRAR CVE-2023-40477代码执行漏洞复现
    Spring boot装载模板代码工程实践问题
    神经网络优化算法有哪些,人工神经网络优化算法
    亚马逊 sp-api更新库存 feed 方式,xsd 验证xml
    分布式光纤测温DTS在工程现场中稳定性与可靠性如何?
    redisson有几种分布式算法
    7. Reverse Integer
    001从零开始入门Entity Framework Core——基础知识
    钢材缺陷检测系统-ui界面
  • 原文地址:https://blog.csdn.net/weixin_48826996/article/details/126365620