mybatis基础学习小记

mybatis基础应用学习记录

  • 1.创建项目
    • 创建一个maven项目
  • 2. 配置mybatis
    • xml配置文件
  • 3.相关代码
  • 4.使用mybatis
  • 5.到此mybatis入门使用就算完结了,后续还得多多学习更深的应用技巧。
  • 6.完整java代码贴出(大佬勿喷,本屌丝萌新一个)

1.创建项目

创建一个maven项目

1.File-New-ProjectFile-New-Project
2.mybatis基础学习小记_第1张图片
3.一路next下去就好mybatis基础学习小记_第2张图片
4.在pom.xml文件中加入以下代码:

    
    
    <dependency>
      <groupId>org.mybatisgroupId>
      <artifactId>mybatisartifactId>
      <version>3.4.6version>
    dependency>
    
    
    <dependency>
      <groupId>mysqlgroupId>
      <artifactId>mysql-connector-javaartifactId>
      <version>8.0.13version>
    dependency>

5.项目结构如图所示(初学者,大佬勿喷)
mybatis基础学习小记_第3张图片

2. 配置mybatis

xml配置文件

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

mybatis基础学习小记_第4张图片
3.将其拿出放入项目中
mybatis基础学习小记_第5张图片
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.数据库如图所示
mybatis基础学习小记_第6张图片

你可能感兴趣的:(java)