作为一个java菜鸟,早就从慕课网中学到一些基本的mybatis的用法,但是一直不成体系,懵懵懂懂,既然正式入了java这个坑,就打算好好学学,所以买了本《MyBatis从入门到精通》,在此记录下学习的点滴。

数据库版本:Server version: 8.0.15 MySQL Community Server - GPL

数据准备:

先写一个最简单的查询

1、新建一个空白的maven项目,引入相关依赖包

  1. <dependencies>
  2. <!--测试需要-->
  3. <dependency>
  4. <groupId>junit</groupId>
  5. <artifactId>junit</artifactId>
  6. <version>4.12</version>
  7. </dependency>
  8. <!--mybatis-->
  9. <dependency>
  10. <groupId>org.mybatis</groupId>
  11. <artifactId>mybatis</artifactId>
  12. <version></version>
  13. </dependency>
  14. <!--数据库连接驱动-->
  15. <dependency>
  16. <groupId>mysql</groupId>
  17. <artifactId>mysql-connector-java</artifactId>
  18. <version></version>
  19. </dependency>
  20. </dependencies>

2、在resources中添加mybatis的配置文件mybatis-config.xml

这里选用最基本的jdbc事务管理器,不用数据库连接池。此处因为mysql的版本原因,要禁用SSL。同时配置数据库实体的位置和mapper文件路径。

  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. <typeAliases>
  7. <package name="com.forest.owl.entity"/>
  8. </typeAliases>
  9.  
  10. <environments default="development">
  11. <environment id="development">
  12. <transactionManager type="JDBC">
  13. <property name="" value=""/>
  14. </transactionManager>
  15. <dataSource type="UNPOOLED">
  16. <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
  17. <property name="url" value="jdbc:mysql://localhost:3306/forest?useSSL=false"/>
  18. <property name="username" value="root"/>
  19. <property name="password" value="root"/>
  20. </dataSource>
  21. </environment>
  22. </environments>
  23.  
  24. <mappers>
  25. <mapper resource="mapper/UserMapper.xml" />
  26. </mappers>
  27. </configuration>

2、编辑数据库实体User

  1. package com.forest.owl.entity;
  2.  
  3. import java.util.Date;
  4.  
  5. public class User {
  6.  
  7. private int id;
  8. private String account;
  9. private String passwd;
  10. private String nickname;
  11. private String phone;
  12. private String email;
  13. private Date createTime;
  14. private Date updateTime;
  15.  
  16. public int getId() {
  17. return id;
  18. }
  19.  
  20. public void setId(int id) {
  21. this.id = id;
  22. }
  23.  
  24. public String getAccount() {
  25. return account;
  26. }
  27.  
  28. public void setAccount(String account) {
  29. this.account = account;
  30. }
  31.  
  32. public String getPasswd() {
  33. return passwd;
  34. }
  35.  
  36. public void setPasswd(String passwd) {
  37. this.passwd = passwd;
  38. }
  39.  
  40. public String getNickname() {
  41. return nickname;
  42. }
  43.  
  44. public void setNickname(String nickname) {
  45. this.nickname = nickname;
  46. }
  47.  
  48. public String getPhone() {
  49. return phone;
  50. }
  51.  
  52. public void setPhone(String phone) {
  53. this.phone = phone;
  54. }
  55.  
  56. public String getEmail() {
  57. return email;
  58. }
  59.  
  60. public void setEmail(String email) {
  61. this.email = email;
  62. }
  63.  
  64. public Date getCreateTime() {
  65. return createTime;
  66. }
  67.  
  68. public void setCreateTime(Date createTime) {
  69. this.createTime = createTime;
  70. }
  71.  
  72. public Date getUpdateTime() {
  73. return updateTime;
  74. }
  75.  
  76. public void setUpdateTime(Date updateTime) {
  77. this.updateTime = updateTime;
  78. }
  79.  
  80. }

3、在resources中添加mapper文件夹,在该文件夹中添加UserMapper.xml文件

mapper文件的命名空间是必须的,这里是随便命名,暂且还不清楚该属性的具体作用。

  1. <!DOCTYPE mapper
  2. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  4. <mapper namespace="mapper">
  5. <select id="selectUsers" resultType="com.forest.owl.entity.User">
  6. SELECT id, account, passwd, nickname, phone, email, create_time as createTime, update_time as updateTime
  7. FROM user
  8. </select>
  9. </mapper>

