实现要求:

使用MyBatis查询所有职员信息

  1. create table employee(
  2. id int not null auto_increment,
  3. name varchar(255) not null,
  4. gender varchar(2) null,
  5. position varchar(255) null, -- 岗位
  6. nationality varchar(255) null, -- 国籍
  7. primary key(id)
  8. );

实现思路:

在上一个项目基础上,在src/main/resources下面创建MyBatis的配置文件mybatis-config.xml。

mybatis-config.xml:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  4. <configuration>
  5. <!-- 设置包的别名 -->
  6. <typeAliases>
  7. <package name="jack.mybatis.simple.model" />
  8. </typeAliases>
  9. <environments default="development">
  10. <!--定义数据源,默认使用第一个 -->
  11. <environment id="development">
  12. <transactionManager type="JDBC">
  13. <!-- 事务处理方式 -->
  14. <property name="" value="" />
  15. </transactionManager>
  16. <!-- 每个environment元素定义的环境id -->
  17. <dataSource type="UNPOOLED">
  18. <!-- 数据源配置 -->
  19. <property name="driver" value="com.mysql.jdbc.Driver" />
  20. <property name="url" value="jdbc:mysql://localhost:3306/db_mybatis" />
  21. <property name="username" value="root" />
  22. <property name="password" value="root" />
  23. </dataSource>
  24. </environment>
  25. </environments>
  26. <!--映射 -->
  27. <mappers>
  28. <mapper resource="jack/mybatis/simple/mapper/EmployeeMapper.xml" />
  29. </mappers>
  30. </configuration>

在src/main/java下创建一个基础的包jack.mybatis.simple,在这个包下面再创建model包。根据数据库表employee,在model包下创建实体类Employee。

Employee.java

  1. package jack.mybatis.simple.model;
  2. public class Employee {
  3. private int id;
  4. private String name;
  5. private String gender;
  6. private String position;
  7. private String nationality;
  8. public int getId() {
  9. return id;
  10. }
  11. public void setId(int id) {
  12. this.id = id;
  13. }
  14. public String getName() {
  15. return name;
  16. }
  17. public void setName(String name) {
  18. this.name = name;
  19. }
  20. public String getGender() {
  21. return gender;
  22. }
  23. public void setGender(String gender) {
  24. this.gender = gender;
  25. }
  26. public String getPosition() {
  27. return position;
  28. }
  29. public void setPosition(String position) {
  30. this.position = position;
  31. }
  32. public String getNationality() {
  33. return nationality;
  34. }
  35. public void setNationality(String nationality) {
  36. this.nationality = nationality;
  37. }
  38. public Employee(int id, String name, String gender, String position, String nationality) {
  39. super();
  40. this.id = id;
  41. this.name = name;
  42. this.gender = gender;
  43. this.position = position;
  44. this.nationality = nationality;
  45. }
  46. public Employee() {
  47. super();
  48. }
  49. @Override
  50. public String toString() {
  51. return "Employee [id=" + id + ", name=" + name + ", gender=" + gender + ", position=" + position
  52. + ", nationality=" + nationality + "]";
  53. }
  54. }

在src/main/resources下面创建jack/mybatis/simple/mapper目录,再在该目录下面创建与实体类Employee对应的映射文件EmployeeMapper.xml文件。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  4. <!-- Employee类的映射 -->
  5. <mapper namespace="jack.mybatis.simple.model">
  6. <select id="selectAll" resultMap="Employee">
  7. select * from employee
  8. </select>
  9. </mapper>

配置Log4j。

  1. # 全局配置
  2. log4j.rootLogger=ERROR, stdout
  3. # MyBatis日志配直
  4. log4j.logger.mapper=TRACE
  5. # 控制台输出配置
  6. log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  7. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
  8. log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

编写测试代码查询所有职员的信息。

  1. package test;
  2. import java.io.IOException;
  3. import java.io.Reader;
  4. import java.util.List;
  5. import org.apache.ibatis.io.Resources;
  6. import org.apache.ibatis.session.SqlSession;
  7. import org.apache.ibatis.session.SqlSessionFactory;
  8. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  9. import org.junit.BeforeClass;
  10. import org.junit.Test;
  11. import jack.mybatis.simple.model.Employee;
  12. public class EmployeeTest {
  13. private static SqlSessionFactory sqlSessionFactory;
  14. /* 完成mybatis配置的加载,创建得到SqlSessionFactory */
  15. @BeforeClass
  16. public static void init() {
  17. try {
  18. Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
  19. sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
  20. reader.close();
  21. } catch (IOException e) {
  22. e.printStackTrace();
  23. }
  24. }
  25. /* 获取SqlSession对象,用于调用方法得到数据 */
  26. @Test
  27. public void testSelectAll() {
  28. SqlSession sqlSession = sqlSessionFactory.openSession();
  29. try {
  30. List<Employee> selectList = sqlSession.selectList("selectAll");
  31. for (Employee employee : selectList) {
  32. System.out.println(employee.toString());
  33. }
  34. } finally {
  35. // 不要忘记关闭sqlSession
  36. sqlSession.close();
  37. }
  38. }
  39. }

