Springboot-Mybatis-入门

Mybatis

配置

pom文件

需要在pom中加入mybatis和jdbc的依赖

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.2</version>
</dependency>

或是

         <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.2</version>
        </dependency>

application.yml

1、配置spring的数据源

注意 driver-class-name: com.mysql.cj.jdbc.Driver

#配置数据源信息
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/zg_test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
    password: 123456
    username: root
    driver-class-name: com.mysql.cj.jdbc.Driver
    #com.mysql.jdbc.Driver是MySQL 5版本的。MySQL 5以上需要使用 com.mysql.cj.jdbc.Driver

2、配置mybatis信息
包扫描和别名的扫描包可以直接在application.yml中配置,对于setting等更多属性需要mybatis-config.xml


mybatis:
  # 配置mybatis的resultType别名,默认是别名为小写
  type-aliases-package: com.lexiaoyao.mybatisdemo.domain
  # 配置扫描的xml文件位置
  mapper-locations: classpath:mybatis/mapper/*.xml
  # mybatis详细配置文件
  config-location: classpath:mybatis/mybatis-config.xml

mybatis-config.xml配置

配置configuration,常用的包括日志,和别名等。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--    日志信息,控制台输出-->
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
    <!--    别名配置-->
    <typeAliases>
        <typeAlias alias="Integer" type="java.lang.Integer"/>
        <typeAlias alias="Long" type="java.lang.Long"/>
        <typeAlias alias="HashMap" type="java.util.HashMap"/>
        <typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap"/>
        <typeAlias alias="ArrayList" type="java.util.ArrayList"/>
        <typeAlias alias="LinkedList" type="java.util.LinkedList"/>
    </typeAliases>
</configuration>

接口扫描

需要在启动类上添加MapperScan注解

@SpringBootApplication
@MapperScan("com.lexiaoyao.mybatisdemo.mapper")
public class MybatisdemoApplication {

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

接口和mapper映射

mybatis采用一个接口对应一个mapper的方式映射。

接口

接口中只需要定义方法

/**
 * Repository 添加防止mapper注入时飙红,但是不会影响程序运行
 */
@Repository
public interface UserMapper {

    void insertUser(User user);

    List<User> listAll();

}

mapper

以上接口对应的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.lexiaoyao.mybatisdemo.mapper.UserMapper">
    <sql id="Base_Column_List">
        id,name,age
    </sql>

    <insert id="insertUser" parameterType="user">
        insert into user (name,age) values (#{name},#{age})
    </insert>

    <select id="listAll" resultType="user">
        select
        <include refid="Base_Column_List"/>
        from user
    </select>

</mapper>

接下来对重点的标签解释

mapper

mapper文件最外层标签

namespace为对应接口的路径

sql

替换sql,类似于指代重复的sql字段的变量,通过和标签配合使用

id设定id,在include中通过refid字段进行定位

insert

对应sql的新增操作

id为接口中的方法名,parameterType为返回的类型,这里的user是别名

select

对应sql查询操作

增删改查

java接口
note
在声明接口的时候,最好在方法里显示地表面变量在xml里的符号。
采用@Param注解

void deleteById(@Param("id") Integer id);
/**
 * Repository 添加防止mapper注入时飙红,但是不会影响程序运行
 */
@Repository
public interface UserMapper {

    void insertUser(User user);

    List<User> listAll();

    void update(User user);

    void deleteById(@Param("id") Integer id);

}
mapper.xml
~~~xml
<?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.lexiaoyao.mybatisdemo.mapper.UserMapper">
    <sql id="Base_Column_List">
        id,name,age
    </sql>

    <insert id="insertUser" parameterType="user">
        insert into user (name,age) values (#{name},#{age})
    </insert>

    <select id="listAll" resultType="user">
        select
        <include refid="Base_Column_List"/>
        from user
    </select>

    <update id="update" parameterType="user">
        update user set name = #{name},age = #{age} where id = #{id}
    </update>

    <delete id="deleteById">
        delete from user where id = #{id}
    </delete>

</mapper>
posted @ 2020-08-14 15:54  刃牙  阅读(191)  评论(0编辑  收藏  举报