springboot 整合mybatis(ssm框架)


spring框架整合mybatis

1。引入依賴

spring mybatis  mybatis-spring 整合jar mysql driud lombok log4j

2。建表

3。開發實體類

4。DAO接口

5。Mapper映射文件

6.書寫service接口

7。書寫service實現類@Service 注入DAO相關對象

8。配置spring.xml

  1、引入小配置文件

  2、開啟注解掃描

  3、創建數據源對象 DruidDateSource  dirverClassName url username password

  4、創建  SqlSessionFactory 注入Datasource 注入Mapper配置文件位置

          注入別名相關配置 typeAiaesPacage(這個單詞是不對得,但是可以起到提醒是哪個得作用)

  5、創建DAO MapperCannerConfigurer ,注入SqlSessionPactory 注入DAO接口所在包

  6、創建事務管理器 DataSourceTransactionManger 注入DateSource

  7、開啟注解事務生效

 

2、springboot整合mybatis

   1、引入依賴

    springboot相關依賴

      mybatis-springboot-starter 整合springboot

      自動依賴了mybatis核心

      mysql

      druid

      lombok

      這里注意不是一個公司得東西要指定版本號

<!--      整合mybatis得-->
      <dependency>
          <groupId>org.mybatis.spring.boot</groupId>
          <artifactId>mybatis-spring-boot-starter</artifactId>
          <version>2.1.3</version>
      </dependency>                    
<!--      druid數據源得-->

<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.23</version> </dependency>
<!--      數據庫連接得-->

<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId>
          <version>5.1.44</version>
</dependency>

<!--      lombok不是必須得-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>

</dependency>

 

  2、配置springboot配置文件整合mybatis

   藍色得是必須得。

 
         
spring:
mvc:
view:
prefix: /
suffix: .jsp
# 數據源
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/text?serverTimezone=UTC&characterEncoding=UTF-8
username: root
password: 123456

mybatis:
mapper-locations: classpath:com/chinaunicom/mapper/*.xml
type-aliases-package: com.chinaunicom.entity #別名同樣為類名或者類名字母小寫 User |user倆個都行
#上面得是給SqlSessionFactory起別名



  3、入口類加入DAO接口掃描注解
@SpringBootApplication
@MapperScan("com.chinaunicom.dao")
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}
  4、建表
  
1,hua,14,2020-08-12
2,bai,13,2020-08-10
 
         

 

 


  5、實體類
  
@Data
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private String id;
    private String name;
    private Integer age;
    private Date bir;
}
 
         

  

 

 


  6、DAO接口
//寫泛型類是因為不知道操作得是哪個類,讓都可以操作
public interface BaseDAO<T> {
    void save(T t);//

    void update(T t); //

    void delete(String id);  //

    T findById(String id); //

    List<T> finsAll();//查全部

    Long findTotalCounts(); //分頁查詢總條數

    //參數1:起始條數   參數2:每頁顯示記錄數據
    List<T> findByPage(@Param("start") Integer start, @Param("size") Integer size);
             //這里得@Param是因為要用mybatis傳多個參數,所以用@Param傳過來
//    @Param是MyBatis所提供的(org.apache.ibatis.annotations.Param),作為Dao層的注解,
//    作用是用於傳遞參數,從而可以與SQL中的的字段名相對應,一般在2=<參數數<=5時使用最佳。

}     //BaseDAO
 
          
@Repository

public
interface UserDAO extends BaseDAO<User> { } //UserDAO接口

 

 

 

 


  7、Mapper配置文件
創建mapper文件:https://blog.csdn.net/zhangxl123liang/article/details/80968400 (摘自別人)
創建了以后每次都直接new mapper配置文件就行
<?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.chinaunicom.dao.UserDAO">

    <insert id="save" parameterType="User">
        insert into text values (#{id},#{name},#{age},#{bir})
    </insert>

    <select id="findAll" resultType="User">
        select id,name,age,bir from text
    </select>


</mapper>
 
         

  

 

 


  8、Service接口
public interface UserService {

    void save(User user);

    List<User> findAll();
}
 
         

 

l
  9、SerciceImpl 用@Service @Transactional控制事務 注入DAO
@Service
@Transactional
public class UserServiceImpl implements UserService {

    @Autowired
    private UserDAO userDAO;

    @Override
    public void save(User user) {
//        user.setId(UUID.randomUUID().toString());
        userDAO.save(user);
    }

    @Override
    @Transactional(propagation = Propagation.SUPPORTS)
    public List<User> findAll() {
        return userDAO.findAll();
    }
}
 
         

 


  

 

  9、controller控制層

 

@Controller
@RequestMapping("user")
public class UserController {


    @Autowired
    private UserService userService;

    //添加
    @RequestMapping("save")
    public String save(User user){
        userService.save(user);
        return "redirect:/user/findAll";
    }

    //查詢所有
    @RequestMapping("findAll")
    public String findAll(Model model){

        List<User> users = userService.findAll();
        model.addAttribute("users",users);
        return "showAll";
    }
}

最后結束了。http://localhost:9090/ssm/user/findAll

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM