目录
目录结构 如果没有的话 先将idea关闭 然后进去项目目录中 ,将.idea文件删除 而后重新打开idea即可
一:搭建Mybatis
1.开发环境:
- IDE: 2021.1.3
- 构建工具:maven 3.6.3
- MySQL版本:8.0.26
- MyBatis版本:3.5.10
2.创建Maven工程
-
创建一个新空工程(也可以直接创建一个Maven工程)
-
选择与自己电脑一致的版本
-
目录结构 如果没有的话 先将idea关闭 然后进去项目目录中 ,将.idea文件删除 而后重新打开idea即可
-
设置当前项目Maven
-
配置自己的maven信息
-
new一个Maven项目
- 打包方式为Jar
- 引入依赖
<packaging>jar</packaging>
<dependencies>
<!-- Mybatis核心 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.10</version>
</dependency>
<!-- junit测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- MySQL驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
</dependencies>
3.创建MyBatis核心配置文件
- 在resources目录下创建 mybatis-config.xml 配置文件
- 在其中配置mybatis的相关信息
-
创建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/MyBatis"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!--引入映射文件-->
<mappers>
<mapper resource="mappers/UserMapper.xml"/>
</mappers>
</configuration>
-
创建Mapper接口
Batis中的mapper接口相当于以前的dao。但是区别在于,mapper仅仅是接口,我们不需要提供实现类
1.创建对应实体类
package com.Li.mybatis.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Integer id;
private String username;
private String password;
private Integer age;
private String sex;
private String email;
}
2.创建Mapper接口
package com.Li.mybatis.mapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper {
}
-
创建Mybatis映射文件
在resources目录下建议创建一个专门管理mapper映射文件的
保持两个一致:
- mapper接口的全类名和映射文件的命名空间(namespace)保持一致
- mapper接口中方法的方法名和映射文件中编写SQL的标签的id属性保持一致
4.测试
public class test {
@Test
public void testMybatis() throws IOException {
//加载核心配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");
//获取sqlSessionFactotyBuilder
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
//获取sqlSession工厂对象sqlSessionfactory
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(resourceAsStream);
//获取sqlsession
SqlSession sqlSession = sqlSessionFactory.openSession();
//获取mapper接口对象
UserMapper mapper = (UserMapper) sqlSession.getMapper(UserMapper.class);
//测试
int result = mapper.inset_user();
System.out.println(result);
}
}
二:Mybatis 的增删改查操作
Mapper接口中的方法名与Mapper映射文件的id相对应
在查询语句Select中必须要有 resultType 或 resultMap标签
- resultType: 结果类型,设置默认映射关系
- resultMap:结果映射,自定义映射关系
-
创建对应的UserMapper接口
@Mapper
public interface UserMapper {
/**
* 添加用户信息
*/
int inset_user();
/**
* 修改用户信息
*/
int update_user();
/**
* 删除用户信息
*/
int delete_user();
/**
* 根据id查询用户信息
*/
User getUserById();
/**
* 查询所有用户信息
*/
List<User> getAllUser();
}
-
在Mapper映射文件中添加对应的语句
<?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.Li.mybatis.mapper.UserMapper">
<insert id="inset_user">
insert into t_user values(null,"admin","123456",23,"男","123456@qq.com")
</insert>
<update id="update_user">
update t_user set username = '张三' where id =3
</update>
<delete id="delete_user">
delete from t_user where id =3;
</delete>
<!--
resultType:结果类型
resultMap:结果映射
查询功能的标签必须设置resultType或者resultMap
resultType:设置默认映射关系
resultMap:设置自定义映射关系
-->
<select id="getUserById" resultType="com.Li.mybatis.pojo.User" >
select * from t_user where id = 2;
</select>
<select id="getAllUser" resultType="com.Li.mybatis.pojo.User">
select * from t_user
</select>
</mapper>