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