mybaits输出helloworld-------mybatis(二)

2024-05-17 16:32

本文主要是介绍mybaits输出helloworld-------mybatis(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

mybatis输出helloworld

  1. 创建数据库(临时学习的话,建议使用docker)
  • 这里存在一个误区,虽然容器的3306已经映射到主机3306,但是扔不能使用连接命令直接在物理机进行
    连接,需要使用docker exec -it 容器名 /bin/bash 进入容器内部进行连接
    在这里插入图片描述
  1. 测试数据库是否能正常连接,编辑完成之后,最好测试一下
  • 常见误区:由于使用的是腾讯云服务器,所以腾讯云的安全组中没有编辑3306为开放端口之前,
    用户是无法通过3306端口连接数据库的,可以按照下图二进行入栈配置。
    在这里插入图片描述
    在这里插入图片描述
  1. 创建项目
  • 这里简单说明一下,mybatis实质上是通过配置文件来构建对象,将数据库中的每一条数据和我们代码中的实体类进项一一对应,从而达到通过操作实体类来对数据库进行操作的目的,可能说法有点问题,但我一直是这么理解的!
    在这里插入图片描述
    4.编写配置文件 configuration.xml,mybaits.properties,BlogMapper.xml,log4j.properties
    • configuration文件的主要作用是对mybaits的相关规则进项限制,稍后我会继续在下一篇博客细说,
      此处大家稍微浏览一下照搬就可以了!
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--通过properties配置将对应配置信息注入到config文件中 -->
<properties resource="source/mybatis.properties"></properties>
<settings><setting name="mapUnderscoreToCamelCase" value="true"/><setting name="logPrefix" value="[MybatisLogs]" /><setting name="defaultStatementTimeout" value="1" />
</settings>
<environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment>
</environments>
<mappers><!--在全局配置文件中注册映射文件 --><mapper resource="source/BlogMapper.xml"/>
</mappers>
</configuration>
  • mybatis.properties配置文件,主要是为了解耦,
    将数据库的主要信息单独维护,从而减小configuration文件的同事,
    若有多个数据库配置,也方便进行更换。
  jdbc.driver=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://你的服务器IP:3306/mybatis_database?characterEncoding=utf-8jdbc.username=rootjdbc.password=root
  • BlogMapper.xml 文件主要负责将实体类映射到数据库中
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="dao.BlogerMapper"><select id="getBlogerId" resultType="Bloger">select * from mybatis_test where id = #{id}</select>
</mapper>
  • log4j.properties 主要定义的是各种运行输出信息,调试信息和错误信息,各位可根据实际需要修改到对应的目录
log4j.rootLogger = debug,stdout,D,E
###̧ 输出信息
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n### 调试信息
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = F://logs/debug.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n### 错误信息
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =F://logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]

5.编写java文件

  • 实体类:Bloger.java,为了方便查看结果,这里我们重写toString
package model;
import org.apache.ibatis.type.Alias;public class Bloger {private Integer id;private String name;private String username;private int age;private String email;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}@Overridepublic String toString() {return "BlogId:"+ getId()+ "  BlogName:"+getName()+ "  UserName:" + getUsername();}
}
  • 编写接口文件 BlogMapper.java
package dao;
import model.Bloger;public interface BlogerMapper {//通过接口方法 getBlogerId(Integer id)返回一个实体对象public Bloger getBlogerId(Integer id);
}
  • 编写测试文件 MybatisDriver.java
    在这里插入图片描述
