type
Post
status
Published
date
slug
summary
介绍mybatis的一些基础用法
tags
学习
javaweb
category
学习思考
icon
password
Property
Apr 16, 2023 03:53 PM
官网
MyBatis基础使用介绍
Introduction
MyBatis是一个流行的持久化框架,它将Java对象映射到关系数据库中的表。MyBatis通过配置文件和注解来实现数据的持久化操作。在本文中,我们将介绍MyBatis的一些基础用法。
配置文件
MyBatis的配置文件是mybatis-config.xml,它包含了MyBatis的全局配置信息,例如数据库连接信息、缓存等。在使用MyBatis时需要指定该配置文件的路径,例如:
String path = "mybatis-config.xml"; InputStream is = Resources.getResourceAsStream(path); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); SqlSession session = sqlSessionFactory.openSession();
映射文件
MyBatis的映射文件是一个XML文件,用于描述Java对象和数据库表之间的映射关系。映射文件中包含了SQL语句和参数映射等信息。接下来是一个简单的映射文件示例:
<mapper namespace="edu.wtbu.dao.UsersDao"> <select id="findByEmailAndPassword" parameterType="edu.wtbu.entity.Users" resultType="edu.wtbu.entity.Users"> SELECT * FROM users WHERE email = #{email} AND password = #{password} </select> </mapper>
上述示例中,namespace属性指定了该映射文件所属的命名空间,id属性指定了该查询操作的ID,parameterType属性指定了查询参数的类型,resultType属性指定了查询结果的类型。最后的SQL语句中使用了#{email}和#{password}占位符,它们将会被映射到Java对象中的对应属性。
注解
除了XML配置文件之外,MyBatis还支持注解方式来进行数据持久化操作。使用注解方式时,可以直接在Java方法上使用@Select、@Insert等注解来指定SQL语句和参数映射等信息。下面是一个简单的使用注解的示例:
@Mapper public interface UsersMapper { @Select("SELECT * FROM users WHERE email = #{email} AND password = #{password}") Users findByEmailAndPassword(@Param("email") String email, @Param("password") String password); }
上述示例中,@Mapper注解用于标识该接口是一个MyBatis的Mapper接口,@Select注解用于指定查询操作的SQL语句,@Param注解用于指定参数映射。
Conclusion
在本文中,我们介绍了MyBatis的一些基础用法,包括配置文件、映射文件和注解等。MyBatis是一个非常强大和灵活的持久化框架,它可以帮助我们更方便地进行数据持久化操作。如果您想深入学习MyBatis,可以参考官方文档或者一些MyBatis的教程。
简单解释
//mybatis核心代码 public class UsersDao { public static List<Users> findByEmailAndPassword(Users user) throws Exception{ List<Users> list = null; //1.核心文件配置和文件名 String path = "mybatis-config.xml"; //2.构建sqlsession工厂 InputStream is = Resources.getResourceAsStream(path); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); //3.通过工厂构建产品 SqlSession session = sqlSessionFactory.openSession(); //4.通过产品"制作"数据 String sql = "edu.wtbu.dao.UsersDao.findByEmailAndPassword"; list = session.selectList(sql, user); //5.使用框架不需要close对象 return list; } } 该代码是一个用于查询用户邮箱和密码是否匹配的DAO(数据访问对象)类。具体解释如下: 1. 定义了一个静态方法findByEmailAndPassword,该方法接收一个Users类型的参数user,并且可能会抛出异常。 2. 初始化了一个List类型的变量list,并将其设为null。 3. 定义了一个字符串path,表示mybatis配置文件的路径。使用mybatis需要配置文件,该文件的路径通过该变量来指定。 4. 使用Resources类加载mybatis配置文件,获取一个InputStream对象is。然后使用SqlSessionFactoryBuilder类的build方法来构建一个SqlSessionFactory对象sqlSessionFactory。SqlSessionFactory是一个用于生产SqlSession的工厂类。 5. 使用sqlSessionFactory对象来创建一个SqlSession对象。 6. 使用SqlSession对象来执行查询操作。该查询操作的SQL语句被赋值给了一个字符串变量sql,该SQL语句的名称是"edu.wtbu.dao.UsersDao.findByEmailAndPassword"。其中edu.wtbu.dao是指该SQL语句所在的命名空间,UsersDao是指该查询操作的ID。 7. 将查询结果赋值给变量list,并最终将其返回。由于使用了mybatis框架,所以不需要手动关闭SqlSession对象等。
