一、学习持久层框架的思路
代码语言:javascript复制 1.将应用程序中数据信息写入数据库
2.把数据从数据库中获取到应用程序中
3.持久层框架的学习都是如何处理**主配置文件和映射文件**关系的,
其中比较重要的是映射文件的处理
二、Mybatis的搭建过程
1.导入maven的依赖(jar包)
代码语言:javascript复制 <dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
2.编写两个配置文件 (1)主配置文件mybatis.xml
代码语言:javascript复制<?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>
<properties resource="datasource.properties"/>
<environments default="mysql">
<!-- 配置mysql的环境-->
<environment id="mysql">
<!-- 配置事务的类型-->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置数据源(连接池) -->
<dataSource type="POOLED">
<!-- 配置连接数据库的4个基本信息 -->
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/dept.xml"/>
/* 此处是指出映射文件位置 */
</mappers>
</configuration>
(2)资源文件datasource.properties
代码语言:javascript复制jdbc.driver=数据库驱动
jdbc.url=端口号
jdbc.username=用户名
jdbc.password=密码
(3)映射文件 一般都会存放在mapper文件夹中
代码语言:javascript复制/* 文件头*/
<?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="dept">//名称空间
<select id="selectAll" resultType="类型">
//此处写查询的sql语句
</select>
//删除就加入</delete>以此类推
</mapper>
(4)创建数据库的pojo类 (5)测试
代码语言:javascript复制public static void main(String[] args) {
SqlSessionFactory sqlSessionFactory;
SqlSession session = null;
try {
String resource = "mybatis.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
session = sqlSessionFactory.openSession();
HashMap<String,String> result = session.selectOne("selectID", 110);
System.out.println("Result: " result);
} catch (Exception ex) {
ex.printStackTrace();
} finally {
if(session != null){
session.close();
}
}
}
增删改操作要提交事务