当前位置: 首页 > news >正文

IDEA创建Mybatis项目

IDEA创建Mybatis项目

第一步:创建库表

-- 创建数据库
create database mybatis_db;-- 使用数据库
use mybatis_db;-- 创建user表
CREATE TABLE user (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL,password VARCHAR(50) NOT NULL,email VARCHAR(100),created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);-- 插入数据
INSERT INTO user (username, password, email) VALUES
('aaa', 'pass1', 'user1@example.com'),
('bbb', 'pass2', 'user2@example.com'),
('ccc', 'pass3', 'user3@example.com');

在这里插入图片描述

第二步:创建项目引入maven依赖

	<!--mybatis依赖--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.4</version></dependency><!--mysql驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version></dependency>

第三步:创建mybatis-config.xml 配置文件

在这里插入图片描述

在这里插入图片描述
在创建好 mybatis-config.xml 中将下面这段内容贴进去,根据项目情况进行修改

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${driver}"/><property name="url" value="${url}"/><property name="username" value="${username}"/><property name="password" value="${password}"/></dataSource></environment></environments><mappers><mapper resource="org/mybatis/example/BlogMapper.xml"/></mappers>
</configuration>

修改内容示例如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><!--驱动--><property name="driver" value="com.mysql.jdbc.Driver"/><!--url,后面是使用的数据库名称--><property name="url" value="jdbc:mysql://localhost:3306/mybatis_db"/><property name="username" value="root"/><property name="password" value="root"/></dataSource></environment></environments>
<!--    <mappers>-->
<!--        <mapper resource="org/mybatis/example/BlogMapper.xml"/>-->
<!--    </mappers>-->
</configuration>

第四步:创建UserDao.xml

在这里插入图片描述

在这里插入图片描述
创建UserDao.xml文件
在这里插入图片描述
创建好UserDao.xml后将mybatis官网中的模板内容粘贴进来,根据项目内容进行修改

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.mybatis.example.BlogMapper"><select id="selectBlog" resultType="Blog">select * from Blog where id = #{id}</select>
</mapper>

修改内容示例如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xu.dao.UserDao"><!--namespace标签为该xml对应的接口全路径--><!--id标签同接口中的方法名findAll--><!--resultType标签标识返回值的类型,这里也要用全路径--><select id="findAll" resultType="com.xu.pojo.User"><!--sql语句-->select * from user</select></mapper>

UserDao 接口类如下:

import java.util.List;public interface UserDao {/*** 查找数据库中所有的用户信息* @return*/List<User> findAll();}

在这里插入图片描述
User类如下:

public class User {/*** id*/private  int id;/*** 用户名*/private String username;/*** 密码*/private String password;/*** 邮箱*/private String email;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", password='" + password + '\'' +", email='" + email + '\'' +'}';}
}

第五步:测试

import com.xu.dao.UserDao;
import com.xu.pojo.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 java.io.IOException;
import java.io.InputStream;
import java.util.List;public class Demo {public static void main(String[] args) throws IOException {//mybatis配置文件的路径String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);//传入对应配置文件的输入流,读取配置文件获得SqlSessionFactory对象SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);//通过SqlSessionFactory,获取SqlSession对象(这里可以理解为是一个数据库连接)SqlSession session = sqlSessionFactory.openSession();//获取UserDao对象UserDao userDao = session.getMapper(UserDao.class);//调用findAll方法List<User> userList = userDao.findAll();for (User user : userList) {System.out.println(user);}//资源关闭,释放资源session.close();}
}

执行结果如下:
在这里插入图片描述
以上便是基于maven对mybatis框架的初步使用步骤,欢迎各位大佬评论区讨论交流~

插曲

如果遇到了下面的异常信息
Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

可以修改数据库连接里面的url,禁用SSL连接即可(useSSL=false)

<property name="url" value="jdbc:mysql://localhost:3306/mybatis_db?useSSL=false"/>

相关文章:

  • 【MySQL】(基础篇五) —— 排序检索数据
  • (亲测有效)推荐2024最新的免费漫画软件app,无广告,聚合全网资源!
  • 地推数据不再迷茫,Xinstall助你一臂之力!
  • Docker与低代码跨平台开发:实现高效跨平台开发的新范式
  • Linux基础(2)基础命令与vim
  • C# WPF入门学习主线篇(十一)—— 布局管理
  • C++和C语言到底有什么区别?
  • Vue2后台管理:项目开发全流程(一)
  • 37、matlab矩阵运算
  • 【Unity】RPG2D龙城纷争(二)关卡、地块
  • 一个简单的R语言数据分析案例
  • centos7.6使用飞鱼FlyFish的docker镜像
  • 【GeoTransformer系列】——数据部分梳理(1)
  • 【源码】Spring Data JPA原理解析之事务注册原理
  • SHELL脚本学习(六) 呈现数据
  • 分享一款快速APP功能测试工具
  • css系列之关于字体的事
  • HTTP中的ETag在移动客户端的应用
  • Joomla 2.x, 3.x useful code cheatsheet
  • React中的“虫洞”——Context
  • Sequelize 中文文档 v4 - Getting started - 入门
  • 代理模式
  • 前端面试题总结
  • 线性表及其算法(java实现)
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • python最赚钱的4个方向,你最心动的是哪个?
  • ​比特币大跌的 2 个原因
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #QT(QCharts绘制曲线)
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • $().each和$.each的区别
  • (11)MSP430F5529 定时器B
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (过滤器)Filter和(监听器)listener
  • (三)mysql_MYSQL(三)
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • (自用)交互协议设计——protobuf序列化
  • .Net 6.0 处理跨域的方式
  • .net 调用海康SDK以及常见的坑解释
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .NET应用架构设计:原则、模式与实践 目录预览
  • 。Net下Windows服务程序开发疑惑
  • @Async 异步注解使用
  • @DataRedisTest测试redis从未如此丝滑
  • [ MSF使用实例 ] 利用永恒之蓝(MS17-010)漏洞导致windows靶机蓝屏并获取靶机权限
  • [ solr入门 ] - 利用solrJ进行检索
  • [BZOJ1010] [HNOI2008] 玩具装箱toy (斜率优化)
  • [C#]DataTable常用操作总结【转】
  • [C#]猫叫人醒老鼠跑 C#的委托及事件