栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

测开学习笔记十二:mybaits&springboot入门

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

测开学习笔记十二:mybaits&springboot入门

1.mybatis 1.1mybatis简介

MyBatis是一款优秀的基于ORM的半自动轻量级持久层框架,它支持定制化SQL、存储过程以及高级映 射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的 XML或注解来配置和映射原生类型、接口和Java的POJO (Plain Old Java Objects,普通老式Java对 象) 为数据库中的记录。

1.2 mybatis 优势

Mybatis是一个半自动化的持久层框架,对开发人员开说,核心sql还是需要自己进行优化,sql和java编码进行分离,功能边界清晰,一个专注业务,一个专注数据。

1.3 mybatis快速入门

开发步骤:
1.搭建依赖环境



    4.0.0

    org.example
    mybatis
    1.0-SNAPSHOT
    
         
        org.mybatis
        mybatis
        3.4.5
    
         
        mysql
        mysql-connector-java
        5.1.6
        runtime
    
    
    
        junit
        junit
        4.12
        test
    
    
    
        log4j
        log4j
        1.2.16
    
        
            org.projectlombok
            lombok
            1.18.12
            compile
        
        
            org.bouncycastle
            bcprov-jdk15on
            1.60
            compile
        
        
            org.projectlombok
            lombok
            1.18.12
            compile
        
    



2编写User实体类

package com.pojo;


import lombok.Data;

@Data
public class User {
    public int id;
    public String name;
    public String age;
}

3.编写dao层

package com.dao;

import com.pojo.User;

import java.util.List;


public interface UserDao {
    List findAll();
}

4编写映射文件UserMapper.xml

 

    
    select * from User
  

5编写核心文件sqlConfig.xml






    
        
        
        
        
            
            
            
            
        
    




    


6.编写测试类

package com.mybatis.learn;

import com.dao.UserDao;
import com.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class MybatisTest {

    @Test
    public void testProxyDao() throws IOException {
        //加载核心配置文件
        InputStream resourceAsStream = Resources.getResourceAsStream("sqlConfig.xml");
        //获得sqlSession工厂对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        //获得sqlSession对象
        SqlSession sqlSession = sqlSessionFactory.openSession(); //获得MyBatis框架生成的UserMapper接口的实现类
        UserDao userMapper = (sqlSession).getMapper(UserDao.class);
        List users =  userMapper.findAll();
        System.out.println(users);
        sqlSession.close();
    }
}

2. Spring+SpringMVC+MyBatis

在mybatis框架体系中,主要的组件是:SqlSessionFactoryBean和MapperScannerConfigurer。SqlSessionFactoryBean类依赖外部注入的数据源:DataSource。并有两个属性:configLocation和mapperLocations。
ConfigLocation指定了mybatis配置文件的位置;mapperLocations指定了多个mapper映射文件的位置。
MapperSacannerConfigurer依赖SqlSessionFactoryBean,并根据basePackages属性指定的IDao接口类所在的包位置,自动扫描该包路径,为每个IDao类创建一个MapperFactoryBean类。MapperFactoryBean类会为它所对应的IDao接口类创建其具体的实现类实例,并将其注入到service层的业务代码中。

2.1 快速入门

sping-mybatis.xml



	
	
	
	
		
	

	
		
		
		
		
		
		
		
		
	

	
	
		
		
		
		 
5.事务 
package com.cn.hnust.service.impl;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.cn.hnust.dao.IUserDao;
import com.cn.hnust.pojo.User;
import com.cn.hnust.service.IUserService;

@Service("userService")
public class UserServiceImpl implements IUserService {
	@Resource
	private IUserDao userDao;
	
	@Override
	public User getUserById(int userId) {
		return this.userDao.selectByPrimaryKey(userId);
	}
	
	@Override
	@Transactional //事务
	public void insertUser(User user) {
		userDao.insert(user);
		throw new RuntimeException("test");//抛出unchecked异常,触发事物,回滚
	}

}

单元测试:

package com.cn.hnust.dao;

import com.cn.hnust.pojo.User;
import com.cn.hnust.service.IUserService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring-mybatis.xml"})
public class TransactionalTest {

    @Autowired
    IUserService iUserService;

    @Test
    @Transactional
    //@Rollback(value = true)
    public void transact(){
        User user=new User();
        user.setId(1110);
        user.setUserName("leon01");
        user.setAge(20);
        user.setPassword("fds");
        iUserService.insertUser(user);
    }
}
6.Springboot 6.1Springboot概述

Spring Boot 并不是对 Spring 功能上的增强,而是提供了一种快速使用 Spring 的方式。
SpringBoot功能 :

  1. 自动配置
    Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才 决定Spring配置应该用哪个,不该用哪个。该过程是SpringBoot自动完成的。
  2. 起步依赖
    起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递
    依赖,这些东西加在一起即支持某项功能。 简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。
  3. 辅助功能 提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等。
6.2 Springboot快速入门

1.创建Maven项目
2.导入SpringBoot起步依赖

 
org.springframework.boot spring-boot-starter-parent 2.1.8.RELEASE

    
 
org.springframework.boot
spring-boot-starter-web 

3.定义Controller

package springbootlearn.demo.controller;


import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

import java.util.HashMap;
import java.util.Map;

@RestController
@RequestMapping("/home")
public class HomeController {

    @GetMapping("/test")
    public Object test(){
        Map map =new HashMap<>();
        map.put("hello","spring boot ------");
        return map;
    }
}

4.编写引导类

@SpringBootApplication
public class HelloApplication {
public static void main(String[] args) { SpringApplication.run(HelloApplication.class,args);
} }

5.启动测试

6.3 thymeleaf快速入门

1.导入依赖

  
	 org.springframework.boot
	spring-boot-starter-thymeleaf
	 


2.修改配置文件
#thymeleaf配置文件
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
3.编写Controller类

package springbootlearn.demo.controller;


import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

import java.util.HashMap;
import java.util.Map;

@RestController
@RequestMapping("/home")
public class HomeController {

    @GetMapping("/learn")
    public ModelAndView learn(){
        ModelAndView modelAndView=new ModelAndView("index");
        modelAndView.addObject("msg","hello,#thymeleaf!");
        return modelAndView;
    }
}

4.编写html




    
    Thymeleaf入门


Thymeleaf入门
${msg}



5.接口测试

6.4 引入数据库查询数据

    org.springframework.boot
    spring-boot-starter-jdbc

 


    mysql
    mysql-connector-java
    runtime

 @GetMapping("/learn3")
    public ModelAndView learn3(){
        ModelAndView modelAndView=new ModelAndView("index3");
        String sql = "select * from idcard_infos";
        RowMapper rowMapper = new BeanPropertyRowMapper<>(IdCard.class);
        List users = jdbcTemplate.query(sql, rowMapper);
        modelAndView.addObject("userList",users);
        return modelAndView;
    }



    
    Insert title here



Index ID Name Age

配置文件配置数据源

#自动配置datasource
spring.datasource.username=uquest_ddl
spring.datasource.password=7hfxpa
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://172.0.0.1:3307/mytest_zou?characterEncoding=utf-8&useSSL=false

启动程序测试:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/274117.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号