七十九、MyBatis 框架入门案例

举报
托马斯-酷涛 发表于 2022/05/26 00:39:13 2022/05/26
【摘要】 入门案例 MyBatis开发准备 搭建MyBatis开发环境,实现第一个案例 MyBatis下载地址:https://github.com/mybatis/mybatis-3/releases 内容列表 目录 入门案例 搭建MyBatis开发环境 一、创建数据库和表  二、创建ma...


入门案例

MyBatis开发准备

搭建MyBatis开发环境,实现第一个案例

MyBatis下载地址:https://github.com/mybatis/mybatis-3/releases


内容列表

目录

入门案例

搭建MyBatis开发环境

一、创建数据库和表

 二、创建maven工程

三、代码编写

四、创建测试类进行测试

五、增删改操作


 

搭建MyBatis开发环境

一、创建数据库和表

数据库名ssm,数据表student


  
  1. mysql> create database ssm;
  2. Query OK, 1 row affected (0.01 sec)
  3. mysql> use ssm
  4. Database changed
  5. mysql> CREATE TABLE `student` (
  6. -> `id` int(11) NOT NULL ,
  7. -> `name` varchar(255) DEFAULT NULL,
  8. -> `email` varchar(255) DEFAULT NULL,
  9. -> `age` int(11) DEFAULT NULL,
  10. -> PRIMARY KEY (`id`)
  11. -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  12. Query OK, 0 rows affected, 3 warnings (0.03 sec)

 二、创建maven工程

1、pom.xml加入maven坐标


  
  1. <dependencies>
  2. <dependency>
  3. <groupId>junit</groupId>
  4. <artifactId>junit</artifactId>
  5. <version>4.11</version>
  6. <scope>test</scope>
  7. </dependency>
  8. <dependency>
  9. <groupId>org.mybatis</groupId>
  10. <artifactId>mybatis</artifactId>
  11. <version>3.5.1</version>
  12. </dependency>
  13. <dependency>
  14. <groupId>mysql</groupId>
  15. <artifactId>mysql-connector-java</artifactId>
  16. <version>5.1.9</version>
  17. </dependency>
  18. </dependencies>

2、加入maven插件


  
  1. <build>
  2. <resources>
  3. <resource>
  4. <directory>src/main/java</directory><!--所在的目录-->
  5. <includes><!--包括目录下的.properties,.xml 文件都会扫描到-->
  6. <include>**/*.properties</include>
  7. <include>**/*.xml</include>
  8. </includes>
  9. <filtering>false</filtering>
  10. </resource>
  11. </resources>
  12. <plugins>
  13. <plugin>
  14. <artifactId>maven-compiler-plugin</artifactId>
  15. <version>3.1</version>
  16. <configuration>
  17. <source>1.8</source>
  18. <target>1.8</target>
  19. </configuration>
  20. </plugin>
  21. </plugins>
  22. </build>

三、代码编写

1、编写Student实体类

创建包 com.Example.domain, 包中创建 Student 类


  
  1. package com.bjpowernode.domain;
  2. /**
  3. * <p>Description: 实体类 </p>
  4. * <p>Company: http://www.bjpowernode.com
  5. */
  6. public class Student {
  7. //属性名和列名一样
  8. private Integer id;
  9. private String name;
  10. private String email;
  11. private Integer age;
  12. // set ,get , toString
  13. }

2、编写DAO接口StudentDao

创建 com.Example.dao 包,创建 StudentDao 接口


  
  1. package com.bjpowernode.dao;
  2. import com.bjpowernode.domain.Student;
  3. import java.util.List;
  4. /*
  5. * <p>Description: Dao 接口 </p>
  6. * <p>Company: http://www.bjpowernode.com
  7. */
  8. public interface StudentDao {
  9. /*查询所有数据*/
  10. List<Student> selectStudents();
  11. }

3、编写DAO接口Mapper映射文件StudentDao.xml。

  • 在 dao 包中创建文件 StudentDao.xml
  • 要 StudentDao.xml 文件名称和接口 StudentDao 一样,区分大小写的一 样。

  
  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. namespace:必须有值,自定义的唯一字符串
  7. 推荐使用:dao 接口的全限定名称
  8. -->
  9. <mapper namespace="com.Example.dao.StudentDao">
  10. <!--
  11. <select>: 查询数据, 标签中必须是 select 语句
  12. id: sql 语句的自定义名称,推荐使用 dao 接口中方法名称,
  13. 使用名称表示要执行的 sql 语句
  14. resultType: 查询语句的返回结果数据类型,使用全限定类名
  15. -->
  16. <select id="selectStudents"
  17. resultType="com.Example.domain.Student">
  18. <!--要执行的 sql 语句-->
  19. select id,name,email,age from student
  20. </select>
  21. </mapper>

4、创建MyBatis主配置文件

项目 src/main 下创建 resources 目录,设置 resources 目录为 resources root

创建主配置文件:名称为 mybatis.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. <!--配置 mybatis 环境-->
  7. <environments default="mysql">
  8. <!--id:数据源的名称-->
  9. <environment id="mysql">
  10. <!--配置事务类型:使用 JDBC 事务(使用 Connection 的提交和回
  11. 滚)-->
  12. <transactionManager type="JDBC"/>
  13. <!--数据源 dataSource:创建数据库 Connection 对象
  14. type: POOLED 使用数据库的连接池
  15. -->
  16. <dataSource type="POOLED">
  17. <!--连接数据库的四个要素-->
  18. <property name="driver" value="com.mysql.jdbc.Driver"/>
  19. <property name="url"
  20. value="jdbc:mysql://localhost:3306/ssm"/>
  21. <property name="username" value="root"/>
  22. <property name="password" value="123456"/>
  23. </dataSource>
  24. </environment>
  25. </environments>
  26. <mappers>
  27. <!--告诉 mybatis 要执行的 sql 语句的位置-->
  28. <mapper resource="com/Example/dao/StudentDao.xml"/>
  29. </mappers>
  30. </configuration>

支持中文的url

jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf-8 
 

四、创建测试类进行测试

1、创建测试类MyBatisTest

src/test/java/com/Example/ 创建 MyBatisTest.java 文件


  
  1. /*
  2. * mybatis 入门
  3. */
  4. @Test
  5. public void testStart() throws IOException {
  6. //1.mybatis 主配置文件
  7. String config = "mybatis-config.xml";
  8. //2.读取配置文件
  9. InputStream in = Resources.getResourceAsStream(config);
  10. //3.创建 SqlSessionFactory 对象,目的是获取 SqlSession
  11. SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
  12. //4.获取 SqlSession,SqlSession 能执行 sql 语句
  13. SqlSession session = factory.openSession();
  14. //5.执行 SqlSession 的 selectList()
  15. List<Student> studentList =
  16. session.selectList("com.bjpowernode.dao.StudentDao.selectStudents");
  17. //6.循环输出查询结果
  18. studentList.forEach( student -> System.out.println(student));
  19. //7.关闭 SqlSession,释放资源
  20. session.close();
  21. }

  
  1. List<Student> studentList =
  2. session.selectList("com.bjpowernode.dao.StudentDao.selectStudents");
  3. 近似等价的 jdbc 代码
  4. Connection conn = 获取连接对象
  5. String sql=select id,name,email,age from student”
  6. PreparedStatement ps = conn.prepareStatement(sql);
  7. ResultSet rs = ps.executeQuery();

2、配置日志功能

mybatis.xml 文件加入日志配置,可以在控制台输出执行的 sql 语句和参数


  
  1. <settings>
  2. <setting name="logImpl" value="STDOUT_LOGGING" />
  3. </settings>

五、增删改操作

1、insert操作

(1)StudentDAO接口中的方法

int insertStudent(Student student);
 

(2)StudentDAO.xml加入sql语句


  
  1. <insert id="insertStudent">
  2. insert into student(id,name,email,age)
  3. values(#{id},#{name},#{email},#{age})
  4. </insert>

(3)增加测试方法


  
  1. @Test
  2. public void testInsert() throws IOException {
  3. //1.mybatis 主配置文件
  4. String config = "mybatis-config.xml";
  5. //2.读取配置文件
  6. InputStream in = Resources.getResourceAsStream(config);
  7. //3.创建 SqlSessionFactory 对象
  8. SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
  9. //4.获取 SqlSession
  10. SqlSession session = factory.openSession();
  11. //5.创建保存数据的对象
  12. Student student = new Student();
  13. student.setId(1005);
  14. student.setName("张丽");
  15. student.setEmail("zhangli@163.com");
  16. student.setAge(20);
  17. //6.执行插入 insert
  18. int rows = session.insert(
  19. "com.bjpowernode.dao.StudentDao.insertStudent",student);
  20. //7.提交事务
  21. session.commit();
  22. System.out.println("增加记录的行数:"+rows);
  23. //8.关闭 SqlSession
  24. session.close();
  25. }

 

文章来源: tuomasi.blog.csdn.net,作者:托马斯-酷涛,版权归原作者所有,如需转载,请联系作者。

原文链接:tuomasi.blog.csdn.net/article/details/123444621

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。