我选择把 xml 配置 文件 放在 mybatis 定义的接口 包内 。这样就可以改接口和改 xml 文件 ,左侧的 文件 树几乎不跳动,来回切换,毕竟会节约一些时间。具体的做法如下。 1.配置SqlSessionFactory的时候,指定一下资源目录 @ Mapper Scan(basePackages = “cn.example.productServer. mapper ”) 2.pom. xml 文件 中定义一下,编译的时候将 包内 xml 文件 一并打包进jar包 <build> <!-- 需要将 xml 资源 文件
1:用于区分不同的 mapper ,全局唯一。 2:绑定DAO接口,即面向接口编程。当namespace绑定某一接口之后,可以不用写该接口的实现类, MyBatis 会通过接口的完全限定名来查找对应的 mapper 配置,执行SQL语句,因此namespa ce的命名必须和接口名相同。 namespace属性的要求:
@Qualifier是 一个 Spring框架的注解,用于标识 一个 Bean的特定实例。当有多个Bean实现了同一接口或类时,@Qualifier可以指定要使用的实例。 通常情况下,Spring框架根据类型来自动装配依赖,但如果有多个 Bean 与依赖的类型匹配,则会产生歧义。这时就需要使用 @Qualifier 来指定具体匹配的 Bean。
在传统的三 架构中,DAO 负责与数据库进行交互,包括数据的查询、更新、删除等操作。 Mapper 是DAO 的一部分,主要负责将SQL语句映射成 Java 的方法,提供给Service 调用。Service 则是业务逻辑的处理 ,负责将DAO Mapper 的方法组合起来,实现具体的业务需求。 以下是 一个 简单的 Mapper 的例子,使用 XML 文件 实现了根据用户ID查询用户信息的方法: ``` xml <!-- user Mapper . xml --> < mapper namespace="com.example.dao.User Mapper "> <select id="selectById" parameterType="int" resultType="com.example.entity.User"> SELECT id, name, age, gender FROM user WHERE id = #{id} </select> </ mapper > 在这个例子中, mapper 标签的namespace属性指定了该 Mapper 对应的 Java 接口,select标签的id属性指定了该方法对应的 Java 方法名称,parameterType属性指定了该方法的参数类型,resultType属性指定了该方法返回值的类型。SQL语句则直接写在select标签的内部。 当Service 调用该方法时, Mapper 会将该SQL语句执行,从数据库中查询到对应的用户信息,并将其封装成 一个 User对象返回给Service