MyBatis快速入门

x33g5p2x  于2022-03-03 转载在 其他  
字(6.2k)|赞(0)|评价(0)|浏览(621)

什么是是mybatis?

什么是持久层?

什么是框架

MyBatis简化jdbc代码

MyBatis操作练习

项目结构图 

xml配置文件

pom.xml文件内容

logback.xml内容

userMapper.xml内容

mybatis-config.xml内容

几个类下

com.pojo.User类

com.MyBatisDemo类

运行结果

MyBatis操作数据库

什么是是mybatis?

MyBatis是一个优秀的持久层框架,用于简化JDBC开发

MyBatis本是Apache的一个开源项目iBatis,2010年这个项目有apache software foundation迁移到了google code,并且改名为Mybatis。2013年迁移到Github

官网:mybatis – MyBatis 3 | 简介

https://mybatis.org/mybatis-3/zh/index.html

什么是持久层?

持久层负责将数据保存到收据库的那一层代码

JavaEE三层架构:表现层、业务层、持久层

表现层:用来做页面展示

业务层:用来做逻辑处理的

什么是框架

框架就是一个半成品软件,是一套可重用的、通用的、软件基础代码模型(模版)

在框架的基础之上构建软件编写更加高效、规范、通用、可扩展

MyBatis简化jdbc代码

JDBC书写繁琐,都是硬编码,维护麻烦

MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果的工作

MyBatis操作练习

案例使用MyBatis

1、创建user表,添加数据

2、创建模块,导入坐标

3、编写MyBatis核心配置文件-->替换连接信息 解决硬编码问题

4、编写SQL映射文件-->统一管理sql语句,解决硬编码问题

5、编码

  1. 定义pojo类
  2. 加载核心配置文件,获取SQLSessionFactory对象
  3. 获取SQLSession对象,执行SQL语句
  4. 释放资源
  1. create database mybatis;
  2. drop table if exists tb_user;
  3. create table tb_user(
  4. id int primary key auto_increment,
  5. username varchar(20),
  6. password varchar(20),
  7. gender char(1),
  8. addr varchar(30)
  9. ) character set utf8;
  10. select *from tb_user;
  11. INSERT INTO tb_user VALUES(1,'zhangsan','123','男','北京');
  12. INSERT INTO tb_user VALUES (2,'李四','234','女','天津');
  13. INSERT INTO tb_user VALUES(3,'王五','11','男','西安');

创建一个mybatis-demo模块

项目结构图 

xml配置文件

 pom.xml文件内容

  1. <dependencies>
  2. <!--mybatis依赖-->
  3. <dependency>
  4. <groupId>org.mybatis</groupId>
  5. <artifactId>mybatis</artifactId>
  6. <version>3.5.5</version>
  7. </dependency>
  8. <!--导入mysql的jar包,只要写出坐标位置即可-->
  9. <dependency>
  10. <groupId>mysql</groupId>
  11. <artifactId>mysql-connector-java</artifactId>
  12. <version>5.1.47</version>
  13. </dependency>
  14. <!--junit单元测试-->
  15. <dependency>
  16. <groupId>junit</groupId>
  17. <artifactId>junit</artifactId>
  18. <version>4.12</version>
  19. <scope>test</scope>
  20. </dependency>
  21. <!--添加slf4日志api-->
  22. <dependency>
  23. <groupId>org.slf4j</groupId>
  24. <artifactId>slf4j-api</artifactId>
  25. <version>1.7.20</version>
  26. </dependency>
  27. <!--添加logback-classic依赖-->
  28. <dependency>
  29. <groupId>ch.qos.logback</groupId>
  30. <artifactId>logback-classic</artifactId>
  31. <version>1.2.3</version>
  32. </dependency>
  33. <!--添加logback-code依赖-->
  34. <dependency>
  35. <groupId>ch.qos.logback</groupId>
  36. <artifactId>logback-core</artifactId>
  37. <version>1.2.3</version>
  38. </dependency>
  39. </dependencies>

