一,mybatis框架
它是一款半自动的ORM持久层框架,具有较高的SQL灵活性,支持高级映射(一对一,一对多),动态SQL,延迟加载和缓存等特性,但它的数据库无关性较低。
什么是ORM?
Object Relation Mapping,对象关系映射。对象指的是Java对象,关系指的是数据库中的关系模型,对象关系映射,指的就是在Java对象和数据库的关系模型之间建立一种对应关系,比如用一个Java的Student类,去对应数据库中的一张student表,类中的属性和表中的列一一对应。Student类就对应student表,一个Student对象就对应student表中的一行数据
为什么mybatis是半自动的ORM框架?
用mybatis进行开发,需要手动编写SQL语句。而全自动的ORM框架,如hibernate,则不需要编写SQL语句。用hibernate开发,只需要定义好ORM映射关系,就可以直接进行CRUD操作了。由于mybatis需要手写SQL语句,所以它有较高的灵活性,可以根据需要,自由地对SQL进行定制,也因为要手写SQL,当要切换数据库时,SQL语句可能就要重写,因为不同的数据库有不同的方言(Dialect),所以mybatis的数据库无关性低。虽然mybatis需要手写SQL,但相比JDBC,它提供了输入映射和输出映射,可以很方便地进行SQL参数设置,以及结果集封装。并且还提供了关联查询和动态SQL等功能,极大地提升了开发的效率。并且它的学习成本也比hibernate低很多
二,mybatis入门案例(步骤)
1.创建测试的数据库
#判断存在即删除数据库
drop database if exists mydb;
#创建数据库
create database mydb;
#使用数据库
use mydb;
#创建表
create table t_user(
uid int primary key auto_increment,
username varchar(20),
password varchar(20),
phone varchar(11),
address varchar(50)
);
insert into t_user(username,password,phone,address) values('张三','666','18965423548','南阳');
insert into t_user(username,password,phone,address) values('李四','333','18754263548','许昌');
insert into t_user(username,password,phone,address) values('小美','123','18565234759','信阳');
select * from t_user where username=? and password=?
select * from t_user;
2..创建一个Java项目并导入mybatis框架的jar包
在项目中创建一个lib文件夹放入mybatis框架的jar包,并导入项目中。
3.创建跟表对应的实体类。
在src中创建com.gao.bean包,然后创建User实体类。
public class User {
private Integer uid;
private String username;
private String password;
private String phone;
private String address;
public Integer getUid() {
return uid;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
public String getPhone() {
return phone;
}
public String getAddress() {
return address;
}
public void setUid(Integer uid) {
this.uid = uid;
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
public void setPhone(String phone) {
this.phone = phone;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "User{" +
"uid=" + uid +
", username='" + username + '\'' +
", password='" + password + '\'' +
", phone='" + phone + '\'' +
", address='" + address + '\'' +
'}';
}
}
4.创建针对表操作的接口类。
在src中创建com.gao.dao包,然后创建UserDao的接口,然后在接口中定义针对数据库的增删 改查等操作。
public interface UserDao {
List selectAll();
User selectByUid(int uid);
int add(User user);
int delete(int uid);
}
5.在接口的包中创建对应的mapper映射配置文件。
在dao接口的同目录下创建跟接口名字一样的配置文件。
insert into t_user(username,password,phone,address) values(#{username},#{password},#{phone},#{address});
delete from t_user where uid=#{uid}
6.在src目录中创建mybatis框架的核心配置文件。
在src中创建一个文件,命名为SqlMapConfig.xml,在该配置文件中配置连接数据库的参数。
7.在测试类中进行测试
使用mybatis框架需要按照框架的步骤进行。