环境搭建
需要的文件
依赖文件 日志文件
mybatis核心配置文件 mybatis-config.xml (放在resources下)
直接复制
<?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.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1/mybatis?useSSL=false"/> // 地址,数据库
<property name="username" value="root"/> // 数据库用户名
<property name="password" value="root"/> // 数据库密码
</dataSource>
</environment>
</environments>
<mappers>
<!--加载映射配置文件-->
<mapper resource="UserMapper.xml"/> // 配置文件的路径
</mappers>
</configuration>
修改其中的数据库连接信息即可。
mappers 加载映射配置文件 (存放的就是下面的配置文件)
映射配置文件 UserMapper.xml 或者 orderMapper.xml
看你操作的是哪张表。 操作的数据表+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">
<!--
namespace:名称空间
配合要执行的sql语句标签中的id使用
-->
<mapper namespace="test">
<select id="selectAll" resultType="com.itheima.pojo.User"> // id 唯一标识。 resultType:操作表的全路径
SELECT * FROM tb_user // sql语句
</select>
</mapper>
修改namespace (名称空间) 当前映射文件的唯一标识。
下面会有select标签 update delete insert 等等。
便签里的属性值 id 唯一标识。
resultType 返回结果的类型。 全类名
爆红很正常。不影响
pojo类
以前的javaBean
测试类
- 加载核心配置文件
- 获取sqlSessionFactory 工厂对象
- 获取SqlSession对象
- 执行sql语句 (selectList、selectOne)
- 释放资源
public class MybatisTest {
public static void main(String[] args) throws IOException {
//1.加载核心配置文件,获取SqlSessionFactory工厂对象
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
//2.获取SqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
// 前两行基本不变
List<User> users = sqlSession.selectList("test.selectAll"); // mapper配置文件中的名称空间.id
// 释放资源
sqlSession.close();
// 遍历
for (User user : users) {
System.out.println(user);
}
}
}
Mapper 代理
java下新建mapper包(类似于以前的dao)
接口名要与 映射配置文件名称一样。
方法名 要与sql语句的id一样。返回值一样。
namespace 要写接口的全类名
第一步 :
可以将Mapper接口和SQL映射文件放一块,但是实际开发不规范。 可以在resources下新建
com/xx/mapper(注意要与Mapper接口的路径一致) 这样编译完成以后,最终他们还是在同一个目录下。
一定要要用斜杠作为分隔符!!!! 不能用点
第二步:
配置文件下的mapper后面的namespace(名称空间)就成了接口的全限定名
第三步:
接口中定义的方法就是配置文件中sql语句的id,保持参数返回值类型一致。返回值就是(resultType的值)完成以后还有一个地方需要注意:
核心配置文件中sql映射文件的路径。变成了com.xx.mapper.xxx.xml最后即可编码
获取接口代理对象 getMapper(XXXMappeer.class); 内部自己实现 然后就可以调用方法了
最后的一个小细节
如果mapper接口和sql映射配置文件在一起,核心配置文件里可以使用包扫描的方法简化。
<mappers>
<!--加载映射配置文件--> 两种选其一
<mapper resource="com/ljh/mapper/CourseMapper.xml"/> 只能加载一个
<package name="com.ljh.mapper"/> 简化版(直接把mapper文件夹下的所有的都扫描,并加载进来)
</mappers>
创建maven项目并配置myBatis流程
- 创建Maven项目
- 导入依赖
- 编写核心配置文件
- 编写映射配置文件
- 编写映射接口
- 编写实体类
- 编写测试类
第一步:
file ---> project Structure ---> 新建new models 项目 ---> name(项目名),build system(maven),
jdk(看需求) , groupId(域名倒序 com.xxx), artifactId( 项目名)
然后点击创建。
第二步:
新建完项目以后,pom.xml 文件会自动打开。 即可添加各种依赖。
https://blog.csdn.net/qq_43635902/article/details/125517778?spm=1001.2014.3001.5501
复制即可。(仅仅是入门需要的,根据自己需求添加)
完成。
第三步:编写核心配置文件 mybatis-config.xml
存放在resources下。
<?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>
<typeAliases>
<!--给某个包下的所有类起别名-->
<package name="com.itheima.pojo"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!--数据库连接信息-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1/mybatis?useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--代理开发,包扫描-->
<package name="com.itheima.mapper"/>
</mappers>
</configuration>
第四步:编写映射配置文件
根据自己的实体类来创建。如果是user表,则创建 UserMapper.xml student 表-> StudentMapper.xml
在resources下新建 文件夹 com/itheima/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.itheima.mapper.StudentMapper">
// sql语句
<select id="selectAll" resultType="Student">
SELECT * FROM tb_user
</select>
</mapper>
第五步:编写映射接口
在java文件夹下新建包 com.itheima.mapper
编写接口文件。
方法名要与映射配置文件中的id一样。 返回值根据实际情况判断。
public interface StudentMapper {
List<Student> selectAll();
}
第六步: 实体类
存放在 java文件夹下的 com.itheima.pojo下。
根据数据库中对应的表结构设计属性。 数据类型要选择包装类。
public class Student {
private Integer id;
private String username;
private String password;
private Character gender;
private String addr;
}
后面生成 get set 方法。toString();
最后编写测试类。
public class Test01 {
public static void main(String[] args) throws IOException {
// 加载核心配置文件
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
// 获取sqlSessionFactory对象
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
// 获取sqlSession对象
SqlSession sqlSession = factory.openSession();
// 获取接口实现类对象
StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
// 调用方法
List<Student> students = mapper.selectAll();
// 释放资源
sqlSession.close();
// 遍历
for (Student student : students) {
System.out.println(student);
}
}
}