JavaEE三层架构:表现层 (负责与用户的交互,通常实现了用户界面)、业务逻辑层 (处理核心业务规则和逻辑,是应用程序的"心脏"。)、数据访问层(负责与数据源(如数据库)进行交互,包括数据的存储、检索和操作)。
mybatis环境配置(基于maven)
pom.xml文件必须导入以下依赖
XML
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.16</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
</dependencies>
在resources文件夹下新建名为mybatis-config.xml的文件,并填写以下内容:
<?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">
在最上方还引入了一个叫做DTD(文档类型定义)的东西,它提前帮助我们规定了一些标签以及这些标签应该具有哪些属性,这些标签是Mybatis专属的配置标签,我们也必须要按照对应的方式来进行配置。
XML
<?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:///{数据库名称}?useSSL=false/dqlsearch"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="TestMapper.xml""/>
</mappers>
</configuration>
接下来就是具体配置mybatis连接数据库的代码了
- 环境(environments)里可以加多个environment,即连接不同的数据库,上面的default=" "里选择要用到的那个数据库。(可以连接不同的数据库来实现测试的效果 )
- <transactionManager type="JDBC"/>:事务管理器我们这里直接使用JDBC即可
- 数据源(dataSource)中配置就是驱动、连接地址(最后是要连接的数据库名称)、用户名和密码
之后在resources文件夹里面创建TestMapper.xml
在TestMapper.xml文件里写入
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">
<mapper namespace="testMapper">
</mapper>
mapper继续看下面的说明
由于要获取student这张表里的学生对象数据,那么就在包里新建学生这个类
java
@Data // 加上这个注解,就可以不写get set方法
public class student {
int id;
String name;
int gander;
......
//构造器和get set方法
}
之后在TestMapper.xml里配置sql映射
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">
<mapper namespace="testMapper">
<select id="SelectAllStudent" resultType="com.test.student">
select * from studentscore;
</select>
</mapper>
select标签里的id是该sql语句的名字,resultType是sql查询返回的类型
之后再在mybatis_config.xml里添加mappers标签(要在environments之后)
- 类取别名,具体见:MyBatis 3 | 配置 -- mybatis
XML
<typeAliases>
<package name="com.itheima.pojo"/>
</typeAliases>
- mapper.xml文件中
XML
<configuration>
...
<mappers>
<mapper resource="TestMapper.xml"/>
</mappers>
</configuration>
之后就可以在java文件里通过代码查询数据库了
java
package com.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.IOException;
import java.io.InputStream;
import java.util.List;
public class mybatistest {
public static void main(String[] args) throws IOException {
String resource = "mybatis-config.xml";
// 将mybatis-config.xml文件传入输入流
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession(); // 获取到了数据库对象
// 对数据库对象执行sql语句
List<User> userList = sqlSession.selectList("test.selectAll");
System.out.println(userList);
// 关闭
sqlSession.close();
}
}