MyBatis是一个支持普通SQL查询、存储过程以及高级映射的持久层框架,也被称作ORM(Object/Relation Mapping对象关系映射框架);mybatis就是采用pojo作为持久化类来完成对数据库操作的
- MyBatis是一个半自动映射的框架,需要手动匹配提供POJO、SQL和映射关系;但是MyBatis可以配置动态SQL并优化SQL,可以通过配置决定SQL的映射规则,还支持存储过程等。(适用于复杂的和需要优化性能的项目)
- Hibernate,是一个全表映射的框架,会自动生成SQL并调用JDBC接口执行编写,开发效率会高于MyBatis;但是它不支持存储过程,在多表关联时,对SQL查询的支持较差;更新数据时,需要发送所有字段;不能通过优化SQL来优化性能等。
- 在写实现类和配置文件前先创建一个测试数据库customer
USE mybatis;
CREATE TABLE t_customer(
id INT(32) PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50),
jobs VARCHAR(50),
phone VARCHAR(16)
);
INSERT INTO t_customer (id,username,jobs,phone) VALUES (1,'Jack','Student','123456789');
INSERT INTO t_customer (id,username,jobs,phone) VALUES (2,'Rose','Teacher','234567890');
INSERT INTO t_customer (id,username,jobs,phone) VALUES (3,'Tom','Doctor','890423271');
SELECT * FROM t_customer;
- 导入14个工具包
- 在class path路径下创建日志文件log4j.properties(日志文件包含了全局日志配置、mybatis的日志配置和控制台输出,其中mybatis的日志配置用于将包下所有类的日志记录级别设置为DEBUG)
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
- 创建POJO类customer,作为mybatis进行sql映射使用,po类通常与数据库表对应
package example07;
//customer持久化类
public class customer {
/*
* 持久化类customer的属性字段与数据库中的表字段相对应,
* 他就是一个POJO(普通Java对象)
* mybatis就是采用pojo作为持久化类来完成对数据库操作的
*/
private int id;
private String username;
private String jobs;
private String phone;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(St