logback.xml内容

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3. <!--CONSOLE :表示当前的日志信息是可以输出到控制台的。 -->
  4. <appender class="ch.qos.logback.core.ConsoleAppender" name="Console">
  5. <encoder>
  6. <pattern>[%level] %blue(%d{HH:mm:ss.SSS}) %cyan([%thread]) %boldGreen(%logger{15}) - %msg %n</pattern>
  7. </encoder>
  8. </appender>
  9. <logger name="com.itheima" additivity="false" level="DEBUG">
  10. <appender-ref ref="Console"/>
  11. </logger>
  12. <!--level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF
  13. , 默认debug<root>可以包含零个或多个<appender-ref>元素,标识这个输出位置将会被本日志级别控制。
  14. -->
  15. <root level="DEBUG">
  16. <appender-ref ref="Console"/>
  17. </root>
  18. </configuration>

userMapper.xml内容

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <!--名称空间-->
  6. <mapper namespace="test">
  7. <select id="selectAll" resultType="com.pojo.User">
  8. select * from tb_user;
  9. </select>
  10. </mapper>

mybatis-config.xml内容

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6. <environments default="development">
  7. <environment id="development">
  8. <transactionManager type="JDBC"/>
  9. <dataSource type="POOLED">
  10. <!--数据库的连接信息 -->
  11. <property name="driver" value="com.mysql.jdbc.Driver"/>
  12. <property name="url" value="jdbc:mysql:///mybatis?useSSL=false"/>
  13. <property name="username" value="root"/>
  14. <property name="password" value="123456"/>
  15. </dataSource>
  16. </environment>
  17. </environments>
  18. <mappers>
  19. <!--加载sql的配置文件-->
  20. <mapper resource="userMapper.xml"/>
  21. </mappers>
  22. </configuration>

几个类下

com.pojo.User类

  1. package com.pojo;
  2. /**
  3. * 快捷键alt加鼠标左键整列选中
  4. */
  5. public class User {
  6. private Integer id;
  7. private String username;
  8. private String password;
  9. private String gender;
  10. private String addr;
  11. public Integer getId() {
  12. return id;
  13. }
  14. public void setId(Integer id) {
  15. this.id = id;
  16. }
  17. public String getUsername() {
  18. return username;
  19. }
  20. public void setUsername(String username) {
  21. this.username = username;
  22. }
  23. public String getPassword() {
  24. return password;
  25. }
  26. public void setPassword(String password) {
  27. this.password = password;
  28. }
  29. public String getGender() {
  30. return gender;
  31. }
  32. public void setGender(String gender) {
  33. this.gender = gender;
  34. }
  35. public String getAddr() {
  36. return addr;
  37. }
  38. public void setAddr(String addr) {
  39. this.addr = addr;
  40. }
  41. @Override
  42. public String toString() {
  43. return "User{" +
  44. "id=" + id +
  45. ", username='" + username + '\'' +
  46. ", password='" + password + '\'' +
  47. ", gender='" + gender + '\'' +
  48. ", addr='" + addr + '\'' +
  49. '}'+"\n";
  50. }
  51. }

com.MyBatisDemo类

  1. package com;
  2. import com.pojo.User;
  3. import org.apache.ibatis.io.Resources;
  4. import org.apache.ibatis.session.SqlSession;
  5. import org.apache.ibatis.session.SqlSessionFactory;
  6. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  7. import java.io.IOException;
  8. import java.io.InputStream;
  9. import java.util.List;
  10. /**
  11. * mybatis快速入门
  12. */
  13. public class MyBatisDemo {
  14. public static void main(String[] args) throws IOException {
  15. //加载mybatis核心配置文件,获取 SqlSessionFactory
  16. String resource = "mybatis-config.xml";
  17. InputStream inputStream = Resources.getResourceAsStream(resource);
  18. SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  19. //2、获取sqlSession对象,用它来执行sql
  20. SqlSession sqlSession = sqlSessionFactory.openSession();
  21. //3、执行sql(名称空间.id即可)
  22. List<User> users = sqlSession.selectList("test.selectAll");
  23. System.out.println(users);
  24. //释放资源
  25. sqlSession.close();
  26. }
  27. }

运行结果

MyBatis操作数据库

相关文章