首页 > 其他分享 >MyBatis基础

MyBatis基础

时间:2022-08-30 22:00:16浏览次数:75  
标签:xml name 基础 Mybatis user MyBatis applicationContenxt

MyBatis是什么

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

如何使用

普通Java项目使用Mybatis

这里就不再赘述了,官方文档里面有保姆级别的介绍,大家可以去参考,地址是:https://mybatis.net.cn/getting-started.html

Spring使用Mybatis

  1. 引入Maven配置
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.10</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>2.0.7</version>
    </dependency>
  1. 创建DB配置文件
db.driverClass=com.mysql.jdbc.Driver
db.url=jdbc:mysql://127.0.0.1:3306/mydb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
db.username=root
db.password=root
  1. applicationContenxt.xml中增加配置加载
<context:property-placeholder location="classpath:db.properties"/>
  1. applicationContenxt.xml中初始化数据源
    <bean id="datasource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${db.driverClass}"/>
        <property name="url" value="${db.url}"/>
        <property name="username" value="${db.username}"/>
        <property name="password" value="${db.password}"/>
    </bean>
  1. applicationContenxt.xml中创建sqlSessionFactory,并指定mapper xml位置
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="datasource"/>
        <property name="mapperLocations" value="classpath*:com/vinson/learn/dao/**/*.xml"/>
    </bean>

applicationContenxt.xml中指定mapper位置

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.vinson.learn.dao"/>
    </bean>

其中,Mapper和其对应的代码如下:

package com.vinson.learn.dao;

import com.vinson.learn.bean.User;
import org.apache.ibatis.annotations.Param;

public interface UserDao {

//    @Select("select * from user where name = #{name}")
    User getByName(@Param("name") String name);


    void addUser(User user);

}

<?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.vinson.learn.dao.UserDao">
    <insert id="addUser">
        insert into user(name,age) values (#{name}, #{age})
    </insert>
    <select id="getByName" resultType="com.vinson.learn.bean.User">
        select * from user where name = #{name}
    </select>

</mapper>
  1. 目录结构如下:

  2. 如果需要开启注解事务的可以,参照如下方式,applicationContenxt.xml中增加:

    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <constructor-arg ref="datasource" />
    </bean>

    <tx:annotation-driven transaction-manager="transactionManager"/>
  1. 代码中的使用方式是:
 @Autowired
    private UserDao userDao;

    @Transactional(rollbackFor = Exception.class)
    @Override
    public User getUserByName() {
        User user = userDao.getByName("mike");
        //....省略.....

SpringBoot使用Mybatis

常用的标签

标签:xml,name,基础,Mybatis,user,MyBatis,applicationContenxt
From: https://www.cnblogs.com/vinson-zhang/p/16635614.html

相关文章

  • Jenkins基础安装
    Jenkins基础安装Jenkins介绍Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可......
  • spring 学习笔记二ioc基础
    控制反转IoC(InversionofControl),是一种设计思想,DI(依赖注入)是实现IoC的一种方法控制反转就是将控制权从程序手里转到我们手里,通过我们输入的获取对象,不是通过程序获取......
  • CSS 基础 - 结构
    CSS基础-结构记得我在我的文章中提到的HTML基础-结构最高级的结构将由CSS处理的文章?嗯,就是这样。Photoby设计公司on不飞溅正如我之前提到的,HTML的't......
  • MyBatis常用注解及基本增删改查的注解实现
    MyBatis的常用注解注解可以减少Mapper文件的编写,常用注解如下;@Insert:实现新增@Update:实现更新@Delete:实现删除@Select:实现查询@Result:实现结果集封装@Results:可......
  • mybatis_13_SqlSessionFactory的DCL单例模式
    SqlSessionFactory的DCL单例模式 publicclassSqlSessionFactorySingleton{privateSqlSessionFactorySingleton(){}/***volatile关键字在此......
  • Java基础~Java Instant类 & 日期相关
    _____________________________________________________________________________________________________________________________ 日期时间(DemoDateDemo.java)1.......
  • mybatis分页
    新人菜菜子再做项目之前没搞过分页 都是limit  上班了还这么搞 太土狗了项目上用了mybatis-plus百度了一下mybatis-plus怎么分页其他的配置项目之前都配置好了......
  • mybatis执行insert语句后,返回当前插入数据主键的方法 keyProperty区分大小写
    mybatis执行insert语句后,返回当前插入数据主键的方法keyProperty区分大小写#这样查询没有返回主键值<insertid="addLog"useGeneratedKeys="true"keyProperty="id"......
  • mybatis查询参数Set遍历查询
    #sqlmapper<resultMapid="BaseResultMap"type="com.LogEntity"><resultcolumn="ID"property="ID"/><resultcolumn="content_md5"property="co......
  • MyBatis复杂映射开发之多对多查询
    多对多查询的模型用户表和角色表的关系为,一个用户有多个角色,一个角色被多个用户使用。多对多查询的需求:查询所有用户的同时查询出该用户对应的所有角色。@startuml!th......