mybatis的第一天
将jdk15改为jdk1.8
好处:这样mybatis就没有警告
要改的4个地方:
第一个mybatis程序的流程
- 准备环境:
- 搭建实验数据库;
- 新建maven文件;
- 删除src目录再在父的pom中导入相关jar包(目的:有父文件,之后的子文件不必再多次导入jar包,mybatis的jar包在github上面找);
- 在idea中进行数据库的连接(先test连接成功后再找到要连的库)
- 完成相关配置:
创建子工程
子工程resources中写mybatis核心配置文件 (只要改要连的库名和注册的mapper,别的不用改);
<?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://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf8"/>
<property name="username" value="root"/>
<property name="password" value="xxxx"/>
</dataSource>
</environment>
</environments>
<!--每一个mapper.xml都需要在mybatis核心配置文件中注册-->
<mappers>
<mapper resource="dao/UserMapper.xml"/>
</mappers>
</configuration>
父和子的pom中都要写 (不用改)
<!--Maven静态资源过滤问题-->
<!--在build中配置resources,来防止我们资源导出失败的问题-->
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
- 编写代码:
- 写MybatisUtils (除了改resource,别的以后不用改)
package utils;
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.IOException;
import java.io.InputStream;
//sqlSessionFactory --> sqlSession
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static{
//使用mybatis第一步:获取sqlSessionFactory对象
String resource = "mybatis-config.xml";
try {
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
//既然有了SqlSessionFactory,顾名思义,我们就可以从中获得SqlSession的实例了。
//SqlSession完全包含了面向数据库执行SQL命令所需的所有方法。
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession();
}
}
- 实体类(与数据库中的字段一一对应)
- 接口(写里面dao层该有的方法)
- mapper.xml(相当于impl,重写接口中的方法)
<?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="dao.UserDao">
<!--id:重写的方法名;resultType:返回类型,如果返回的是集合,则写里面的泛型-->
<!--select查询语句-->
<select id="getUserList" resultType="entity.User">
select * from mybatis.user
</select>
</mapper>
- 测试(测试的包要和开发的包一一对应)
测试成功![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2209a891eaebd3e07fd2f20c8f234372.png)
Pay attention
- useSSL=true:安全连接;
- 每一个mapper.xml都需要在mybatis核心配置文件中注册
<mappers>
<mapper resource="dao/UserMapper.xml"/>
</mappers>
- 用完sqlSession之后记得关闭