spring boot mysql和mybatis

1 选择mysql驱动

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.12</version>
</dependency>

2 选择mybatis orm

<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>

3 配置mysql和mybatis

spring.datasource.url=jdbc:mysql://localhost:3306/springbootdb?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

mybatis.mapperLocations=classpath:mapper/*.xml

4 dao dao和Mapper xml

它们是一一对应的,Mapper xml中负责sql的编写,dao负责在业务中执行相应的操作。

package com.hello.springboot.dao;
import com.hello.springboot.entity.User;
import java.util.List;
public interface UserDao {
    List<User> findAll();
    User findById(Long id);
    void insert(User user);
    void update(User user);
    void delete(Long id);
}

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!--namespace是命名空间,是mapper接口的全路径-->
<mapper namespace="com.hello.springboot.dao.UserDao">

<!--resultMap – 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象--> <resultMap id="userResultMap" type="com.hello.springboot.entity.User"> <id property="name" column="username"></id> </resultMap> <!--sql – 可被其他语句引用的可重用语句块--> <sql id="colums"> id,username,age,pwd </sql> <select id="findAll" resultMap="userResultMap"> select <include refid="colums" /> from user </select> <select id="findById" resultMap="userResultMap"> select <include refid="colums" /> from user where id=#{id} </select> <insert id="insert" parameterType="com.hello.springboot.entity.User" > INSERT INTO user (username,age,pwd) VALUES (#{name}, #{age}, #{pwd}) </insert> <update id="update" parameterType="com.hello.springboot.entity.User" > UPDATE users SET <if test="username != null">username = #{username},</if> <if test="pwd != null">pwd = #{pwd},</if> username = #{username} WHERE id = #{id} </update> <delete id="delete" parameterType="java.lang.Long" > DELETE FROM user WHERE id =#{id} </delete> </mapper>

三点要注意:

第一,注意,Mapper xml中的namespace就是对应的dao接口的完整路径名;

第二,Mapper接口中的方法的名字要和Mapper xml中操作的名字一样;

第三,注意参数;

5 在代码中使用dao层的接口

给dao类加上下面的注解,然后就可以像普通的类一样使用dao对象。

@Repository
@Mapper

6 关于dao接口中函数的返回值

第一,调用dao接口时用try catch来进行异常处理,如果出现异常会抛出异常;

第二,在mapper.xml中指定返回值的类型即可,这个类型保持和dao接口中函数的类型一致;

原文地址:https://www.cnblogs.com/hustdc/p/10064792.html