idea搭建Mybatis简单demo的详细解释

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: idea搭建Mybatis简单demo的详细解释

#### 我们建一个用户账户、密码的crud

新建maven工程,pom.xml添加相关依赖:




```java

<dependencies>


   <dependency>

       <groupId>org.mybatis</groupId>

       <artifactId>mybaties</artifactId>

       <version>3.4.5</version>

   </dependency>


   <dependency>

       <groupId>mysql</groupId>

       <artifactId>mysql-connector-java</artifactId>

       <version>8.0.19</version>

   </dependency>


<dependency>

   <groupId>org.projectlombok</groupId>

   <artifactId>lombok</artifactId>

   <version>1.18.12</version>

   <scope>provided</scope>

</dependency>


</dependencies>

```




创建表


```sql

create table t_account(

    id int primary key auto_increment,

  username varchar(11),

   password varchar(11),

  age int);

```


 




新建数据表对应的实体类Account


```java

@Data

public class Account {

   private long id;

   private String username;

   private String password;

   private int age;

}

```


创建MyBatis的配置文件 config.xml,文件名可自定义


```java

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE configuration

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

<!-- 通过environments的default值和environment的id来指定Mybatis运行时的数据库环境 -->

 <environments default="development">

 <!-- 开发环境(自己的计算机) -->

  <environment id="development">

 

   <!-- 事务提交分式:

   JDBC:利用JDBC方式处理事务(commit rollback close)

   MANAGED:将事务交由其他组件去托管(spring,jobss),默认会关闭连接

    -->

   <transactionManager type="JDBC"/>

    <!-- 数据源类型:

    UNPOOLED:传统的JDBC模式(每次访问数据库,均需要打开、关闭等数据库操作,但打开、关闭数据库是比较消耗性能的)

    POOLED:使用数据库连接池

    JNDI:从tomcat中获取一个内置的数据库连接池(数据库连接池-数据源)

     -->

 

   <dataSource type="POOLED">

   <!-- 配置数据库信息 -->

    <property name="driver" value="com.mysql.jdbc.Driver"/>

    <property name="url" value="jdbc:mysql://localhost:3306/test"/>

    <property name="username" value="shuang"/>

    <property name="password" value="mysql215311?"/>

   </dataSource>

  </environment>

 <!-- 服务器 -->  

  <environment id="test">

   <transactionManager type="JDBC"/>

   <dataSource type="POOLED">

   <!-- 配置数据库信息 -->

    <property name="driver" value="com.mysql.jdbc.Driver"/>

    <property name="url" value="jdbc:mysql://localhost:3306/test"/>

    <property name="username" value="shuang"/>

    <property name="password" value="mysql215311?"/>

   </dataSource>

  </environment>

 </environments>

 

       

</configuration>

```


使用原生接口

1,MyBatis框架需要开发者自定义SQL语句,写在Mapper.xml文件中,实际开发中,会为每个实体类创建对应的Mapper.xml,定义管理该对象数据的SQL


```java

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper

       PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

       "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.shuang.mapper.AccountMapper">

   <insert id="save" parameterType="com.shuang.entity.Account">

       insert into t_account(username,password,age) values(#{usernaem},#{password},#{age});

   </insert>

</mapper>

```


namespace通常设置为文件所在包+文件名的形式

id是实际调用MyBatis方法时需要用到的参数

paramentType是调用对应方法时的参数类型

2,在全局配置文件config.xml中注册AccountMapper.xml文件