package test;import dao.BlogerMapper;
import model.Bloger;
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 java.io.IOException;
import java.io.InputStream;/***  auth:wujianqinjian*  mybatis流程:*              1   创建全局配置文件    configuration.xml*              2   创建 sql 映射文件   BlogMapper.xml*              3   将全局文件中维护 sql映射文件配置*              4   调用java API  执行相关sql操作*              -   注意sqlSession是线程非安全的*/
public class MybatisDriver {public static void main(String[] args) throws Exception{testProxyObject();}//这里建议看下官方文档(上图),对象的作用域需要额外注意一下public static SqlSessionFactory getSqlSessionFactory() throws IOException {String resource = "source/configuration.xml";InputStream inputStream= Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory= new SqlSessionFactoryBuilder().build(inputStream);return sqlSessionFactory;}public static void testProxyObject() throws IOException{// 获取SqlSessionFactory对象SqlSessionFactory sqlSessionFactory=getSqlSessionFactory();// 获取回话对象SqlSession sqlSession=sqlSessionFactory.openSession();// 这里MyBaitis帮我们创建了代理对象BlogerMapper blogerMapper =sqlSession.getMapper(BlogerMapper.class);Bloger blogerId=blogerMapper.getBlogerId(1);System.out.println(blogerId);sqlSession.close();}
}
总结:Mybaits其实就是通过各种配置文件,将我们的实体与数据库中的记录进行一一映射,通过在java文件调用Mybatis相关API,从而达到调用映射文件(一般都叫做mapper.xml)中的sql语句,从而避免了我们直接在java代码中插入大量sql语句的问题,解耦的同时,也提升代码的可读性、可扩展性!

最后,建了一个微信群,本来想大家一起共同学习,但学习气氛好像目前还不算特别好,加群主微信进群!
最后,建了一个微信群,本来想大家一起共同学习,但学习气氛好像目前还不算特别好,加群主微信进群!(由于广告太多,所以请先点赞,然后发博客名!)
在这里插入图片描述

这篇关于mybaits输出helloworld-------mybatis(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/995592

相关文章

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

顺序表之创建,判满,插入,输出

文章目录 🍊自我介绍🍊创建一个空的顺序表,为结构体在堆区分配空间🍊插入数据🍊输出数据🍊判断顺序表是否满了,满了返回值1,否则返回0🍊main函数 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~ 🍊自我介绍   Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾”

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

Spring+MyBatis+jeasyui 功能树列表

java代码@EnablePaging@RequestMapping(value = "/queryFunctionList.html")@ResponseBodypublic Map<String, Object> queryFunctionList() {String parentId = "";List<FunctionDisplay> tables = query(parent

Mybatis中的like查询

<if test="templateName != null and templateName != ''">AND template_name LIKE CONCAT('%',#{templateName,jdbcType=VARCHAR},'%')</if>

JavaWeb【day09】--(Mybatis)

1. Mybatis基础操作 学习完mybatis入门后,我们继续学习mybatis基础操作。 1.1 需求 需求说明: 根据资料中提供的《tlias智能学习辅助系统》页面原型及需求,完成员工管理的需求开发。 通过分析以上的页面原型和需求,我们确定了功能列表: 查询 根据主键ID查询 条件查询 新增 更新 删除 根据主键ID删除 根据主键ID批量删除

MyBatis 切换不同的类型数据库方案

下属案例例当前结合SpringBoot 配置进行讲解。 背景: 实现一个工程里面在部署阶段支持切换不同类型数据库支持。 方案一 数据源配置 关键代码(是什么数据库,该怎么配就怎么配) spring:datasource:name: test# 使用druid数据源type: com.alibaba.druid.pool.DruidDataSource# @需要修改 数据库连接及驱动u

如何将一个文件里不包含某个字符的行输出到另一个文件?

第一种: grep -v 'string' filename > newfilenamegrep -v 'string' filename >> newfilename 第二种: sed -n '/string/!'p filename > newfilenamesed -n '/string/!'p filename >> newfilename

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录 在深度学习项目中,目标检测是一项重要的任务。本文将详细介绍如何使用Detectron2进行目标检测模型的复现训练,涵盖训练数据准备、训练命令、训练日志分析、训练指标以及训练输出目录的各个文件及其作用。特别地,我们将演示在训练过程中出现中断后,如何使用 resume 功能继续训练,并将我们复现的模型与Model Zoo中的

第六章习题11.输出以下图形

🌏个人博客:尹蓝锐的博客 希望文章能够给到初学的你一些启发~ 如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏支持一下笔者吧~ 1、题目要求: 输出以下图形