Java企业级开发学习笔记(2.1)MyBatis实现简单查询

这篇具有很好参考价值的文章主要介绍了Java企业级开发学习笔记(2.1)MyBatis实现简单查询。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

零、创建数据库与表
在Navicat里创建MySQL数据库testdb

创建用户表 - t_user
CREATE TABLE t_user (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(50) DEFAULT NULL,
age int(11) DEFAULT NULL,
address varchar(255) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

执行SQL语句来创建用户表
INSERT INTO t_user VALUES (‘1’, ‘李洪刚’, ‘20’, ‘江阳区嘉裕花园3栋四楼15#’);
INSERT INTO t_user VALUES (‘2’, ‘王云华’, ‘30’, ‘纳溪区大渡镇红鱼村三大队’);
INSERT INTO t_user VALUES (‘3’, ‘郑小翠’, ‘21’, ‘江阳区老窖花园2栋五楼15号’);

一、基于配置文件方式使用MyBatis基本使用
1.1 创建Maven项目 - MyBatisDemo

1.2 在pom文件里添加相应的依赖

<dependencies>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.6</version>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.49</version>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.2</version>
    </dependency>

    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
</dependencies>

查看下载到本地的jar包

1.3 创建与用户表对应的用户实体类 - User

package cn.kox.mybatis.bean;

/**

  • @ClassName: User

  • @Author: Kox

  • @Data: 2023/3/29

  • @Sketch:
    */
    public class User {
    private int id;
    private String name;
    private int age;
    private String address;

    public int getId() {
    return id;
    }

    public void setId(int id) {
    this.id = id;
    }

    public String getName() {
    return name;
    }

    public void setName(String name) {
    this.name = name;
    }

    public int getAge() {
    return age;
    }

    public void setAge(int age) {
    this.age = age;
    }

    public String getAddress() {
    return address;
    }

    public void setAddress(String address) {
    this.address = address;
    }

    @Override
    public String toString() {
    return “User{” +
    “id=” + id +
    “, name='” + name + ‘’’ +
    “, age=” + age +
    “, address='” + address + ‘’’ +
    ‘}’;
    }
    }

1.4 创建用户映射配置器文件
在resources中创建mapper目录,然后在里面创建实体关系映射配置文件 - UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?> SELECT * FROM t_user WHERE id = #{id};
<!--查询全部用户记录-->
<select id="findAll" resultType="User">
    SELECT * FROM t_user;
</select>

1.5 创建MyBatis配置文件
在resources目录里创建mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!--配置数据库环境-->
<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://localhost:3306/testdb?useSSL=false"/>
            <property name="username" value="root"/>
            <property name="password" value="qwer1234"/>
        </dataSource>
    </environment>
</environments>

<!--配置实体关系映射器文件-->
<mappers>
    <mapper resource="mapper/UserMapper.xml"/>
</mappers>

1.6 创建日志属性文件
在resources目录里创建log4j.properties文件

log4j.rootLogger=WARN, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/mybatis.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

1.7 创建测试类测试用户操作
1.7.1 创建测试类 - TestUserOperation
在test/java目录里创建cn.kox.mybatis.bean包,然后在包里创建测试类 - TestUserOperation

package cn.kox.mybatis.bean;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.io.IOException;
import java.io.Reader;
import java.util.List;

/**

  • @ClassName: TestUserOperation

  • @Author: Kox

  • @Data: 2023/3/29

  • @Sketch: 测试用户操作
    */
    public class TestUserOperation {
    private SqlSession sqlSession; // SQL接口会话

    @Before
    public void init() {
    try {
    // 读取MyBatis配置文件
    Reader reader = Resources.getResourceAsReader(“mybatis-config.xml”);
    // 基于MyBatis配置文件构建SQL会话工厂
    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
    // 利用SQL会话工厂获取SQL会话
    sqlSession = factory.openSession();
    // 提示用户SQL会话创建成功
    System.out.println(“SQL会话创建成功😋”);
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    @Test // 测试按编号查询用户记录
    public void testFindById() {
    int id = 1;
    // 利用SQL会话执行SQL语句进行查询,返回查询结果
    User user = sqlSession.selectOne(“cn.kox.mybatis.mapper.UserMapper.findById”, id);
    // 判断查询是否成功
    if (user != null) {
    System.out.println(user);
    } else {
    System.out.println(“编号为[” + id + “]的用户未找到😥”);
    }
    }

    @Test // 测试查询全部用户记录
    public void testFindAll() {
    // 利用SQL会话执行SQL语句进行查询,返回查询结果
    List users = sqlSession.selectList(“cn.kox.mybatis.mapper.UserMapper.findAll”);
    // 输出全部用户信息
    users.forEach(System.out::println);
    }

    @After
    public void destroy() {
    // 关闭SQL会话
    sqlSession.close();
    // 提示用户SQL会话关闭
    System.out.println(“SQL会话已经关闭🤐”);
    }
    }

1.7.2 运行测试方法 - testFindById()

1.7.3 运行测试方法 - testFindAll()

二、采用接口方式使用MyBatis
2.1 创建用户映射器接口
创建cn.kox.mybatis.mapper包,然后在包里创建用户映射器接口 - UserMapper

package cn.kox.mybatis.mapper;

import cn.kox.mybatis.bean.User;

import java.util.List;

public interface UserMapper {
User findById(int id); // 按编号查询用户记录
List findAll(); // 查询全部用户记录
}

注意:UserMapper接口的完整路路径(包名+接口名)必须是元素的namespace属性值
2.2 测试用户映射器接口
2.2.1 创建用户映射器接口测试类
在test/java里创建cn.kox.mybatis.mapper包,然后在包里创建测试类 - TestUserMapper

package cn.kox.mybatis.mapper;

import cn.kox.mybatis.bean.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.io.IOException;
import java.io.Reader;
import java.util.List;

/**

  • @ClassName: TestUserMapper

  • @Author: Kox

  • @Data: 2023/4/12

  • @Sketch:
    */
    public class TestUserMapper {
    private SqlSession sqlSession; // SQL会话
    private UserMapper userMapper; // 用户映射器

    @Before
    public void init() {
    try {
    // 读取MyBatis配置文件
    Reader reader = Resources.getResourceAsReader(“mybatis-config.xml”);
    // 基于MyBatis配置文件构建SQL会话工厂
    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
    // 利用SQL会话工厂获取SQL会话
    sqlSession = factory.openSession();
    // 利用SQL会话获取用户映射器对象
    userMapper = sqlSession.getMapper(UserMapper.class);
    // 提示用户SQL会话创建成功
    System.out.println(“SQL会话创建成功~”);
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    @Test // 测试按编号查询用户记录
    public void testFindById() {
    int id = 1;
    // 调用用户映射器的查询方法
    User user = userMapper.findById(id);
    // 判断查询是否成功
    if (user != null) {
    System.out.println(user);
    } else {
    System.out.println(“编号为[” + id + “]的用户未找到~”);
    }
    }

    @Test // 测试查询全部用户记录
    public void testFindAll() {
    // 调用用户映射器的查询方法
    List users = userMapper.findAll();
    // 输出全部用户信息(采用了列表的遍历算子与Lambda表达式)
    users.forEach(user -> System.out.println(user));
    }

    @After
    public void destroy() {
    // 关闭SQL会话
    sqlSession.close();
    // 提示用户SQL会话关闭
    System.out.println(“SQL会话已经关闭~”);
    }
    }

2.2.2 测试按编号查询用户记录
运行测试方法 - testFindById()

2.2.3 测试查询全部用户记录

三、利用配置类与注解方式使用MyBatis
3.1 创建MyBatis配置类
在cn.kox.mybatis包里创建config子包,然后在子包里创建MyBatisConfig类

package cn.kox.mybatis.config;

import org.apache.ibatis.datasource.pooled.PooledDataSource;
import org.apache.ibatis.mapping.Environment;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.transaction.TransactionFactory;
import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;

import javax.sql.DataSource;

/**

  • @ClassName: MyBatisConfig
  • @Author: Kox
  • @Data: 2023/4/12
  • @Sketch:
    */
    public class MyBatisConfig {
    // 获取MyBatis配置对象
    public static Configuration getConfiguration() {
    // 声明配置对象
    Configuration configuration = null;
    // 创建JDBC事务管理器
    TransactionFactory transactionFactory = new JdbcTransactionFactory();
    // 创建数据源
    DataSource dataSource = new PooledDataSource(
    “com.mysql.jdbc.Driver”,
    “jdbc:mysql://localhost:3306/testdb?useSSL=false”,
    “root”,
    “qwer1234”
    );
    // 创建数据库环境
    Environment environment = new Environment(“development”, transactionFactory, dataSource);
    // 基于数据库环境创建配置对象
    configuration = new Configuration(environment);
    // 返回配置对象
    return configuration;
    }
    }

3.2 创建新的用户映射器接口测试类
在test/java的cn.kox.mybatis.mapper包里创建TestUserMapperNew类

package cn.kox.mybatis.mapper;

import cn.kox.mybatis.bean.User;
import cn.kox.mybatis.config.MyBatisConfig;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.util.List;

/**

  • @ClassName: TestUserMapperNew

  • @Author: Kox

  • @Data: 2023/4/12

  • @Sketch:
    */
    public class TestUserMapperNew {
    private SqlSession sqlSession; // SQL会话
    private UserMapper userMapper; // 用户映射器

    @Before
    public void init() {
    // 获取MyBatis配置对象
    Configuration configuration = MyBatisConfig.getConfiguration();
    // 添加用户映射器接口
    configuration.addMapper(UserMapper.class);
    // 基于配置对象构建SQL会话工厂
    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(configuration);
    // 利用SQL会话工厂获取SQL会话
    sqlSession = factory.openSession();
    // 利用SQL会话获取用户映射器对象
    userMapper = sqlSession.getMapper(UserMapper.class);
    // 提示用户SQL会话创建成功
    System.out.println(“SQL会话创建成功~”);

    }

    @Test // 测试按编号查询用户记录
    public void testFindById() {
    int id = 1;
    // 调用用户映射器的查询方法
    User user = userMapper.findById(id);
    // 判断查询是否成功
    if (user != null) {
    System.out.println(user);
    } else {
    System.out.println(“编号为[” + id + “]的用户未找到~”);
    }
    }

    @Test // 测试查询全部用户记录
    public void testFindAll() {
    // 调用用户映射器的查询方法
    List users = userMapper.findAll();
    // 输出全部用户信息(采用了列表的遍历算子与Lambda表达式)
    users.forEach(user -> System.out.println(user));
    }

    @After
    public void destroy() {
    // 关闭SQL会话
    sqlSession.close();
    // 提示用户SQL会话关闭
    System.out.println(“SQL会话已经关闭~”);
    }
    }

3.3 修改用户映射器接口
用户映射器接口 - UserMapper

package cn.kox.mybatis.mapper;

import cn.kox.mybatis.bean.User;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface UserMapper {
@Select(“SELECT * FROM t_user WHERE id = #{id}”)
User findById(int id); // 按编号查询用户记录
@Select(“SELECT * FROM t_user”)
List findAll(); // 查询全部用户记录
}

3.4 运行新的用户映射器接口测试类
运行测试方法testFindById(),查看结果

运行测试方法testFindAll(),查看结果文章来源地址https://www.toymoban.com/news/detail-487991.html

到了这里,关于Java企业级开发学习笔记(2.1)MyBatis实现简单查询的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SSM框架的学习与应用(Spring + Spring MVC + MyBatis)-Java EE企业级应用开发学习记录(第三天)动态SQL

    昨天我们深入学习了 Mybatis的核心对象SqlSessionFactoryBuilder , 掌握MyBatis核心配置文件以及元素的使用 ,也掌握MyBatis映射文件及其元素的使用。那么今天我们需要掌握的是更加复杂的查询操作。 学会编写MyBatis中动态SQL 学会MyBatis的条件查询操作 学会MyBatis的更新操作 学会MyBati

    2024年02月11日
    浏览(52)
  • (第六天)初识Spring框架-SSM框架的学习与应用(Spring + Spring MVC + MyBatis)-Java EE企业级应用开发学习记录

    ​ 昨天我们已经把Mybatis框架的基本知识全部学完,内容有Mybatis是一个半自动化的持久层ORM框架,深入学习编写动态SQL,Mybatis的关联映射,一对一、一对多、多对多、Mybatis的缓存机制,一二级缓存的开启和设置,缓存命中率、如何使用idea链接数据库自动生成pojo类等。我们学

    2024年02月10日
    浏览(67)
  • (第十一天)初识SpringMVC SSM框架的学习与应用(Spring + Spring MVC + MyBatis)-Java EE企业级应用开发学习记录

    今天我们要来学习一下SSM框架的最后一个框架SpringMVC 一、初认SpringMVC 基本概念: ​ Spring MVC(Model-View-Controller)是一个用于构建Java Web应用程序的开源框架,它提供了一种基于MVC架构的方式来开发Web应用 。 ​ SpringMVC是Spring Framework的一部分,它是一种基于模型-视图-控制器(

    2024年02月07日
    浏览(72)
  • Java企业级信息系统开发学习笔记(4.2)Spring Boot项目单元测试、热部署与原理分析

    该文章主要为完成实训任务,详细实现过程及结果见【http://t.csdn.cn/pG623】 1. 添加测试依赖启动器和单元测试 修改pom.xml文件,添加依赖 刷新项目依赖 2. 创建测试类与测试方法 在 src/test/java 里创建 cn.kox.boot 包,创建测试类 TestHelloWorld01 给测试类添加测试启动器注解与Spring

    2024年02月10日
    浏览(57)
  • Java:企业级java后端开发,需要掌握哪些内容

    一、什么是后端开发 后端开发是指开发基于服务器端的软件应用程序,也称为系统的后台或服务器端编程。 后端程序员负责处理网站或应用程序后台的逻辑和功能,包括数据库管理、服务器端脚本编写、API设计、数据安全性、网站性能优化等。 后端开发技术通常包括网络协

    2024年01月24日
    浏览(54)
  • Java EE 企业级应用开发教程题库(第二版)

      Java EE这是一门偏向于实践的课,奈何考试理论居多。一学期想搞懂三个框架,嘿嘿,难哦!如果你是大一大二的同学,认认真真学习,真的有用。如果你是大三的同学,像就业并且走这个方向的同学,也认真学习。如果你大三考研的同学,自己安排时间。这里是我平时的

    2024年02月09日
    浏览(46)
  • Java EE企业级应用开发(SSM)第9章

    1.MyBatis框架的特点 1-1.简单易学 1-2.灵活 1-3.提供映射标签 2.MyBatis核心类 2-1.Configuration 2-2.SqlSessionFactory 2-3.SqlSession 2-4.Exector 2-5.MappedStatement 3.MyBatis工作流程 4.Mybatis入门程序 4-0:导入jar包资源 4-1:编写实体类 4-2:编写mapper接口以及映射文件 4-3:编写mybatis-config配置文件 4-4:编

    2024年02月04日
    浏览(50)
  • Java EE企业级应用开发(SSM)第10章

    1.第九章的细节处理 1-1.mappers标签中的配置 1-2.jdbc属性文件的配置 1-3.包的别名配置 2.Mybatis核心配置文件 2-1:settings标签(P145-146中的表10-1) 2-2.类型别名 3.Mybatis映射文件 3-1:insert、update、delete元素属性 3-2:select元素 3-3:ResultMap详解 ResultMap详解 4.动态SQL 4-1:if 注意模糊查询

    2024年02月03日
    浏览(49)
  • Java EE企业级应用开发(SSM)第6章

    1.Spring MVC的请求参数 项目的基础配置 web.xml springmvc-config.xml jar包资源引入: 1-1:获取默认参数 jsp页面如下: Controller如下: 1-2:简单数据类型(获取数据不同,只展示Controller) 1-3:注解配置参数名(RequestParam) 2.Spring MVC的请求响应 2-1:响应ModelAndView:返回数据和页面 2-2:响

    2023年04月18日
    浏览(54)
  • Github标星98k,企业级Spring Boot项目开发实战笔记,太强了

    准备又快到了明年金三银四招聘高峰期的时间,虽然这两年因为疫情以及经济环境不太好,互联网行业的各大厂都在裁员,但是今年下半年Java行情在慢慢的复苏,在慢慢的变好。 随着上半年病态卷的常态在慢慢的退去,互联网公司在经过了一轮的裁员筛选筛选调整后,下半

    2024年02月05日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包