Mybatis执行的SQL语句都存放在配置文件中
eg: java代码
List<Object[]> list = sqlSession.select("Message.queryMessageList");
配置文件中:(id必须是唯一的)
<mapper namespace="Message">
<select id="queryMessageList" resultMap="结果标签Id">
select * from message where
</select>
在核心的配置文件中配置sqlMessage.xml, 这样就可以把sql语句的配置文件生效了
<mappers> //这个标签可以配置多个
<mapper resource="com/imooc/config/sqlMessage.xml"/>
</mappers>
</mapper>
SQL基本配置与执行
SQL基本配置:Mybatis通过XML标签<insert>、<delete>、<update>、<select>执行SQL语句,Mapper标签有一个namespace属性(Mybatis规定所有的XML文件的id都不可以相同,所以可以通过给Mapper标签的namespace起名解决该问题),SqlSession提供了增、删、改、查的方法,通过在方法中传入XML文件标签的namespace.id可以查找到XML文件中相应的标签并执行相应sql语句。
注意:Mapper标签的namespace必须有,否则加载配置文件会出错。
<resultMap>标签:配置数据库字段和实体类属性之间的映射信息,type属性——数据库里的表对应java中哪一个类,所以它的值为类的全名称,这样字段值就会映射到该类属性上。
id属性——该映射关系的唯一标识(<resultMap>标签的id和<select>等标签id不冲突)。
<resultMap>子标签——通过该标签ID就可以映射到某个实体类
<id column="id" jdbcType="INTEGER" property="id"/>:如果数据库这个字段是主键用该标签。
<result column="username" jdbcType="VARCHAR" property="username":如果数据库这个字段是普通字段用该标签。
jdbcType:它的值应该是Types类中的常量名。在java.sql.Types包中,该类中存放着数据库中数据类型与Types类中的常量名有着对应关系。
Sql语句引用映射关系:sql标签中添加属性resultMap="ResultMap的id",这样查询出来的列值就会映射到类的属性中,如果查出来的字段值,在映射关系中没有映射,那么就不放,如果配置了映射关系的属性,在查询时却没有返回该字段,那么实体类的该属性值则为默认值。

Mybatis核心配置文件中导入sql配置(Mapper.xml):sql的XML文件需要在Mybatis核心配置文件中配置才会生效,<mappers>可以有多个sql配置文件<mapper resource="Mapper文件的路径/></mappers>,每个mapper对应一个sqlXML文件。

执行SQL语句
创建类的映射文件,并将其添加到核心配置文件中
sqlSession.selectList("Message.queryMessageList");映射文件中的jdbcType是java.sql.Types类下的属性。
基本配置与执行
数据库的具体配置
Mybatis 测试加载执行
这是配置文件
核心配置文件
mybatis数据库中的 表 跟 java对象 关联配置
@Mybatis学习---SQL基本配置与执行
一、在核心配置文件中指定要执行的sql配置文件的路径
使用<mappers> 可以添加多个sql映射文件,指定资源时,使用resource属性指定资源路径即可,
这样程序会自动读取sql配置文件,并创建sqlSessionFactory。
二、配置messege.xml查询数据库(sql配置文件)
执行sqlSession.selectList()方法时,通过配置文件中的select标签找到sql语句,
执行数据库的查询,返回的结果通过select标签中resultMap这样的一个属性,
去查找resultMap标签,然后按照resultMap中的标签中的配置完成java属性与数据库字段的对应。
三、mybatis的sql语句通过xml文件进行配置
sql的配置文件中的<mapper>标签的namespace要唯一,调用sql语句。
eg:sqlSession.selectList("Messages.list");//namespace的名字点上语句的ID
四、配置文件
<resultMap type="" id="Message">//映射的是封装返回结果的bean,type是bean的全类名,id要唯一(resultMap中)
<id column="ID" jdbcType="VARCHAR" property="id"></id> //主键使用,column对应的是数据的字段名,jdbcType对应的是数据字段的类型,property对应的是实体的属性名
<result ></result> //其他字段使用
</resultMap>
查询语句:
<select id="list" resultMap="Message">sql语句</select>
写好的sql配置文件,可在mybatis的连接配置文件中引入:
<mappers>
<mapper resource="sql配置文件路径" ></mapper>
</mappers>
<mappers>中子标签<mapper>的resource属性也是从src根目录开始算起,“.”改为“/”;如果有多个<mapper>则需添加多个。