Mybatis1

1.1 Mytatis介绍

官网地址:mybatis – MyBatis 3 | 简介

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

总结:1.MyBatis是一款优秀的持久层框架,在内部封装了JDBC,简化了操作数据库的过程

          2.它支持自定义SQL、存储过程以及高级映射

映射:

数据库中的表与POJO中的类——映射

表中的字段与类中的属性——映射

1.2 导入数据库

导入后刷新

1.3 入门案例

1.3.1 创建项目

1.3.2 导入项目

1.配置pom.xml配置文件

 <!--mybatis依赖包-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.0</version>
        </dependency>

        <!--jdbc依赖包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <!--添加lombok的包-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

 2.导入jar包

 <!--mybatis依赖包-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.0</version>
        </dependency>
<!--jdbc依赖包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

<!--添加lombok的包-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

3.导入src

1.4 lombok插件安装

1.4.1 lombok介绍

说明:pojo对象中必须添加jget/set/toString等常规方法,但是该方法写起来繁琐,但是又必须添加

所以可以引入lombok插件动态生成上述的方法。

1.4.2 导入jar包

<!--添加lombok的包-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

上面的

1.4.3 安装lombok插件

setting-Plugins-搜索lombok安装,重启IDEA

lombok 版本地址: https://plugins.jetbrains.com/plugin/6317-lombok/versions

1.4.4 lombok注解标识POJO

@Data                                      //动态生成get/set/toString/equals/hashCode等方法

@Accessors(chain=true)        //开启链式加载   重写set方法

@NoArgsConstructor            //无参构造

@AllArgsConstructor            //全参构造

链式加载规则:

1.重写set方法

2.要求返回当前对象

@Data    //动态生成get/set/toString/equals/hashCode等方法
@Accessors(chain = true)    //开启链式加载  重写set方法
@NoArgsConstructor    //无参构造
@AllArgsConstructor   //全参构造
public class User implements Serializable {
    private Integer id;
    private String name;
    private Integer age;
    private String sex;
    public void xx(){
        User user3=new User();
        //链式加载规则,重写set方法,要求返回当前对象user
        user3.setName("xxx").setSex("女").setAge(18).setId(1);
    }
    public User setId(Integer id){
        this.id=id;
        return this;      //this  代表当前对象! 运行期有效!!
    }
}

1.4.5 编辑Mapper接口

规则:基于面向接口开发的规则,准备一个新的接口

@Mapper              //将接口交给Spring容器管理  Map<userMapper,JDK代理对象>

指定接口方法,查询所有的用户信息

@Mapper //将接口交给Spring容器管理 Map<userMapper,JDK代理对象>
public interface UserMapper {
    //指定接口方法 查询User的全部数据
    //查询所有的用户信息
    List<User> findAll();
}

1.4.6 编辑Mapper的映射文件

核心作用:编辑操作数据库的sql

1.namespace是mybatis映射文件的唯一标识,与接口对应

   调用流程:(1)编辑Mapper接口,编辑接口方法

                     (2)映射文件与Mapper接口绑定

2.<select  id = "findAll"     resultType = "com.jt.pojo.User"></select>

   执行业务操作  id:与接口方法一一对应

                          resultType:返回POJO对象类型全路径

                                             mybatis自动的将结果集自动的封装为对象

如果返回值是List集合,则自动封装为List,User充当其中的泛型对象

如果返回值是User对象,则直接返回User对象

<mapper namespace="com.jt.mapper.UserMapper">
    <select id="findAll" resultType="com.jt.pojo.User">
        select * from demo_user
    </select>
</mapper>

1.4.7 Spring整合Mybatis的配置

说明:Mybatis原生代码的结构混乱,比较复杂,所以采用Spring整合mybatis的操作简化开发的步骤

其中标识spring整合mybatis的步骤;配置信息了解

#1.配置端口号  注意缩进!!!!!
server:
  port: 8090

#2.配置数据源
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/jt?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
    username: root
    #yml文件 0不解析 如果字母以0开头则引号包裹
    #password: "0123456"
    password: root

#3.配置Mybatis
mybatis:
  #定义别名包
  type-aliases-package: com.jt.pojo
  #将所有的映射文件全部加载
  mapper-locations: classpath:/mappers/*.xml
  #开启驼峰映射
  configuration:
    map-underscore-to-camel-case: true

#4.打印Sql com.jt.mapper下的Sql日志
logging:
  level:
    com.jt.mapper: debug

 1.4.8 Spring的测试类

说明:Spring为了后期测试代码方便,专门针对于测试方法,开发了一个注解@SpringBootTest

@SpringBootTest //该注解的作用启动spring容器中,之后动态的获取对象
public class TestMybatis {

    @Autowired  //IDEA编译异常 不影响代码的执行
    private UserMapper userMapper;

    @Test
    public void test01(){
        List<User> userList = userMapper.findAll();
        System.out.println(userList);
    }
}

2.Mytais学习 

2.1 根据ID查询数据

 <!--根据id查询用户数据
        语法: 动态获取数据 #{属性名称}
        #号效果: 有预编译的效果  防止Sql注入攻击问题
                所以以后取值使用#号
    -->
    <select id="findUserById" resultType="com.jt.pojo.User">
        select * from demo_user where id= #{id}
    </select>

2.2 

1.@Configuration 标识当前类是配置类
2.@ComponentScan 包扫描注解 扫描注解
3.@Bean 标识该方法的返回值交给Spring容器管理
4.@Scope 控制多例和单例
5.@Lazy 懒加载
6.@PostConstruct 初始化方法
7.@PreDestroy 销毁方法
8.@Component 将当前类未来的对象交给容器管理
9.@Autowired 按照类型进行注入
10.@Qualifier 按照名称进行注入
11.@Repository 标识持久层注解
12.@Service 标识Service层
13.@Controller 标识Controller层
14.@Value 为属性赋值 @Value("${key}")
15.@PropertySource 加载指定路径的配置文件properties
16.@Aspect 标识当前类是一个切面类
17.@Pointcut 用于定义切入点表达式 表达式写法4种
18.@EnableAspectJAutoProxy 让AOP的注解有效果
19.@Before AOP-前置通知
20.@AfterReturning AOP-后置通知
21.@AfterThrowing AOP-异常通知
22.@After AOP-最终通知
23.@Around AOP-环绕通知
24.@Order(1) //可以利用order关键字 实现AOP的排序 数字越小越先执行.
25.@ResponseBody 将返回的数据转化为JSON串, 如果是字符串本身 原数据返回
26.@RequestMapping("/hello") 实现浏览器的请求路径与方法的映射
27.@PathVariable restFul结构,接收参数的注解.
28.@GetMapping("") 只能接收GET请求类型
29.@DeleteMapping("") 只能接收DELETE请求类型
30.@PostMapping("") 只能接收POST请求类型
31.@PutMapping("") 只能接收PUT请求类型
32.@RestController 表示Controller类,同时要求返回值为JSON
33.@CrossOrigin 允许跨域访问
34.@RequestBody 参数接收时,将JSON串转化为java对象 json中的key与对象的属性一致.
35.@Data lombok动态生成get/set/toString/equals/hashcode等方法
36.@Accessors 控制是否开启链式加载结构
37.@NoArgsConstructor 生成无参构造方法
38.@AllArgsConstructor 生成全参构造方法
39.@Mapper mybatis将当前的接口交给Spring容器管理. Map<类名小写,JDK动态代理对象>
40.@SpringBootTest 该注解的作用在进行代码测试时启动spring容器,之后动态的获取对象 注意包                                    路径 主启动类的同包及子包中.
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值