```java

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE configuration

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

<!-- 通过environments的default值和environment的id来指定Mybatis运行时的数据库环境 -->

 <environments default="development">

 <!-- 开发环境(自己的计算机) -->

  <environment id="development">

 

   <!-- 事务提交分式:

   JDBC:利用JDBC方式处理事务(commit rollback close)

   MANAGED:将事务交由其他组件去托管(spring,jobss),默认会关闭连接

    -->

   <transactionManager type="JDBC"/>

    <!-- 数据源类型:

    UNPOOLED:传统的JDBC模式(每次访问数据库,均需要打开、关闭等数据库操作,但打开、关闭数据库是比较消耗性能的)

    POOLED:使用数据库连接池

    JNDI:从tomcat中获取一个内置的数据库连接池(数据库连接池-数据源)

     -->

 

   <dataSource type="POOLED">

   <!-- 配置数据库信息 -->

    <property name="driver" value="com.mysql.jdbc.Driver"/>

    <property name="url" value="jdbc:mysql://localhost:3306/test"/>

    <property name="username" value="shuang"/>

    <property name="password" value="mysql215311?"/>

   </dataSource>

  </environment>

 <!-- 服务器 -->  

  <environment id="test">

   <transactionManager type="JDBC"/>

   <dataSource type="POOLED">

   <!-- 配置数据库信息 -->

    <property name="driver" value="com.mysql.jdbc.Driver"/>

    <property name="url" value="jdbc:mysql://localhost:3306/test"/>

    <property name="username" value="shuang"/>

    <property name="password" value="mysql215311?"/>

   </dataSource>

  </environment>

 </environments>

 

          <!--注册AccountMapper.xml -->

 <mappers>

     <!--加载映射文件  -->

     <mapper resource="org/sample/entity/personMapper.xml"/>

 </mappers>

</configuration>

```


3,调用MyBatis的原生接口,来执行添加操作


```java

public class Test {

   public static void main(String [] args){

       //加载MyBaties配置文件

       InputStream inputStream=Test.class.getResourceAsStream("config.xml");

       SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();

       SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(inputStream);

       SqlSession sqlSession=sqlSessionFactory.openSession();

//      通过config.xml里面的namespace+id来确定执行的语句

       String statement="com.shuang.mapper.AccountMapper.save";

       Account account=new Account(1L,"张三","123123",23);

       sqlSession.insert(statement,account);

       sqlSession.commit();

   }

}

```

好了,增加完成了,其余类推




相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
5月前
|
SQL IDE Java
IDEA控制台如何查看格式化的SQL(MyBatis Log插件)
IDEA控制台如何查看格式化的SQL(MyBatis Log插件)
290 0
|
5月前
|
SQL XML Java
解决关于在idea使用Mybatis时, 编写xml的动态sql语句背景高亮不舒服问题
解决关于在idea使用Mybatis时, 编写xml的动态sql语句背景高亮不舒服问题
474 0
|
2月前
|
前端开发 Java 数据库连接
Springboot-MyBatis配置-配置端口号与服务路径(idea社区版2023.1.4+apache-maven-3.9.3-bin)
Springboot-MyBatis配置-配置端口号与服务路径(idea社区版2023.1.4+apache-maven-3.9.3-bin)
33 0
|
4月前
|
XML SQL Java
ClickHouse【SpringBoot集成】clickhouse+mybatis-plus配置及使用问题说明(含建表语句、demo源码、测试说明)
ClickHouse【SpringBoot集成】clickhouse+mybatis-plus配置及使用问题说明(含建表语句、demo源码、测试说明)
146 0
|
28天前
|
Java 关系型数据库 MySQL
springboot+mybatis-plus实例demo
springboot+mybatis-plus实例demo
28 0
|
1月前
|
前端开发 JavaScript Java
springboot+mybatis plus+vue+elementui+axios 表格分页查询demo
springboot+mybatis plus+vue+elementui+axios 表格分页查询demo
32 0
|
1月前
|
前端开发 Java Maven
java集成opencv(不踩坑),实现人脸检测小demo(含上传人像图片识别接口),windows,IDEA,Springboot
java集成opencv(不踩坑),实现人脸检测小demo(含上传人像图片识别接口),windows,IDEA,Springboot
165 0
|
4月前
|
SQL Java 关系型数据库
在IDEA中配置MySQL数据库连接以及在使用mybatis时设置sql语句的代码提示功能
在IDEA中配置MySQL数据库连接以及在使用mybatis时设置sql语句的代码提示功能
|
4月前
|
JavaScript 前端开发 Java
Spring Boot中Node.js的下载与Vue CLI在IDEA中的部署及使用(图文解释 简单易懂)
Spring Boot中Node.js的下载与Vue CLI在IDEA中的部署及使用(图文解释 简单易懂)
46 0
|
4月前
|
Java Windows Spring
IDEA中报错:因为在此系统上禁止运行脚本有关详细信息,请参阅...(图文解释 亲测已解决)
IDEA中报错:因为在此系统上禁止运行脚本有关详细信息,请参阅...(图文解释 亲测已解决)
55 0