4、编写测试类

  1. import com.forest.owl.entity.User;
  2. import org.apache.ibatis.io.Resources;
  3. import org.apache.ibatis.session.SqlSession;
  4. import org.apache.ibatis.session.SqlSessionFactory;
  5. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  6. import org.junit.BeforeClass;
  7. import org.junit.Test;
  8.  
  9. import java.io.IOException;
  10. import java.io.Reader;
  11. import java.util.List;
  12.  
  13. public class TestUserMapper {
  14.  
  15. private static SqlSessionFactory sqlSessionFactory;
  16.  
  17. @BeforeClass
  18. public static void init(){
  19. try {
  20. Reader reader = Resources.getResourceAsReader("mybatis.config.xml");
  21. sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
  22. reader.close();
  23. } catch (IOException e) {
  24. e.printStackTrace();
  25. }
  26. }
  27.  
  28. @Test
  29. public void TestMybatis(){
  30. SqlSession sqlSession = sqlSessionFactory.openSession();
  31. List<User> userList = sqlSession.selectList("selectUsers");
  32. System.out.println(userList.size());
  33. System.out.println(userList.get(0).getNickname());
  34. System.out.println(userList.get(0).getCreateTime());
  35. }
  36. }

测试结果:

mybatis入门篇:通过SqlSession.selectList进行数据查询的更多相关文章

  1. 【SSRS】入门篇(四) -- 向报表添加数据

    原文:[SSRS]入门篇(四) -- 向报表添加数据 定义好数据集后 [SSRS]入门篇(三) -- 为报表定义数据集 ,就可以开始设计报表了,将要显示在报表的字段.文本框.图像和其他项从工具箱拖放到 ...

  2. Mybatis入门篇之结果映射,你射准了吗?

    目录 前言 什么是结果映射? 如何映射? 别名映射 驼峰映射 配置文件开启驼峰映射 配置类中开启驼峰映射 resultMap映射 总结 高级结果映射 关联(association) 例子 关联的嵌套 ...

  3. mybatis入门篇:Mapper接口/关联查询/新增数据

    1.数据准备 2.编写实体类 package com.forest.owl.entity; import java.util.Date; public class User { private Lon ...

  4. mybatis入门篇基——基本配置与参数说明

    Mybatis 好吧这是我第一次写这种文章~如果有不足和错误之处欢迎评论,指点.今天想谈谈关于mybatis的一些基础入门知识. 进入正题~~: a.关于mybatis: 我个人觉得mybatis深得 ...

  5. mybatis入门篇:存储过程的操作

    1.无ResultType/ResultMap查询 先定义一个查询的存储过程: DELIMITER // CREATE PROCEDURE `select_user_by_id`( IN userId ...

  6. mybatis入门篇:Mybatis高级查询

    1.ResultMap的association与collection association与collection功能类似,区别是一对一与一对多,这里以association为例. 首先说明一下需求: ...

  7. mybatis入门篇:Mybatis注解方式的基本用法

    @Select 1.mybatis-config.xml <?xml version="1.0" encoding="UTF-8" ?> <! ...

  8. MyBatis入门篇

    一.什么是MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改 ...

  9. Mybatis入门篇之基础CRUD

    前言 作为一个资深后端码农天天都要和数据库打交道,最早使用的是 Hiberate,一个封装性极强的持久性框架.自从接触到 Mybatis 就被它的灵活性所折服了,可以自己写 SQL,虽然轻量级,但是麻 ...

随机推荐

  1. spring @bean 的理解

    1.spring @bean 注解只能注解到方法上 2. 该方法必须返回一个实例对象 3.该过程相当于,通过一个方法去构造一个实例对象 ,然后交给spring管理 4.使用场景   如需要构造出一个特 ...

  2. 关于c#连接数据库的代码

    using System;using System.Collections.Generic;using System.Data;using System.Data.SQLite;using Syste ...

  3. day063 form 和modelform组件

    注册功能: (写一个简单的注册功能,要求用户名长度不得小于6位.) 普通方式写注册功能  views视图下: def register(request): error_msg=' ' if reque ...

  4. C语言:统计数字空格其他字符程序

    #include <stdio.h> int main(){ char t; int num=0; int spac=0; int other=0; int sum=0; printf(& ...

  5. python笔记12-字典

    1.定义字典#定义字典--字典里面的key是不能重复的info = { 'name':'xiaoming', 'sex':'nan', 'age':20, 'id':1,}2.字典取值 #取值:方法1 ...

  6. Pycharm中flask框架应用

    flask框架应用实例 get方法 服务器端 server.py 如下 import flask app=flask.Flask(_name_) //启动一个应用程序 @app.rout(" ...

  7. mysql 分组排序取最值

    查各个用户下单最早的一条记录 查各个用户下单最早的前两条记录 查各个用户第二次下单的记录 一.建表填数据: SET NAMES utf8mb4; -- 取消外键约束 ; -- ------------ ...

  8. Linux 应用——常用函数(usual function)

    main函数: 新建testmain.c #include <sys/types.h>#include <sys/stat.h>#include <fcntl.h> ...

  9. Java EE 课程目标

    对于自己在本门课程的目标,首先是跟进老师的课程进度,努力完成老师下达的个人任务,以及需要与同伴一起合力完成的团队任务:其次是在课上课下的学习过程中,希望自己各方面的能力能有所提升:最后却也是最重要的一 ...

  10. 【PL/SQL基础知识】结构

    1.pl/sql块的结构 declare --声明的变量.类型.游标 begin --程序的执行部分(类似于java的main()方法) exception --针对begin块中出现的异常 ---w ...