目录
1 MyBatis框架
1.1 什么是MyBatis框架
mybatis:是一个持久层框架,原名是ibatis,2.13改名为MyBatis。MyBatis可以操 作数据库,对数据执行增删改查。可以看做高级的jdbc,解决了jdbc的缺点。
1.2 MyBatis可以做什么
1)注册驱动。
2)创建jdbc中的Connection,Statement,ResultSet
3)执行sql语句,得到ResultSet
4)处理ResultSet,把记录集中的数据转换为java对象,同时还能把java对象放到 List集合。
5)关闭资源
6)实现sql语句和java代码的解耦合。
2.使用MyBatis
2.1安装
要使用 MyBatis, 只需将 mybatis-x.x.x.jar 文件置于类路径(classpath)中即可。
如果使用 Maven 来构建项目,则需将下面的依赖代码置于 pom.xml 文件中:
<dependencies>
<!--mysqly依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
</dependency>
<!--mybatis依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
</dependencies>
2.1创建数据库+表
#创建数据表
CREATE TABLE `book_info` (
`book_id` int(11) NOT NULL AUTO_INCREMENT,
`book_name` varchar(20) NOT NULL,
`book_author` varchar(20) NOT NULL,
`book_price` int(11) NOT NULL,
`book_pub` varchar(20) NOT NULL,
PRIMARY KEY (`book_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1017 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
#插入数据
INSERT INTO `book_info` VALUES ('1001', '西游记', '吴承恩', '35', '清华大学出版社');
INSERT INTO `book_info` VALUES ('1002', '骆驼祥子', '老舍', '23', '新华出版社');
INSERT INTO `book_info` VALUES ('1003', '哈利比特', 'J.K.罗琳', '41', '人民出版社');
INSERT INTO `book_info` VALUES ('1004', '安徒生童话', '安徒生', '28', '人民文学出版社');
INSERT INTO `book_info` VALUES ('1005', '青铜葵花', '曹文轩', '32', '清华大学出版社');
INSERT INTO `book_info` VALUES ('1007', '红楼梦', '曹雪芹', '45', '人民教育出版社');
2.2配置mybatis的配置文件
<?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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver" />
<!-- 对应自己的数据库名-->
<property name="url" value="jdbc:mysql://localhost:3306/11-30?serverTimezone=Asia/Shanghai" />
<!-- 对应自己的数据库用户名-->
<property name="username" value="root" />
<!-- 对应自己的数据库密码-->
<property name="password" value="123@qwe" />
</dataSource>
</environment>
</environments>
</configuration>
2.3创建对应的实体类
package com.wq.entity;
/**
* @description:
* @author:wq
* @create: 2021-12-06 22:01
**/
public class Book {
private int book_id;
private String book_name;
private String book_author;
private int book_price;
private String book_pub;
public Book() {
}
public Book(int book_id, String book_name, String book_author, int book_price, String book_pub) {
this.book_id = book_id;
this.book_name = book_name;
this.book_author = book_author;
this.book_price = book_price;
this.book_pub = book_pub;
}
public int getBook_id() {
return book_id;
}
public void setBook_id(int book_id) {
this.book_id = book_id;
}
public String getBook_name() {
return book_name;
}
public void setBook_name(String book_name) {
this.book_name = book_name;
}
public String getBook_author() {
return book_author;
}
public void setBook_author(String book_author) {
this.book_author = book_author;
}
public int getBook_price() {
return book_price;
}
public void setBook_price(int book_price) {
this.book_price = book_price;
}
public String getBook_pub() {
return book_pub;
}
public void setBook_pub(String book_pub) {
this.book_pub = book_pub;
}
@Override
public String toString() {
return "Book{" +
"book_id=" + book_id +
", book_name='" + book_name + '\'' +
", book_author='" + book_author + '\'' +
", book_price=" + book_price +
", book_pub='" + book_pub + '\'' +
'}';
}
}
2.4创建操作表的SQL映射文件
<?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="Mapper.BookMapper">
<select> 查询SQL语句
占位符为:#{参数名}
<select id="SelectOne" resultType="com.cys.entity.Book">
select * from book_info where book_id=#{id}
</select>
<select id="SelectAll" resultType="com.cys.entity.Book">
select * from book_info
</select>
<insert id="AddBook">
insert into book_info values(null,#{book_name},#{book_author},#{book_price},#{book_pub})
</insert>
<delete id="DeleteBook">
delete from book_info where book_id=#{book_id}
</delete>
<update id="UpdateBook">
update book_info set book_name=#{book_name},book_author=#{book_author},book_price=#{book_price},book_pub=#{book_pub} where book_id=#{book_id}
</update>
</mapper>
2.5 配置文件里注册映射文件
<mappers>
<!-- resource:对应映射文件的路径-->
<mapper resource="Mapper/BookMapper.xml"/>
</mappers>
2.6创建测试类
引入依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
时间原因后续会慢慢完善!