一、什么是框架?
就是别人封装好的一些代码,你只需要在代码的基础上添加你需要的内容,可以提高开发效率。
二、什么是mybatis框架
mybatis就是orm持久化框架,o:Object对象 r:relative关系 m:mapping映射。
解决把数据库中的记录映射到java实体类对象上。就是解决jdbc的。
三、为什么使用mybatis框架
因为jdbc存在(1)查询时需要一一把数据库中的列的值查出并复制给对象的属性
(2)增加修改时需要为每一个占位符赋值
mybatis框架可以解决上面这些问题
四、如何使用mybatis框架
(1)创建一张表
create database mybatis;
use mybatis;
CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME
VARCHAR(20), age INT);
INSERT INTO users(NAME, age) VALUES('Tom', 12);
INSERT INTO users(NAME, age) VALUES('Jack', 11);
(2)创建maven的java工程
(3)加入相关的依赖jar包
<!--mysql依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
<!--lombok依赖-->
<dependency>
<groupId>repMaven.org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
</dependency>
<!--mybatis依赖-->
<dependency>
<groupId>repMaven.org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
(4)创建实体类
@Data//生成get/set方法,toString
@NoArgsConstructor//无参构造方法
@AllArgsConstructor//所有有参构造
public class User {
private Integer id;
private String name;
private String pwd;
private String realname;
private Integer sex;
}
(5)创建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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!--数据源name对应的值是固定的。 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/ceshi?serverTimezone=Asia/Shanghai" />
<property name="username" value="root" />
<property name="password" value="123456789" />
</dataSource>
</environment>
</environments>
<!--引入映射-->
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>
(6)配置映射文件---实体类和表的映射
<?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">
<!--namespace: 命名空间 现在可以随便起名
以后必须和dao得类名对应
-->
<mapper namespace="com.zd.dao.UserDao">
<!--sql语句
select:表示查询标签
id: 唯一标识
resultType: 表示查询的结果以java中的哪种数据类型来封装
#{id}: 占位符
-->
<select id="findAll" resultType="com.zd.entity.User">
select * from user
</select>
<select id="findById" resultType="com.zd.entity.User">
select * from user where id=#{id}
</select>
<!--增加
parameterType:参数的类型
注意: #{name}要和实体类属性对应
添加使用需要把生产的id值赋值给属性。
1. useGeneratedKeys=true 使用生成得key
2. keyProperty:把生产的key赋值给实体类中的哪个属性名
-->
<insert id="insertUser" useGeneratedKeys="true" keyProperty="id">
insert into user(name,pwd,realname,sex) values (#{name},#{pwd},#{realname},#{sex})
</insert>
<update id="updateUser" parameterType="com.zd.entity.User">
update user set name=#{name},pwd=#{pwd},realname=#{realname},sex=#{sex} where id=#{id}
</update>
<delete id="deleteById">
delete from user where id=#{id}
</delete>
</mapper>
(7)测试
总结:
1.搭建mybatis的步骤
①引入依赖jar
②创建对应的实体类
③配置mybatis的配置文件
④创建mybatisd的映射文件(写Sql语句)
⑤把映射文件放入到配置文件中
2.开发环境使用映射文件结合DAO接口
①映射文件的namespace必须和接口名对应
②映射文件中的id必须和接口的方法对应