一:介绍:
1.MyBatis是一个优秀的 ①'持久层' ②'框架',用于简化JDBC的开发!
①:JAVAEE有三层的结构:表现层, 业务层, 持久层. 表现层代表的是页面的展示,业务层则指的是对于相关逻辑的处理, 而持久层, 指的则是对于数据进行持久化,保存在数据库当中. 持久层具体的来说就是负责将已经编写过的数据保存到数据库当中的一层代码
②而框架,我们也可以理解成一个模板,也就是一个半成品,我们在完成一些程序的时候可以以其作为模板进行套用, 在此的基础上进行一些'修饰' '增加'等等......是一套可重用的,通用的,软件基础代码模型. 同时,使用框架,也让我们的工作事半功倍,让编写程序变得更加的高效,规范,通用,在此基础之上,我们也可以进行相应的扩展,也就是扩展性
2.具体的简化方式:
1<针对于硬编码的问题:在JDBC上①注册驱动 ②获取连接 我们可以通过使用MYBATIS将其写在一个配置文件当中012
2>针对操作的繁琐:在JDBC上①手动设置参数 ②手动的对于结果集进行封装以及输出 通过使用MYBATIS我们可以实现将其自动化完成
二:MyBatis的入门操作:
1.在数据库当中准备好表,基础的数据
2.在IDE当中创建好MAVEN的相关项目
3.打开pom,导入坐标 创建好模块
第一次导入坐标,我们可以先进入mybits的官网当中的入门进行相关操作即可,连接奉上
1.导入各种需要的依赖(mybits,日志等等.....)
<dependencies> <dependency> <!-- mybatis的依赖导入--> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.9</version> </dependency> <!-- 导入数据库的连接 mysql的驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.28</version> </dependency> <!-- junit 单元测试--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- 添加日志logback-classis依赖--> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.3.12</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.3.12</version> </dependency> </dependencies>
2>在score的文件下添加mybits的相关配置文件,记得提前添加,不要忘记了
<?xml version="1.0" encoding="UTF-8"?> <!-- 配置文件修改时重新加载,默认true --> <configuration scan="true"> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <property name="CATALINA_BASE" value="**/logs"></property> <!-- 控制台输出 --> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder charset="UTF-8"> <!-- 输出日志记录格式 --> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- 第一个文件输出,每天产生一个文件 --> <appender name="FILE1" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 输出文件路径+文件名 --> <fileNamePattern>${CATALINA_BASE}/aa.%d{yyyyMMdd}.log</fileNamePattern> <!-- 保存30天的日志 --> <maxHistory>30</maxHistory> </rollingPolicy> <encoder charset="UTF-8"> <!-- 输出日志记录格式 --> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- 第二个文件输出,每天产生一个文件 --> <appender name="FILE2" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${CATALINA_BASE}/bb.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${CATALINA_BASE}/bb.%d{yyyyMMdd}.log</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> <encoder charset="UTF-8"> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <appender name="CUSTOM" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${CATALINA_BASE}/custom.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- daily rollover --> <fileNamePattern>${CATALINA_BASE}/custom.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- keep 30 days' worth of history --> <maxHistory>30</maxHistory> </rollingPolicy> <encoder charset="UTF-8"> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- 设置日志输出级别 --> <root level="ERROR"> <appender-ref ref="CONSOLE" /> </root> <logger name="file1" level="DEBUG"> <appender-ref ref="FILE1" /> </logger> <logger name="file1" level="INFO"> <appender-ref ref="FILE2" /> </logger> <!-- 自定义logger --> <logger name="custom" level="INFO"> <appender-ref ref="CUSTOM" /> </logger> </configuration>
将其以xml文件的方式放在resources当中即可
4.编写MyBits的核心配置文件
编写xml配置文件,将其放置在rescores当中即可
<?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"> <!--连接数据库的信息--> 将内部改为com.mysql.jdbc.driver即可 <property name="driver" value="${driver}"/> 在这里添加上本机的编号,以及要使用的数据库的名称 <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <mappers> 加载相应的sql映射文件 修改 <mapper resource="org/mybatis/example/BlogMapper.xml"/> </mappers> </configuration>
5.创建sql映射文件
设置xml配置文件,添加到rescores当中
<?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="test"> 设置查询的id 以及返回值的类型 <select id="selectAll" resultType="com.itheima.pojo.User"> 写入指定数据库当中的指定表格的查询语句 select * from tb_user; </select> </mapper>
在加载完成之后,我们需要对于之前的sql映射文件的地址值进行修改,修改为当前sql映射文件名称即可
<?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:///mybatis?useSSL=false"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <mappers> <!--加载SQL的映射文件--> <mapper resource="UserMapepr.xml"/> </mappers> </configuration>
6.编码
1.设置数据库当中具体表的一些属性,创建User
2.设置User的测试类,加载sqlSessionFactory核心配置
3.获取sqlsession对象,并且执行相应的SQL语句
4.释放资源
// 1.加载MYBITS的核心文件,获取SqlSessionFactory String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //2.获取SqlSession对象,从而来执行sql SqlSession sqlSession = sqlSessionFactory.openSession(); //执行SQL //在这里填入SQL标签即可,以及空间名称 List<User> users = sqlSession.selectList("test.selectAll"); System.out.println(users); //4.释放资源 sqlSession.close();
感谢观看!OVER