mybatis基础学习小记

本文详细介绍MyBatis基础应用,包括Maven项目创建、XML配置文件设置、代码实现及数据库操作。涵盖mybatis核心包与数据库驱动集成、环境配置、SQL映射及Java代码执行流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.创建项目

创建一个maven项目

1.File-New-ProjectFile-New-Project
2.3步走
3.一路next下去就好一路NEXT、
4.在pom.xml文件中加入以下代码:

    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <!-- 这是mybatis核心包 -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.6</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <!-- 这是java数据库连接驱动 -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.13</version>
    </dependency>

5.项目结构如图所示(初学者,大佬勿喷)
项目结构

2. 配置mybatis

xml配置文件

1.下载mybatis源码包 https://github.com/mybatis/mybatis-3/releases
2.mybatis有两个配置文件,其在源码包中的位置如图所示

配置xml文件
3.将其拿出放入项目中
xml
4. Configuration.xml解析(xml文件名可以自定义)

  • 配置一个别名,使用时可以直接用别名
 <typeAliases>
    <typeAlias alias="User" type="cn.wx.xx.utils.User"/>
  </typeAliases>
  • 数据库配置,使用的是mysql数据库
 <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC">
        <property name="" value=""/>
      </transactionManager>
      <dataSource type="UNPOOLED">
        <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/accounts"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
      </dataSource>
    </environment>
  </environments>
  • 加载数据库操作相关的配置文件,可以加载多个xml文件
  <mappers>
  <mapper resource="User.xml"/>
</mappers>

5.User.xml文件解析(xml文件名可以自定义)

  • 命名空间,相当于给这个xml文件命名,以本配置为例,后面调用时,使用User.xxx调用xml里面的配置
<mapper namespace="User">
  • 关系映射
    • 第一行:type标签指向User类,id则是为这个resultMap定义一个名字
    • 第二行:id代表本条配置在数据库中是主键。column标签的值对应数据库里的列,jdbcType对应数据库里本列的类型,property对应User类中的值。
    • 第三行:result代表本条配置在数据库中不是主键,剩余配置同上
  <resultMap type="cn.wx.xx.utils.User" id="User">
   <id column="UID" jdbcType="INTEGER" property="id"/>
   <result column="accountname" jdbcType="VARCHAR" property="accountname"/>
   <result column="password" jdbcType="VARCHAR" property="password"/>
   <result column="email" jdbcType="VARCHAR" property="email"/>
   <result column="status" jdbcType="VARCHAR" property="status"/>
   <result column="code" jdbcType="VARCHAR" property="code"/>
 </resultMap>
  • 数据库操作,SQL语句
    • 第一行:select,表示查询(其他标签还有如delete、insert、update)。id表示这条配置的名字,在这一个配置文件中,id是唯一的,使用时,以命名空间.id调用,即本例为User.findName。parameterType是指传入的值类型。resultType是返回值的类型
    • 第二行:#{id}是需要拼接的值
  <select id="findName" parameterType="int" resultType="User" >
    select * from accounts where UID = #{id}
  </select>

3.相关代码

1.User.java代码

package cn.wx.xx.utils;

public class User {
    private int id;
    private String accountname;
    private String password;
    private String email;
    private String status;
    private String code;
    /*
    *get and set 方法省略
    */

4.使用mybatis

1.读取配置文件

Reader reader =  Resources.getResourceAsReader("Configuration.xml");

2.使用SqlSessionFactory获取连接

SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);

3.打开一个连接会话

SqlSession sqlSession = sqlSessionFactory.openSession();

4.获取session

con = sqlSession.getSqlSession();

5.通过Sqlsession执行sql语句,并保存到User对象

User user = new User();
user = sqlSession.selectOne("User.findName",24);
/*两个参数,第一个是使用‘命名空间.id’调用xml中sql语句的配置
*第二个参数,是xml中,#{id}需要的值
*/

5.到此mybatis入门使用就算完结了,后续还得多多学习更深的应用技巧。

6.完整java代码贴出(大佬勿喷,本屌丝萌新一个)

1.mysqlcon.java

package cn.wx.xx.dao;

import cn.wx.xx.utils.User;
import cn.wx.xx.utils.mysqlCon;
import org.apache.ibatis.session.SqlSession;


import java.io.IOException;

public class testmysql {
    public User cxinfo(){
        mysqlCon con = new mysqlCon();

        SqlSession sqlSession =null;
        User user = new User();
        try {
            sqlSession = con.getSqlSession();
            //通过Sqlsession执行sql语句
            user = sqlSession.selectOne("User.findName",24);
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if(sqlSession != null){
                sqlSession.close();
            }
        }
        System.out.println(user.getAccountname());
        return user;
    }

    public static void main(String[] args) {
        testmysql t = new testmysql();
        User user;

        user = t.cxinfo();
        System.out.println(user.getEmail());
    }
}

2.testmysql.java

package cn.wx.xx.dao;

import cn.wx.xx.utils.User;
import cn.wx.xx.utils.mysqlCon;
import org.apache.ibatis.session.SqlSession;


import java.io.IOException;

public class testmysql {
    public User cxinfo(){
        mysqlCon con = new mysqlCon();

        SqlSession sqlSession =null;
        User user = new User();
        try {
            sqlSession = con.getSqlSession();
            //通过Sqlsession执行sql语句
            user = sqlSession.selectOne("User.findName",24);
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if(sqlSession != null){
                sqlSession.close();
            }
        }
        System.out.println(user.getAccountname());
        return user;
    }

    public static void main(String[] args) {
        testmysql t = new testmysql();
        User user;

        user = t.cxinfo();
        System.out.println(user.getEmail());
    }
}

3.User.java

package cn.wx.xx.utils;

public class User {
    private int id;
    private String accountname;
    private String password;
    private String email;
    private String status;
    private String code;

    public int getId() { return id; }
    public void setId(int id) { this.id = id; }
    public String getAccountname() { return accountname;  }
    public void setAccountname(String accountname) { this.accountname = accountname;  }
    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;  }
    public String getStatus() { return status; }
    public void setStatus(String status) { this.status = status; }
    public String getCode() { return code;  }
    public void setCode(String code) { this.code = code; }
}

4.数据库如图所示
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值