框架:具有一些基础功能的软件
三层架构
MyBatis优势
MyBatis使用
maven框架下MyBatis实例
1、数据库中创建student表
2、maven的pom.xml文件中加入:
<!-- 依赖框架 -->
<dependencies>
......
<!-- mybatis框架 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
</dependencies>
3、创建Student实体类
4、创建对应持久层接口:
package org.example.dao;
import org.example.domain.Student;
import java.util.List;
public interface StudentDAO {
//查询表中所有数据
List<Student> selectStudents();
}
5、接口对应的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/example/dao/StudentDAO">
<select id="selectStudents" resultType="org.example.domain.Student">
select * from student order by id
</select>
</mapper>
# 全限定名称指:copy path下的copy reference
<!--
<!DOCTYPE mapper
PUBLIC "约束文件:指定mybatis的sql映射文件的标签要求 固定的!!!">
<mapper namespace="此sql文件对应接口的全限定名称">
<select id="接口中方法名" resultType="返回集合中元素的数据类型的全限定名称">
select * from Blog where id = #{id}
</select>
还有:
<update>
<insert>
<delete>
</mapper>
-->
6、创建MyBatis主配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!-- mybatis主配置文件 -->
<!--约束文件-->
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--配置-->
<configuration>
<!-- 向控制台输出mybatis日志 -->
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<!-- 数据库环境配置
default值为当前使用的数据库:
如开发过程我们使用development标签数据库信息
而部署服务器时我们将default改为真实数据库信息online标签数据库信息
-->
<environments default="development">
<!-- 数据库环境1 -->
<environment id="development">
<!-- 事务类型 JDBC -->
<transactionManager type="JDBC"/>
<!-- 数据源 pooled表示使用线程池 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/ssm"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
<!-- 数据库环境2 -->
<environment id="online">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- 另一个数据库信息 -->
</dataSource>
</environment>
</environments>
<!-- sql映射文件 -->
<mappers>
<!-- 注意用resource找文件都是在类路径下找 -->
<mapper resource="org/example/dao/StudentDAO.xml"/>
</mappers>
</configuration>
扩展:让maven编译不要过滤xml文件
# maven默认编译会过滤xml等文件
# 需要在maven项目的pom.xml文件中配置:
<build>
<resources>
<!-- 设置src/main/java下的**/*.xml文件编译时不被过滤filtering=false -->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
7、访问数据库:
主要类介绍
MyBatis默认事务不会自动提交