ORM介绍
-
ORM(Object Relational Mapping): 对象关系映射
-
指的是持久化数据和实体对象的映射模式,为了解决面向对象与关系型数据库存在的互不匹配的现象的技术。
具体映射关系如下:
数据库的表(table) --> 类(class)
记录(record,行数据) --> 对象(object)
字段(field) --> 对象的属性(attribute)
Mybatis
概念:
1、mybatis是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,
而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。
2、mybatis通过xml或注解的方式将要执行的各种 statement配置起来,
并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句。
2、最后mybatis框架执行sql并将结果映射为java对象并返回。采用ORM思想解决了实体和数据库映射的问题,
对jdbc 进行了封装,屏蔽了jdbc api 底层访问细节
MyBatis开发步骤:
①添加MyBatis的jar包(导maven坐标)
<!--mybatis的包-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<!--连接驱动包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!--实体类的包-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.18</version>
<scope>provided</scope>
</dependency>
②创建User数据表
③编写User实体类 (使用了lombok)
@Data//相当于get、set、toString、hasCode等方法
@NoArgsConstructor//相当于无参构造方法
@AllArgsConstructor//相当于全参构造
public class User {
private Integer id;
private String name;
private String username;
private String password;
private Integer sex;
private Integer age;
private Date birthday;
private Timestamp createTime;
}
④编写映射文件UserMapper.xml
<mapper namespace="user">
<!--属性parameterType,传递的参数类型,在传递一个参数的时候可以省略
属性resultType 是返回值类型,不能省略,执行sql语句结果封装到该类型对象属性中
#{
id}参数的占位名称,id可以是任意名称-->
<select id="queryById" parameterType="java.lang.Integer" resultType="com.entor.entity.User">
select * from user where id=#{
id}
<<