一:ORM介绍
- 对象关系映射(Object Relational Mapping)
- 持久化数据和实体对象的映射模式,为解决面向对象与关系型数据库存在的互不匹配的现象的技术
- 映射规则:数据表对应类;表字段对应类属性;表数据对应对象
二:MyBatis介绍
- MyBatis基于Java的持久层框架,封装了JDBC
- MyBatis通过xml和注解的方式将要执行的各种Statement配置起来
- MyBatis执行sql并将结果映射为java对象并放回,采用ORM思想解决了实体和数据库映射的问题
三:开发步骤
- 添加MyBatis的jar包
- 创建一个表
- 编写表的实体类
- 创建映射文件: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="StudentMapper" >
<select id="selectAll" resultType="com.hanjie.bean.Student">
select * from student;
</select>
</mapper>
- 创建核心配置文件:MyBatisConfig.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>
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/db14"/>
<property name="username" value="root"/>
<property name="password" value="自己的密码"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="StudentMapper.xml"/>
</mappers>
</configuration>
- 编写测试类
public static void main(String[] args) throws Exception {
//1.加载配置文件
InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml");
//2.获取SqlSession工厂对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
//3.通过SqlSession工厂对象获取SqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//4.执行配置文件中sql语句,并接受结果
List<Student> students = sqlSession.selectList("StudentMapper.selectAll");
//5.处理结果集
for (Student student:students) {
System.out.println(student);
}
//6.释放资源
sqlSession.close();
is.close();
}