1.MyBatis开源免费框架,原名iBatis,2010年在google,2013年迁移至github
2.作用:数据访问层框架,底层是对JDBC的封装,优点之一:不需要写实现类,只需要写需要执行的sql命令。
环境搭建
1.导入jar包asm.jar,cglib.jar,commons-logging.jar,javassist.jar,log4j.jar,log4j-api.jar,mabatis.jar,slf4j-api.jar,sl4j-log4j.jar,mysql-connector.jar
2.在src下新建全局配置文件(编写jdbc四个变量)
没有地址名称要求(最好在src下,)
在全局配置文件中引入schema约束
<configuration>
<environments default="default">
<environment id="default">
<!--使用原生JDBC事务-->
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<propert name="url" value="jdbc:mysql://localhost:3306/t_user"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/bjsxt/mapper/FlowerMapper.xml"/>
</mappers>
</configuration>
3.新建以mapper结尾的包,在包下新建:实体类名Mapper.xml,引入约束
文件作用:编写需要执行的sql命令
把xml文件理解成实现类
<!--namespace:理解成实现类的全路径(包.类 )-->
<mapper namespace="a.b(包.类)">
<!--id :方法名 parameterType:定义参数类型 resultType:定义方法返回值,如果方法返回值是list,在resultType中写List<>中的泛型类型,因为mybatis对jdbc封装,一行一行读取数据-->
<select id="selAll" resultType="com.bjsxt.POJO.Flower" >
select * from flower
</select>
</mapper>
4.测试结果(只有单独使用MyBatis时才写,最后ssm整合时不需要写)
Test类:main(){
//使用工厂设计模式
InputStream id = Resource.getResourceAsStream("mybatis.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().builder(is);
//生产SqlSession
SqlSession session = factory.opsenSession();
List<Flower> list = session.selectList("a.b.selAll");
//遍历
注意:最后查询语句中select username,id form flower 最后和实体类中属性名一样,不一样可以起别名,select username name,id id1 from ,有别名先找别名,找不到返回null