MyBatis练习——使用MyBatis查询所有职员信息的更多相关文章

  1. 使用mybatis开发Dao的原始方法,实现根据用户id查询一个用户信息 、根据用户名称模糊查询用户信息列表 、添加用户信息等功能

    1.需求 将下边的功能实现Dao: 根据用户id查询一个用户信息 根据用户名称模糊查询用户信息列表 添加用户信息 2. 原始Dao开发方法需要程序员编写Dao接口和Dao实现类 3.User.xml映 ...

  2. mybatis入门基础(八)-----查询缓存

    一.什么是查询缓存 mybatis提供查询缓存,用于减轻数据压力,提高数据库性能. mybaits提供一级缓存,和二级缓存. 1.1. 一级缓存是sqlSession级别的缓存.在操作数据库时需要构造 ...

  3. MyBatis实现关联表查询

    一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...

  4. MyBatis——实现关联表查询

    原文:http://www.cnblogs.com/xdp-gacl/p/4264440.html 一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创 ...

  5. JAVA入门[9]-mybatis多表关联查询

    概要 本节要实现的是多表关联查询的简单demo.场景是根据id查询某商品分类信息,并展示该分类下的商品列表. 一.Mysql测试数据 新建表Category(商品分类)和Product(商品),并插入 ...

  6. 【MyBatis】MyBatis自动生成代码查询之爬坑记

    前言 项目使用SSM框架搭建Web后台服务,前台后使用restful api,后台使用MyBatisGenerator自动生成代码,在前台使用关键字进行查询时,遇到了一些很宝贵的坑,现记录如下.为展示 ...

  7. mybatis进阶--一对多查询

    首先,我们还是先给出一个需求:根据订单id查询订单明细——我们知道,一个订单里面可以有多个订单的明细(需求不明确的同学,请留言或者去淘宝网上的订单处点一下就知道了).这个时候,一个订单,对应多个订单的 ...

  8. Eclipse创建一个mybatis工程实现连接数据库查询

    Eclipse上创建第一mybatis工程实现数据库查询 步骤: 1.创建一个java工程 2.创建lib文件夹,加入mybatis核心包.依赖包.数据驱动包.并为jar包添加路径 3.创建resou ...

  9. mybatis一对多关联查询——(九)

    1.需求: 查询所有订单信息及订单下的订单明细信息. 订单信息与订单明细为一对多关系. 2.      sql语句 确定主查询表:订单表 确定关联查询表:订单明细表 在一对一查询基础上添加订单明细表关 ...

随机推荐

  1. Linux基础命令---host域名查询工具

    host host是一个常用的DNS查询工具,经常用来查询域名.检查域名解析是否正确. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.Fedora.   1.语法       ...

  2. hive 启动不成功,报错:hive 启动报 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/mapred/MRVersi

    1. 现象:在任意位置输入 hive,准备启动 hive 时,报错: Exception in thread "main" java.lang.NoClassDefFoundErr ...

  3. linux 加密安全之AWK

    密钥 密钥一般是一串字符串或数字,在加密或者解密时传递给加密或者解密算法,以使算法能够正确对明文加密或密文解密. 加密算法 已知的加密算法有对称和非对称加密,也就是说你想进行加解密操作的时候需要具备密 ...

  4. 【Python】【Algorithm】排序

    冒泡排序 dic = [12, 45, 22, 6551, 74, 155, 6522, 1, 386, 15, 369, 15, 128, 123, ] for j in range(1, len( ...

  5. vue 中使用import导入 script 在线链接

    一般我们在vue中导入另外一个文件或者文件中的方法,我们都是使用import来实现他的,那么问题来了,现在我们要导入的不是另外的一个文件,而是在线链接,这该怎么办?我们也使用了 import * as ...

  6. 最基础的SSM框架整合篇

    一.简单理解 Spring.Spring MVC和MyBatis的整合主要原理就是将我们在单独使用Spring MVC和MyBatis过程中需要自己实例化的类都交由Ioc容器来管理,过程分为两步: 第 ...

  7. leetcode,两个排序数组的中位数

    先上题目描述: 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 . 请找出这两个有序数组的中位数.要求算法的时间复杂度为 O(log (m+n)) . 你可以假设 nums1 和  ...

  8. Apache log4j2 远程代码执行漏洞复现👻

    Apache log4j2 远程代码执行漏洞复现 最近爆出的一个Apache log4j2的远程代码执行漏洞听说危害程度极大哈,我想着也来找一下环境看看试一下.找了一会环境还真找到一个. 漏洞原理: ...

  9. C# VS 断点进不去,显示红色空心右下角黄色感叹号图标

    今天开发同事遇到了一个诡异的问题,使用 Visual Studio 调式 C# 代码时,断电位置一直显示红色空心右下角有黄色感叹号的图标(下图所示),断点调试死活进不去. 几个同事过去看了下,都隐约感 ...

  10. CF637B Chat Order 题解

    Content 有 \(n\) 个字符串,每次出现这个单词就把这个单词放到队列的队首(若已经出现就把原队列里面的那个单词提到队首),求最后的队列由队首到队尾的元素依次是多少. 数据范围:\(1\leq ...