Mybatis【使用注解开发】

简介: Mybatis【使用注解开发】

注解的使用

1、编写接口并注解SQL

我们的SQL语句不再需要在 UserMapper.xml 这样的映射文件中区配置了,直接在接口处定义SQL语句即可。

import com.study.pojo.User;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface UserMapper {
    @Select("select * from mybatis.user")
    List<User> getUserList();
    @Select("select * from mybatis.user where id = #{id}")
    User getUserById(int id);
}

2、配置mybatis-config.xml

mappers 只需要指定接口即可。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//OTD Config 3.0//EN"
        "http://mybatis.org/schema/mybatis-3-config.dtd">
<configuration>
    <properties resource="db.properties"/>
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC"/>
                <dataSource type="POOLED">
                    <property name="driver" value="${driver}"/>
                    <property name="url" value="${url}"/>
                    <property name="username" value="${username}"/>
                    <property name="password" value="${password}"/>
                </dataSource>
            </environment>
        </environments>
    <mappers>
        <mapper class="com.study.dao.UserMapper"/>
    </mappers>
</configuration>

缺点

       使用注解来映射简单语句会使代码显得更加简洁,但对于稍微复杂一点的语句,Java 注解不仅力不从心,还会让你本就复杂的 SQL 语句更加混乱不堪(比如结果集映射,你JavaBean的属性名必须和数据库字段一致,否则无法映射)。 因此,如果你需要做一些很复杂的操作,最好用 XML 来映射语句。

注解实现CRUD

@Param的使用

@Param在Mybatis中一般用在多个SQL参数的情况,@Param()中的参数名必须对应UserMapper.xml中的参数名。

UserMapper接口类:

User getUserById(@Param("uid") int id);

UserMapper.xml:

<select id="getUserById" resultMap="UserMap">
        select * from mybatis.user where id = #{uid}
    </select>

也就是说SQL中的参数#{参数名}必须对应@Param(参数名)中的参数名。

虽然我们使用注解实现时不需要UserMapper.xmL 但是我们也同样需要对应参数名

CRUD实现

1、设置自动提交事务

public static SqlSession getSqlSession(){
        return sqlSessionFactory.openSession(true);//可以自动提交事务 默认为true
    }

2、编写接口,增加注解

public interface UserMapper {
    @Select("select * from mybatis.user")
    List<User> getUserList();
    @Select("select * from mybatis.user where id = #{id}")
    User getUserById(int id);
    @Delete("delete from mybatis.user where id = #{uid}")
    int delUser(@Param("uid") int id);
    @Insert("insert into mybatis.user(id,name,pwd) values(#{id},#{name},#{password})")
    int adduser(User user);
}

3、绑定接口

一定要在mybatis-config.xml中绑定接口

<mappers>
        <mapper class="com.study.dao.UserMapper"/>
    </mappers>

4、测试

@Test
    public void test(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.adduser(new User(3,"石敢当","121212"));
        List<User> userList = mapper.getUserList();
        for (User user : userList) {
            System.out.println(user);
        }
        sqlSession.close();
    }

关于@Param()注解

  • 基本类型的参数或者String需要加上
  • 引用类型不需要加
  • 如果只有一个基本类型可以忽略,但是建议加上
  • 我们在SQL中引用的就是我们这里@Param(参数名)中的参数名
相关文章
|
3天前
|
SQL 存储 数据库
深入理解@TableField注解的使用-MybatisPlus教程
`@TableField`注解在MyBatis-Plus中是一个非常灵活和强大的工具,能够帮助开发者精细控制实体类与数据库表字段之间的映射关系。通过合理使用 `@TableField`注解,可以实现字段名称映射、自动填充、条件查询以及自定义类型处理等高级功能。这些功能在实际开发中,可以显著提高代码的可读性和维护性。如果需要进一步优化和管理你的MyBatis-Plus应用程
20 3
|
2天前
|
Java 数据库连接 mybatis
Mybatis使用注解方式实现批量更新、批量新增
Mybatis使用注解方式实现批量更新、批量新增
12 1
|
2月前
|
SQL XML Java
mybatis复习02,简单的增删改查,@Param注解多个参数,resultType与resultMap的区别,#{}预编译参数
文章介绍了MyBatis的简单增删改查操作,包括创建数据表、实体类、配置文件、Mapper接口及其XML文件,并解释了`#{}`预编译参数和`@Param`注解的使用。同时,还涵盖了resultType与resultMap的区别,并提供了完整的代码实例和测试用例。
mybatis复习02,简单的增删改查,@Param注解多个参数,resultType与resultMap的区别,#{}预编译参数
|
27天前
|
前端开发 Java 数据库连接
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
本文是一份全面的表白墙/留言墙项目教程,使用SpringBoot + MyBatis技术栈和MySQL数据库开发,涵盖了项目前后端开发、数据库配置、代码实现和运行的详细步骤。
33 0
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
|
2月前
|
Java 数据库连接 数据格式
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
IOC/DI配置管理DruidDataSource和properties、核心容器的创建、获取bean的方式、spring注解开发、注解开发管理第三方bean、Spring整合Mybatis和Junit
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
|
3月前
|
SQL Java 数据库
5、Mybatis-Plus 常用注解
这篇文章详细介绍了Mybatis-Plus中常用的注解,包括解决实体类与数据库表名不一致、字段不匹配的问题,主键生成策略的配置,以及逻辑删除的实现方法。
5、Mybatis-Plus 常用注解
|
3月前
|
SQL Java 数据库连接
Spring Boot联手MyBatis,打造开发利器:从入门到精通,实战教程带你飞越编程高峰!
【8月更文挑战第29天】Spring Boot与MyBatis分别是Java快速开发和持久层框架的优秀代表。本文通过整合Spring Boot与MyBatis,展示了如何在项目中添加相关依赖、配置数据源及MyBatis,并通过实战示例介绍了实体类、Mapper接口及Controller的创建过程。通过本文,你将学会如何利用这两款工具提高开发效率,实现数据的增删查改等复杂操作,为实际项目开发提供有力支持。
123 0
|
3月前
|
SQL Java 数据库连接
后端框架的学习----mybatis框架(7、使用注解开发)
这篇文章讲述了如何使用MyBatis框架的注解方式进行开发,包括在接口上使用注解定义SQL语句,并通过动态代理实现对数据库的增删改查操作,同时强调了接口需要在核心配置文件中注册绑定。
|
5月前
|
Java 数据库连接 数据库
Springboot整合mybatis注解版(202005)
Springboot整合mybatis注解版(202005)
|
5月前
|
SQL XML Java
后端数据库开发JDBC编程Mybatis之用基于XML文件的方式映射SQL语句实操
后端数据库开发JDBC编程Mybatis之用基于XML文件的方式映射SQL语句实操
68 3