前身是ibatis,处理和数据库交互的框架,也是一个开源的框架。
官方网站
https://mybatis.org/mybatis-3/index.html
核心技术
ORM技术,Object Relationship Mapping 对象关系映射模型,数据中的表就好比一个对象,表中字段就好比对象中的属性,形成映射关系(一一对应的关系)
优势
将sql语句和java代码进行分离;创建一个配置文件(sql映射文件)
分离思想(解耦思想)–》各司其职、效率高;出现问题可以针对性改正;
鞋厂–造鞋 1人
原料(塑料-颜料)----》采购专员
设计款式----》设计师
制作鞋子----》工匠
销售----》销售
款式太土 ,老板开会?
鞋子 裂缝
mvc思想
分层:
专门给用户展现页面 view层 视图层(a员工) 独立 弱相关
专门处理请求的 control层 控制层(b员工)
专门业务逻辑的 model层 模型层(c员工)
使用MyBatis创建项目
1-导入jar包
mybatis.jar
mysql-connector-java.jar
2-在resource中创建database.properties文件
driver=com.mysql.jdbc.Driver
url的注意点: 不要用空格;不要出现中文的?;
使用unicode编码格式
字符集设置utf-8
url=jdbc:mysql://127.0.0.1:3306/smbms?useUnicode=true&characterEncoding=utf-8
user=root
password=root
3-创建mybatis-config配置文件(容器)
<?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>
<!--该文件中可以对mybatis框架进行一些配置设置-->
<!--引入database.properties文件-->
<properties resource="database.properties"/>
<!--配置mybatis,实现log4j-->
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
<!--环境-->
<environments default="development">
<environment id="development">
<!--配置事务管理,使用jdbc事务管理-->
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${user}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
</configuration>
4-创建包和实体类
User实体类(只有属性和setter/getter方法的类)
package nanjiao.pojo;
import java.util.Date;
//用户实体类 方法:setter和getter方法
public class User {
private Integer id;//主键id
private String userCode;//用户编码
private String userName;//用户名称
private String userPassword;//用户密码
private String gender;//用户性别
private Date birthday;//出生日期
private String phone;//电话
private String address;//地址
private Integer userRole;//用户角色
private Integer createdBy;//创建人
private Date creationDate;//创建时间
private Integer modifyBy;//修改人
private Date modifyDate;//修改时间
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUserCode() {
return userCode;
}
public void setUserCode(String userCode) {
this.userCode = userCode;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Integer getUserRole() {
return userRole;
}
public void setUserRole(Integer userRole) {
this.userRole = userRole;
}
public Integer getCreatedBy() {
return createdBy;
}
public void setCreatedBy(Integer createdBy) {
this.createdBy = createdBy;
}
public Date getCreationDate() {
return creationDate;
}
public void setCreationDate(Date creationDate) {
this.creationDate = creationDate;
}
public Integer getModifyBy() {
return modifyBy;
}
public void setModifyBy(Integer modifyBy) {
this.modifyBy = modifyBy;
}
public Date getModifyDate() {
return modifyDate;
}
public void setModifyDate(Date modifyDate) {
this.modifyDate = modifyDate;
}
}
5-在数据库中创建库,创建表
使用实体类User,创建对应的库和表