Mybatis的基础

1、Mybatis的mapper文件说明

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

mybatis-3-mapper.dtd为Mybatis的约束文件

2、 Java代码执行Sql(Mybatis框架的初始状态【为简化】)

        //访问mybatis去读取数据
        //1.定义mybatis的主配置文件的名称,从类路径的根开始(target/classes)
        String config ="xxxx.xml";
        //2.读取这个xml
        InputStream in = Resources.getResourceAsStream(config);
        //3.创建SqlSessionFactoryBuilder对象
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        //4.创建SqlSessionFactory对象
        SqlSessionFactory factory = builder.build(in);
        //5.从factory中获取sqlSession
        SqlSession sqlSession = factory.openSession();
        //6、sql语句的执行  命名空间+"."+"标签的id值"
        String sql="com.lgz.dao.StudentDao"+"."+"selectStudentList";
        //7.sql执行
        List<Object> objects = sqlSession.selectList(sql);
        //8.关闭SqlSession对象
        sqlSession.close();
  1. SqlSession:
    sqlSession接口:定义了操作数据的方法,例如: selectOne()、insert()、commit()等。sqlSession的实现类DefaultSqlSession
    使用要求:SqlSession对象不是线程安全的,需要在方法内部使用。在执行sql语句之前,使用openSession获取SqlSession,在执行完之后需要关闭,执行SqlSession.close。这样可以保证使用线程安全。

1、Mybatis的动态代理机制。

Student dao = sqlSession.geMapper(StudentDao.class);
//sqlSession.getMapper可以获取dao接口对应的实现类对象

2、Mybatis的传参
从java代码中把数据传入到mapper文件的sql语句中。
1)、parameterType:写在mapper文件中的一个属性。表示dao接口中方法的参数的数据类型,mybatis的反射机制也能够读取其中的parameter参数,所以可以不写
public Student selectoneById(Integer id)

3、参数

1、一个简单类型的参数:#{ }
2、多个简单类型的参数,使用@Param(“自定义名称”)
3、使用一个Java对象,对象的属性值作为mapper文件找到参数, #{ Java对象的属性名}
4、使用参数的位置,语法#{arg0}、#arg{1}

4、标签

<include refid="T_rh_order.columns"/>
<sql id="T_rh_order.columns">
    xxx 
 <sql/>

猜你喜欢

转载自blog.csdn.net/qq_40738693/article/details/114522154