(三)以接口的方式编程(常用)

前面一章,已经搭建好了eclipse,mybatis,mysql的环境,并且实现了一个简单的查询。请注意,这种方式是用SqlSession实例来直接执行已映射的SQL语句:
session.selectOne("com.yihaomen.mybatis.models.UserMapper.selectUserByID", 1)
其实还有更简单的方法,而且是更好的方法,使用合理描述参数和SQL语句返回值的接口(比如IUserOperation.class),这样现在就可以至此那个更简单,更安全的代码,没有容易发生的字符串文字和转换的错误.下面是详细过程:

在src_user源码目录下建立 com.yihaomen.mybatis.inter 这个包,并建立接口类 IUserOperation , 内容如下:


package com.yihaomen.mybatis.inter;
import com.yihaomen.mybatis.model.User;

public interface IUserOperation {    
    public User selectUserByID(int id);
    
}

请注意,这里面有一个方法名 selectUserByID 必须与 User.xml 里面配置的 select 的id 对应(<select id="selectUserByID")

<?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.yihaomen.mybatis.inter.IUserOperation"><!-- 命名空间,不能随意写,必须是接口的全名称 -->
 
   <!-- 查询功能,resultType 设置返回值类型 -->
     <!--public User selectUserByID(int id); --> id要和接口对应的方法名一致
    <select id="selectUserByID" parameterType="int" resultType="User"><!-- 书写 SQL 语句 -->
        select * from `user` where id = #{id}
    </select>
</mapper>
public static void main(String[] args) {
        SqlSession session = sqlSessionFactory.openSession();
        try {
            IUserOperation userOperation=session.getMapper(IUserOperation.class);
            User user = userOperation.selectUserByID(1);
            System.out.println(user.getUserAddress());
            System.out.println(user.getUserName());
        } finally {
            session.close();
        }
    }

接口编程:

    原生: Dao  ===> DaoImpl

    MyBatis: Mapper ===> xxMapper.xml

2.SqlSession代表与数据库的一次会话,用完务必关掉

3.Session和connection一样都不是线程安全的,每次使用都应该去获取新的对象

4.mapper接口没有实现类,但是MyBatis会为这个接口生成一个代理对象

5.两个重要的配置文件:

          包括全局配置文件:包含数据库连接池信息、事务管理器信息等 ....系统运行环境信息

          sql映射文件:保存了每一个sql语句的映射信息(将SQL抽取出来)

   

转载:https://blog.csdn.net/techbirds_bao/article/details/9233599

猜你喜欢

转载自blog.csdn.net/jiangshangchunjiezi/article/details/89158956
今日推荐