<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
使用mybatis框架運算元據,在springboot框架中整合mybatis
使用步驟:
mybatis起步依賴:完成mybatis物件自動設定,物件放在容器中。
<dependencies> <!-- web起步依賴--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- mybaitis起步依賴--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.2</version> </dependency> <!-- mysql驅動--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!-- 測試--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
pom.xml指定把src/main/java目錄中的xml檔案包含到classpath中。
<build> <!-- resources外掛--> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
建立實體類Studnet
建立Dao介面StudentDao,建立一個查詢學生的方法。
/** * @Mapper :告訴MyBatis這是dao介面,建立此介面的代理物件, * 位置:在類的上面。 * **/ @Mapper public interface StudentDao { Student selectById(@Param("stuId") Integer id); }
建立Dao介面對應的Mapper檔案,xml檔案,寫sql語句。
/** * @Mapper :告訴MyBatis這是dao介面,建立此介面的代理物件, * 位置:在類的上面。 * **/ @Mapper public interface StudentDao { Student selectById(@Param("stuId") Integer id); }
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.firewolf.dao.StudentDao"> <!-- 定義sql語句--> <select id="selectById" resultType="com.firewolf.model.Student"> select id,name,age from student where id=#{stuId} </select> </mapper>
建立servlet層物件,建立StudentService介面和它的實現類。去呼叫dao物件的方法,完成資料庫的操作。
package com.firewolf.service; public interface StudentService { Student queryStudent(Integer id); } package com.firewolf.service.impl; @Service public class StudentServiceImpl implements StudentService { @Resource private StudentDao studentDao; @Override public Student queryStudent(Integer id) { Student student=studentDao.selectById(id); return student; } }
建立Controller物件,存取Service。
@Controller public class StudentController { @Resource private StudentService studentService; @RequestMapping("/student/query") @ResponseBody public String queryStudent(Integer id){ Student student = studentService.queryStudent(id); return student.toString(); } }
寫application.properties檔案。
設定資料庫的連線資訊
server.port=9001 server.servlet.context-path=/orm # 連線資料庫 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/springdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8 spring.datasource.username=root spring.datasource.password=991231gao
@Mapper:放在dao介面的上面,每個介面都需要使用這個註解。
/** * @Mapper :告訴MyBatis這是dao介面,建立此介面的代理物件, * 位置:在類的上面。 * **/ @Mapper public interface StudentDao { Student selectById(@Param("stuId") Integer id); }
/** * @MapperScan : 找到Dao介面和Mapper檔案。 * basePackages:dao介面所在的包名 * **/ @SpringBootApplication @MapperScan(basePackages = {"com.firewolf.dao","com.firewolf.mapper"}) public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
現在把Mapper檔案放在resources
# 指定mapper檔案的位置 mybatis.mapper-locations=classpath:mapper/*.xml # mybaitis的紀錄檔 mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
在pom.xml中指定目錄,把resources目錄中的檔案,編譯到目標目錄中。
<!-- resources外掛--> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.*</include> </includes> </resource> </resources>
spring框架中的事務
管理事務的物件:事務管理器(介面,介面有很多的實現類)。
例如:使用jdbc或mybatis存取資料庫,使用事務管理器:DataSourceTransactionManager
宣告式事務:在xml組態檔或者使用註解說明事務控制的內容。
控制事務:隔離級別,傳播行為,超時時間。
事務處理方式
springboot中使用事務:上面的兩種方式都可以。
@SpringBootApplication @EnableTransactionManagement @MapperScan(value="com.firewolf.dao") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
例子:
/** * @Transactional: 表示方法的有事務支援 * 預設:使用庫的隔離級別, REQUIRED 傳播行為; 超時時間 -1 * 丟擲執行時異常,回滾事務 */ @Transactional @Override public int addStudent(Student student) { System.out.println("業務方法addStudent"); int rows = studentDao.insert(student); System.out.println("執行sql語句"); //丟擲一個執行時異常, 目的是回滾事務 //int m = 10 / 0 ; return rows; }
到此這篇關於SpringBoot實現ORM操作MySQL的幾種方法的文章就介紹到這了,更多相關SpringBoot ORM操作MySQL內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45