开发我的第一个Mybatis程序
1.resources目录
放在这个目录当中的,一般都是资源文件,配置文件。
直接放在resource目录下的资源,等同于放到了类的根路径下。
2.开发步骤
①:打包方式jar
<packaging>jar</packaging>
②:引入依赖
mybatis依赖
<!--mybatis依赖-->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.1</version>
</dependency>
MySQL依赖
<!-- MySQL驱动依赖 -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.0.31</version>
</dependency>
③:编写mybatis核心配置文件:mybatis-config.xml
a.文件名随意,只是大家都采用这个名字。
b.文件存放位置不固定,但一般都会存放在类的根路径下。
<?xml version="1.0" encoding="UTF-8" ?>
<?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/powernode""/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="CarMapper.xml"/>
</mappers>
</configuration>
④:编写XxxMapper.xml文件(在这各文件中编写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="org.mybatis.example.BlogMapper">
<select id="selectBlog" resultType="Blog">
select * from Blog where id = #{id}
</select>
</mapper>
⑤:在mybatis-config.xml中指定XxxMapper.xml文件的路径:
<!--指定XxxMapper.xml的路径-->
<!--resource属性会自动从类的根路径下查找资源-->
<mapper resource="CarMapper.xml"/>
⑥:编写Mybatis程序(使用mybatis的类库,链接数据库,做增删改查)
在MB中,负责执行SQL的对象是SqlSession对象,是一个Java程序和数据库之间的一次会话。
想要获取Sqlsession对象,就需要先获取SqlSessionFactory对象,通过SqlSessionFactory工厂来生产SqlSession对象。
SqlSessionFactory对象由SqlSessionFactoryBuilder对象的build方法获取。
mybatis的核心对象包括:
SqlSessionFactoryBuilder
SqlSessionFactory
Sqlsession
package com.powernode.mybatis.test;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.InputStream;
public class MyBatisIntroductionTest {
public static void main(String[] args) throws Exception{
//获取SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
//获取SqlSessionFactory对象
InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); //Resources.getResourceAsStream默认就是从类的跟路径下查找的。
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
//获取SqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//执行Sql语句
int count = sqlSession.insert("insertCar");//返回值是影响数据库中的记录条数。
System.out.println("插入了" + count + "条记录!!!");
//手动提交
sqlSession.commit();
}
}
3.从 XML 中构建 SqlSessionFactory
①:在Mybatis中有一个很重要的对象,这个对象是SqlSessionFactory对象
②:SqlSessionFactory对象的创建需要XML。
XML是什么?配置文件
4.mybatis中有连个主要的配置文件
①mybatis-config.xml:核心配置文件,主要配置连接数据库的信息等。(一般一个)
②XxxMapper.xml:这个文件是专门用来编写SQL语句的配置文件。(一个表一个)
5.关于第一个小程序中的一些小细节
- mybatis中sql语句结尾”;"可以省略。
- Resources.getResourceAsStream
–小技巧:关于resource这个单词,大部分情况下,这种加载资源的方式就是从类的跟路径下开始加载。(开始查找)