文章目录
Mybatis框架
1.Mybatis框架
Mybatis框架是一款ORM映射框架。完成java对象和数据库表的映射。 ORM 就是通过实例对象的语法,完成关系型数据库的操作的技术,是"对象-关系映射"(Object/Relational Mapping) 的缩写
jdbc :很繁琐( 不适用于商业开发)
ORM框架 : Hibernate / mybatis(多)
Hibernate—>JPA
Mybatis —> 半自动化框架–>Mybatis PLUS
java(面向对象) — mybatis(java/xml) – 数据库(表):SQL
2.Mybatis开发流程
2.1 数据库的创建
2.1.1 创建库mybatis_db
2.1.2 创建表book_tab
2.2 创建表的实体映射类
/**
* 映射数据库的表book_tab
*
*
*/
@Alias("Bookx") // 别名
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Book {
private Integer id;
private String isbn;
private String title;
private String author;
private String cover;
private Double price;
private Date date;
2.3 创建接口-对表的增删改查
/**
* 表的操作接口
* @author 11655
*
*/
public interface IBookMapper {
void save(Book book);
void delete(int id);
void update(Book book);
List<Book> findAll();
}
2.4 创建数据源
/**
* 重定义数据源对象
* @author 11655
*
*/
public class MybatisDataSource extends UnpooledDataSourceFactory {
public MybatisDataSource() {
this.dataSource = new DruidDataSource();
}
}
2.5 数据源配置文件
druid.driver = com.mysql.cj.jdbc.Driver
druid.url = jdbc:mysql://localhost:3306/mybatis_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
druid.username=root
druid.password=123456
2.6 mybatis配置文件(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>
<!-- 读取数据源配置文件 -->
<properties resource="resources/druid/druid.properties" />
<!-- 别名 -->
<typeAliases>
<package name="com.dyit.entity" />
</typeAliases>
<environments default="development"><!-- 数据库的配置 -->
<environment id="development">
<transactionManager type="JDBC" /><!-- 配置数据库事务管理 -->
<dataSource type="com.dyit.util.MybatisDataSource">
<property name="driverClassName" value="${druid.driver}" />
<property name="url" value="${druid.url}" />
<property name="username" value="${druid.username}" />
<property name="password" value="${druid.password}" />
</dataSource>
</environment>
</environments>
<!-- 表和类之间的映射,mapper文件创建之后再配置 -->
<mappers>
<mapper resource="resources/mapper/Book.mapper.xml" />
</mappers>
</configuration>
2.7 表和类的映射文件
类名(Book).mapper.xml
1.创建Book.mapper.xml文件
2.在上一步的mybatis配置文件,即mybatis-config.xml中的mappers位置,补全配置。
2.7.1创建Book.mapper.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC
"-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zuo.mapper.IBookMapper"><!-- 接口的位置 -->
<insert id="save"><!-- 对应IBookMapper接口中的save方法 , #{}代表取出对象里该属性的值-->
INSERT INTO book_tab(book_isbn,book_title,book_author,book_date,book_price,book_cover)
VALUES(#{isbn},#{title},#{author},#{date},#{price},#{cover})
</insert>
</mapper>
2.7.2补全mybatis-config.xml文件
<!-- 表和类之间的映射,mapper文件创建之后再配置 -->
<mappers>
<mapper resource="resources/mapper/Book.mapper.xml" />
</mappers>
2.8 测试
@Test
public void test() throws Exception {
// 1.读取mybatis文件,变成字符流对象
Reader in = Resources.getResourceAsReader("resources/config/mybatis-config.xml");
// 2.创建SqlSessionFactory工厂.管理多个数据库操作会话
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
// 3.开启一次sql会话
SqlSession sqlSession = sqlSessionFactory.openSession();
// 4.创建数据库操作接口对象
IBookMapper mapper = sqlSession.getMapper(IBookMapper.class);
// 5.接口操作.调用接口的方法
Book book = new Book(null, "zuo001", "快乐", "张三", "java.jpg", 66.66, new Date());
mapper.save(book);
// 6.事务提交
sqlSession.commit();
sqlSession.close();
}