MyBatis创建步骤:
1.创建mybatis-config.xml;
2.利用SqlSessionFactoryBuilder 这个类,其加载mybatis-config.xml配置文件,并生成SqlSessionFactory这个工厂类;
3.利用工厂类去得到SqlSession,SqlSession帮我们去执行mapper中的sql语句
4.创建mapper映射文件,
《1》创建mapper文件
《2》在mybatis-config.xml配置文件里面引入你的mapper文件
第一种:命名空间查询,我只写mapper.xml文件
第二种:利用mapper接口方式,要写mapper接口,并且把接口跟mapper.xml进行绑定,通过命名空间
第三种:利用mapper接口注解方式,我们sql 写在注解里面 不需要mapper.xml配置文件
5.调用mapper里面的方法去做查询或者而其他操作。
4.5 步骤有三种实现方式。。。。。
mybatis-config.xml配置文件:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<typeAlias alias="student" type="com.spring.entry.Student" />
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1/test" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
<!--所有的映射注册-->
<mappers>
<mapper resource="com/spring/mybatis/StudentMapper.xml" />
<mapper class="com.spring.mybatis.TeacherMapper"/>
</mappers>
</configuration>
2.3步代码实现如下:
public static void main(String[] args) throws IOException {
String resource="/mybatis-config.xml";
//获得资源路径
InputStream urls=Student.class.getResource("/mybatis-config.xml").openStream();
//InputStream inputStream= Resources.getResourceAsStream(resource);
//获得sqlSessionFactory
SqlSessionFactory sqlSessionFactory= new SqlSessionFactoryBuilder().build(urls);
//获得session 打开连接
SqlSession session=sqlSessionFactory.openSession();
//1.命名空间方式实现
// List<Student> listStudent = session.selectList("com.spring.entry.Student.seletestudent");
//System.out.println(listStudent.get(0).getStuName());
//2.mapper接口方式 接口跟mapper.xml进行绑定
StudentMapper mapper= session.getMapper(StudentMapper.class);
List<Student> listStudent=mapper.seletestudentmapper();
System.out.println(listStudent.get(1).getStuSex());
//3.注解方式
TeacherMapper mapper1= session.getMapper(TeacherMapper.class);
List<Teacher> listTeacher=mapper1.queryTeacher();
System.out.println(listTeacher.get(1).getTeacherAge());
}
实现4.5 步骤有三种实现方式。。。。。
第一种:命名空间方式
<1> 获取资源,构造工厂,获得session mapper:
<2>StudentMapper.xml(映射文件):
<?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.spring.entry.Student">
<select id="seletestudent" resultType="com.spring.entry.Student">
SELECT *FROM student
</select>
</mapper>
<3>在mabatis-config.xml中注册mappers:
第二种:利用mapper接口方式
<1>获取资源,构造工厂,获得session mapper:
<2>StudentMapper实体(接口):
<3>StudentMapper.xml(映射文件):
<4>在mabatis-config.xml中注册mapper:
第三种:利用mapper接口注解方式
<1>获取资源,构造工厂,获得session mapper:
<2>Teacher实体(接口):(对应发放上加注解)
<3>在mabatis-config.xml中注册mapper:
ps :这三种方式前两种都是xml的形式 命名空间通过将mapper 的id属性加在后面访问到sql 语句,而第二种在mapper.xml中指定命名空间的唯一 (实体类) mapper的id 属性与mapper实体的方法同名,将实体类加载进mapper 通过mapper访问到方法 实体类的映射;第三种在方法上面加要执行的sql 语句即可,但是对于复杂的sql 语句就会显得很乱,不适合了。