一、前言
此次复习内容为期末考试所用
二、创意名
圣诞节的复习
三、正文
MyBatis框架
MyBatis是一个优秀的持久层框架,它可以在实体类和SQL语句之间建立映射关系,是一种半自动化的ORM(对象关系映射)
如何使用
1.在MySQL中创建一个名称为mybatis的数据库,具体SQL语句如下:
create database mybatis;
2.创建数据库连接信息的配置文件
在项目的src/main/resources目录下创建数据连接的配置文件,将其命名为dp.properties,在该文件中配置数据库连接的参数
mysql.dirver=com.mysql.cj.jdbc.Driver
mysql.url = jdbc::mysql://localhost:3306/mybatis?
mysql.username = root
mysql.password = root
3.创建MyBatis的核心配置文件
mybatis-config.xml
<configuration>
<!--环境配置-->
<!--加载类路径下的属性文件-->
<properties resource="db.properties"/>
<environments default="development"> //development是开发模式
<environment id = "development">
<transactionManager type="JDBC"/> //事物管理类型
<dataSource type="POOLED">
<property name="driver" value="${mysql.driver}"/>
<property name="url" value="${mysql.url}"/>
<property name="username" value="${mysql.username}"/>
<property name="password" value="${mysql.password}"/>
</dataSource>
</environment>
</environmets>
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>
4.1数据准备
use mybatis;
create table users{
uid int primary key auto_increment,
uname vachar(20) not null,
uage not null
};
insert into users(uid, uname, uage) value(null,'张三',20),(null,'李四',18);
4.2创建POJO实体类
在src/main/java目录下传教 com.itheima.pojo包,在该包下创建User类,用于封装User对象的属性
package com.itheima.pojo;
public class User{
private int uid;
private string uname;
private int uage;
public void getUid(){
return uid;
}
public void setUid(int uid){
this.uid = uid;
}
public void getUname(){
return uname;
}
public void setUname(string uname){
this.name = name;
}
public void getUage(){
return uage;
}
public void setUage(int uage){
this.uage = uage;
}
}
4.3 创建映射文件UserMapper.xml
用于配置SQL语句和java对象之间的映射,使SQL语句查询出来的数据能够被封装成Java对象
一个项目可以有多个映射文件,每个实体类都可以有对应的映射文件
映射文件通常用POJO实体类名+Mapper命名,例如 UserMapper.xml
<mapper namespace="com.itheima.pojo.User">
<select id = "findById" parameterType="int" resultType="com.itheima.pojo.User">
select* from users where uid = #{id}
</select>
</mapper>
<mapper>元素可包含用于增删改查操作的<insert> <delete> <upadate> <select>等元素
<mapper>元素中的namespace属性用于标识映射文件
<select>元素中的id用于唯一标识该SQL语句,java通过对应的id属性值找到该SQL语句
4.4 UserMapper.xml的文件路径,需要在mybatis-config.xml中进行注明,用于将UserMapper.xml映射文件加载到程序中
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
4.5 编写测试类
public class UserTest{
@Test
public void userFindByIdTest(){
String resources = "mybatis-config.xml";
//创建流
Reader reader = null;
try{
//读取mybatis-config.xml文件内容到reader对象中
reader = Resources.getResourceAsReader(resources);
}catch(IOExecption e){
e.printStackTrace();
}
//初始化MyBatis数据库,创建SqlSessionFactory类的实例
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);
//创建session实例
SqlSession session = sqlMapper.openSession()
//传入参数查询,返回结果
User user = session.selectOne("findById", 1);
//输出结果
System.out.println(user.getUname());
//关闭session
session.close();
}
}