<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                SpringBoot系列之集成Mybatis教程 環境準備:IDEA + maven 本博客通過例子的方式,介紹Springboot集成Mybatis的兩種方法,一種是通過注解實現,一種是通過xml的方式 進行實驗,要先創建一個Initializer工程,如圖: ![在這里插入圖片描述](https://img-blog.csdnimg.cn/20191215124237188.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9zbWlsZW5pY2t5LmJsb2cuY3Nkbi5uZXQ=,size_16,color_FFFFFF,t_70) 打包方式選擇jar即可,因為Springboot使用了嵌入式的Servlet容器,直接運行jar即可,即使是web工程也支持 ![在這里插入圖片描述](https://img-blog.csdnimg.cn/201912151241362.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9zbWlsZW5pY2t5LmJsb2cuY3Nkbi5uZXQ=,size_16,color_FFFFFF,t_70) 選擇必要的jar,Mybatis、數據庫驅動是必要的 ![在這里插入圖片描述](https://img-blog.csdnimg.cn/20191215124213629.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9zbWlsZW5pY2t5LmJsb2cuY3Nkbi5uZXQ=,size_16,color_FFFFFF,t_70) 新建項目后,會自動加上如下配置,,如果你的mysql服務器是5.7版本的,建議指定mysql-connector-java版本,Druid也需要自己加上,pom配置參考: ```xml <properties> <java.version>1.8</java.version> <druid.version>1.1.2</druid.version> </properties> <dependencies> <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> <version>2.1.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.27</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>${druid.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> ``` mybatis-spring-boot-starter是Springboot的場景啟動器,默認集成了如下jar ![在這里插入圖片描述](https://img-blog.csdnimg.cn/20191215131143394.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9zbWlsZW5pY2t5LmJsb2cuY3Nkbi5uZXQ=,size_16,color_FFFFFF,t_70) 新建數據庫和數據表: ```sql CREATE DATABASE /*!32312 IF NOT EXISTS*/`springboot` /*!40100 DEFAULT CHARACTER SET utf8 */; USE `springboot`; /*Table structure for table `sys_user` */ DROP TABLE IF EXISTS `sys_user`; CREATE TABLE `sys_user` ( `userId` int(10) NOT NULL, `username` varchar(20) NOT NULL, `sex` char(10) DEFAULT NULL, `password` varchar(10) DEFAULT NULL, PRIMARY KEY (`userId`), UNIQUE KEY `idx_username` (`username`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*Data for the table `sys_user` */ insert into `sys_user`(`userId`,`username`,`sex`,`password`) values (1,'admin','man','11'); ``` 新建一個bean類,代碼: ```java import java.io.Serializable; public class User implements Serializable{ private String userId; private String username; private String sex; private String password; public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } ``` 當然還要配置數據庫JDBC和連接池,具體參考我的博客:[SpringBoot系列之集成Druid配置數據源監控](https://smilenicky.blog.csdn.net/article/details/103547228) * 注解方式 對于mybatis注解方式,使用很容易,新建一個Mapper接口即可: ```java import com.example.springboot.mybatis.bean.User; import org.apache.ibatis.annotations.*; public interface UserMapper { @Select("select * from sys_user where userId=#{userId}") public User getUserById(Integer userId); @Delete("delete from sys_user where userId=#{userId}") public int deleteUserById(Integer userId); @Options(useGeneratedKeys = true,keyProperty = "userId") @Insert("insert into sys_user(username,sex,password) values(#{username},#{sex},#{password})") public int insertUser(User user); @Update("update sys_user set username=#{username} where userId=#{userId}") public int updateUser(User user); } ``` @Mapper注解,可以不用加在每一個Mapper上,所以,我們再新建一個Mybatis的配置類,對于是否支持事務,是否支持駝峰命名和大小寫自動轉換都可以加上 ```java import org.mybatis.spring.annotation.MapperScan; import org.mybatis.spring.boot.autoconfigure.ConfigurationCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.transaction.annotation.EnableTransactionManagement; /** * <pre> * Mybatis配置類 * </pre> * * @author nicky * <pre> * 修改記錄 * 修改后版本: 修改人: 修改日期: 2019年12月15日 修改內容: * </pre> */ @Configuration //開啟支持事務管理 @EnableTransactionManagement // Mapper接口掃描,加上這個就不需要每一個Mapper接口都加@Mapper注解 @MapperScan(basePackages = {"com.example.springboot.mybatis.mapper"}) public class MybatisConfig { //配置支持駝峰命名和大小寫自動轉換 @Bean public ConfigurationCustomizer configurationCustomizer(){ return new ConfigurationCustomizer(){ @Override public void customize(org.apache.ibatis.session.Configuration configuration) { configuration.setMapUnderscoreToCamelCase(true); } }; } } ``` 為了方便,就不寫Service類了,直接寫個Controller類進行測試,接口符合RestFul規范 ```java import com.example.springboot.mybatis.bean.User; import com.example.springboot.mybatis.mapper.UserMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; /** * <pre> * 接口測試類 * </pre> * * @author nicky * <pre> * 修改記錄 * 修改后版本: 修改人: 修改日期: 2019年12月15日 修改內容: * </pre> */ @RestController public class UserController { @Autowired UserMapper userMapper; @GetMapping("/user/{userId}") public User getUser(@PathVariable("userId") Integer userId){ return userMapper.getUserById(userId); } @PostMapping("/user") public User insertDept(User user){ userMapper.insertUser(user); return user; } } ``` 有Post請求,所以只能使用Postman測試,瀏覽器不能測試Post接口 ![在這里插入圖片描述](https://img-blog.csdnimg.cn/20191215183532754.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9zbWlsZW5pY2t5LmJsb2cuY3Nkbi5uZXQ=,size_16,color_FFFFFF,t_70) * xml配置方式 在application.yml加上如下配置,注意mybatis配置不屬于spring的,所以不要使用縮進,yaml不熟悉的,可以參考我的博客:[SpringBoot系列之YAML配置用法學習筆記](https://smilenicky.blog.csdn.net/article/details/102877780) ```yaml mybatis: # 指定全局配置文件位置 config-location: classpath:mybatis/mybatis-config.xml # 指定sql映射文件位置 mapper-locations: classpath:mybatis/mapper/*.xml ``` mybatis-config.xml: ```xml <?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> <settings> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> </configuration> ``` mybatis/mapper/UserMapper.xml: ```xml <?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.example.springboot.mybatis.mapper.SysUserMapper"> <select id="getApiUserById" resultType="com.example.springboot.mybatis.bean.User"> SELECT * FROM sys_user WHERE userId=#{id} </select> <insert id="insertApiUser"> INSERT INTO sys_user(username,sex,password) VALUES(#{username},#{sex},#{password}) </insert> </mapper> ``` SysUserMapper.java接口代碼: ```java package com.example.springboot.mybatis.mapper; import com.example.springboot.mybatis.bean.User; import org.apache.ibatis.annotations.Param; //@Mapper public interface SysUserMapper { User getApiUserById(@Param("id") Integer id); void insertApiUser(User user); } ``` 簡單測試一下接口: ```java import com.example.springboot.mybatis.bean.User; import com.example.springboot.mybatis.mapper.SysUserMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; /** * <pre> * 測試接口,就不寫Service類 * </pre> * * @author nicky * <pre> * 修改記錄 * 修改后版本: 修改人: 修改日期: 2019年12月15日 修改內容: * </pre> */ @RestController public class UserController { @Autowired SysUserMapper userDao; /** * xml方式獲取用戶信息 * @param id * @return */ @GetMapping("/api/user/{id}") public User getUserById(@PathVariable("id") Integer id){ return userDao.getApiUserById(id); } } ``` Postman工具測試: ![在這里插入圖片描述](https://img-blog.csdnimg.cn/20191215184133729.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9zbWlsZW5pY2t5LmJsb2cuY3Nkbi5uZXQ=,size_16,color_FFFFFF,t_70) 代碼例子下載:[github下載鏈接](https://github.com/u014427391/springbootexamples/tree/master/springboot-mybatis)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看