Mybatis框架:
是一个持久层(ORM)框架,用来代替JDBC完成和数据库交互功能的框架
优点:
- 基于SQL语法,简单易学
- SQL语句封装在配置文件(.xml)中,便于统一管理与维护,降低了程序的耦合度
耦合度:在一个类中new另外一个类对象,就叫产生耦合度的过程
A B C
A:B b=new B(); b.fun() 耦合度
B: C c=new C(); c.fun() - 程序调试方便
与数据库交互的所有过程均在控制台体现
框架搭建: - 创建一个普通的java工程
- 引入jar
Mybatis-3.2.7 mybatis的核心jar
mysql驱动jar
Commons-logging log4j: 进行日志管理的jar
搭建:创建一个普通的java工程,引jar包
开发流程:
- 引入mybatis的核心配置文件,在配置文件中配置连接环境
SqlMapConfig.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>
<!-- xml文档有且只有一个根元素 -->
<!-- 1. 引入mybatis的核心配置文件,在配置文件中配置连接环境 -->
<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/myxm"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!-- 6. 将sql映射文件注入到mybatis核心配置文件中,方便程序的加载 -->
<!-- 将sql映射文件注入到mybatis核心配置文件中 -->
<mappers>
<mapper resource="mybatis/mapper/UserInfoMapper.xml" />
</mappers>
</configuration>
- 针对数据库中要维护的实体构建实体类
UserInfo.java
package mybatis.bean;
//2. 针对数据库中要维护的实体构建实体类
import java.sql.Timestamp;
public class UserInfo {
private int id;
private String username;
private String password;
private String email;
private Timestamp birthday;
public Timestamp getBirthday() {
return birthday;
}
public void setBirthday(Timestamp birthday) {
this.birthday = birthday;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "UserInfo [id=" + id + ", username=" + username + ", password=" + password + ", email=" + email
+ ", birthday=" + birthday + "]";
}
}
- 基于mapper接口的形式开发
- 创建mapper接口,定义方法
UserInfoMapper.java
package mybatis.mapper;
//3. 基于mapper接口的形式开发
//4. 创建mapper接口,定义方法
import mybatis.bean.UserInfo;
public interface UserInfoMapper {
public UserInfo getInfoById(int id);
}
- 创建接口对应的SQL映射文件,实现功能
UserInfoMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- 5. 创建接口对应的SQL映射文件,实现功能 -->
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mybatis.mapper.UserInfoMapper" >
<!--
id:是接口中的方法名
parameterType:是参数类型 全类名
resultType:返回值类型
-->
<select id="getInfoById" parameterType="java.lang.Integer" resultType="mybatis.bean.UserInfo" >
select * from userinfo where id=#{id}
</select>
</mapper>
- 将sql映射文件注入到mybatis核心配置文件中,方便程序的加载
在1里边
7.测试mybatis配置是否成功,进行数据库的查询
Test.java
package mybatis.test;
//7.测试
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import mybatis.bean.UserInfo;
import mybatis.mapper.UserInfoMapper;
public class Test {
public static void main(String[] args) throws IOException {
//加载mybatis的核心配置文件
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
//获取连接池对象
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
//打开连接
SqlSession session = factory.openSession();
UserInfoMapper mapper = session.getMapper(UserInfoMapper.class);
UserInfo u = mapper.getInfoById(2);
System.out.println(u);
}
}