栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

chapter01-hello-mybatis

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

chapter01-hello-mybatis

目录

 实现步骤

 1.pom.xml依赖

2.创建数据库 

3.数据库映射类 

4.sql映射文件

5.mybatis主配置文件

 6

.测试select

 创建Util类

用于创建SqlSession

 使用工具类测试select

测试insert数据


 实现步骤
chapter-hello-mybatis:第一个入门的mybatis例子

实现步骤:
1.新建Student表
2.加入maven的mybatis坐标,mysql驱动的坐标
3.创建实体类,Student---保存表中的一个行数据
4.创建持久层的dao接口,定义操作数据库的方法
5.创建一个mybatis使用的配置文件
    叫做mysql驱动:写sql语句的。一般一个表一个sql映射文件,这个文件是xml文件。
    1.文件写在接口所在的目录中
    2.文件名称和接口保持一致
6.创建mybatis的猪配置文件:
    一个项目就一个主配置文件。
    主配置文件提供数据库的连接信息和sql文件的位置信息
7.创建使用mybatis的类

 1.pom.xml依赖



  4.0.0

  edu.tjdz
  ch01-hello-mybatis
  1.0-SNAPSHOT


  
    UTF-8
    1.8
    1.8
  

  
    
      junit
      junit
      4.11
      test
    


      
          org.mybatis
          mybatis
          3.5.6
      


      
          mysql
          mysql-connector-java
          8.0.25
      

  

  
      
          
              src/main/java  
              
                  ***.xml
              
              
              false
          
      
  

2.创建数据库 

3.数据库映射类 
package edu.tjdz.domain;


//推荐和表名一样,容易记忆
public class Student {
    Integer id;
    String name;
    String email;
    Integer age;

    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 getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + ''' +
                ", email='" + email + ''' +
                ", age=" + age +
                '}';
    }
}



package edu.tjdz.dao;

import edu.tjdz.domain.Student;

import java.util.List;

//接口,操作Student表
public interface StudentDao {

    //查询Student表的所有数据
    public List selectStudents();

    //插入方法
    //参数:Student,表示要插入的数据库的数据
    //返回值:int ,表示执行insert操作后,影响数据库的行数
    public int insertStudent(Student student);
}

4.sql映射文件

StudentDao.xml




    
    


    
        insert into student values(#{id},#{name},#{email},#{age});
    


5.mybatis主配置文件

mybatis.xml




    
    
        
        
    

    
    
        
        
            
            
            
            
                

                

                

                

                
            
        

        
        
            
            
                
                
                
                
            
        

    

    
    
        
        

    



6.测试select
package edu.tjdz;

import edu.tjdz.domain.Student;
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 MyApp {
    public static void main(String[] args) throws IOException {
        //访问mybatis读取student数据
        //1.定义mybatis主配置文件的名称
        String config  = "mybatis.xml";
        //2.读取config表示的文件
        InputStream in = Resources.getResourceAsStream(config);
        //3.创建SqlSessionFactoryBuilder对象
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        //4.创建SqlSessionFactory对象
        SqlSessionFactory factory = builder.build(in);
        //5.[重要]获取SqlSession对象,从SqlSessionFactory中获取SqlSession
        SqlSession sqlSession = factory.openSession();
        //6.[重要]指定要执行的sql语句的标识。sql映射文件中的namespace+"."+标签的id值
        String sqlId = "edu.tjdz.dao.StudentDao.selectStudents";
        //7.执行sql语句,通过sqlId找到语句
        List studentList = sqlSession.selectList(sqlId);
        //8.输出结果
        //studentList.forEach(student -> System.out.println(student));
        for(Student stu : studentList){
            System.out.println("查询的学生:"+stu);
        }
        //9.关闭资源
        sqlSession.close();

    }
}

 创建Util类

用于创建SqlSession
package edu.tjdz.utils;

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;

public class MyBatitsUtils {

    private static SqlSessionFactory factory = null;
    //静态代码块在类加载的时候执行
    static {
        String config = "mybatis.xml";
        try {
            InputStream in = Resources.getResourceAsStream(config);
            //创建SqlSessionFactory对象,使用SqlSessionFactoryBuilder
            factory = new SqlSessionFactoryBuilder().build(in);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    //获取SqlSession的方法
    public static SqlSession getSqlSession(){
        SqlSession sqlSession = null;
        if (factory != null){
            sqlSession = factory.openSession(true);
        }
        return sqlSession;
    }


}

 使用工具类测试select
package edu.tjdz;

import edu.tjdz.domain.Student;
import edu.tjdz.utils.MyBatitsUtils;
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 MyApp2 {
    public static void main(String[] args) throws IOException {

        //[重要]获取SqlSession对象,从SqlSessionFactory中获取SqlSession
        SqlSession sqlSession = MyBatitsUtils.getSqlSession();
        //[重要]指定要执行的sql语句的标识。sql映射文件中的namespace+"."+标签的id值
        String sqlId = "edu.tjdz.dao.StudentDao.selectStudents";
        //执行sql语句,通过sqlId找到语句
        List studentList = sqlSession.selectList(sqlId);
        //输出结果
        //studentList.forEach(student -> System.out.println(student));
        for(Student stu : studentList){
            System.out.println("查询的学生:"+stu);
        }
        //9.关闭资源
        sqlSession.close();

    }
}

测试insert数据
package edu.tjdz;

import edu.tjdz.domain.Student;
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 org.junit.Test;

import java.io.IOException;
import java.io.InputStream;

public class TestMybatis {
    //测试方法,测试功能
    @Test
    public void testInsert() throws IOException {
        //访问mybatis读取student数据
        //1.定义mybatis主配置文件的名称
        String config  = "mybatis.xml";
        //2.读取config表示的文件
        InputStream in = Resources.getResourceAsStream(config);
        //3.创建SqlSessionFactoryBuilder对象
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        //4.创建SqlSessionFactory对象
        SqlSessionFactory factory = builder.build(in);
        //5.[重要]获取SqlSession对象,从SqlSessionFactory中获取SqlSession
        //SqlSession sqlSession = factory.openSession();
        SqlSession sqlSession = factory.openSession(true);
        //6.[重要]指定要执行的sql语句的标识。sql映射文件中的namespace+"."+标签的id值
        String sqlId = "edu.tjdz.dao.StudentDao.insertStudent";
        //7.执行sql语句,通过sqlId找到语句
        Student student = new Student();
        student.setId(1005);
        student.setName("关羽");
        student.setEmail("gy@163.com");
        student.setAge(50);
        int nums = sqlSession.insert(sqlId,student);

        //mybatis默认不是自动提交事务的,所以在insert,update,delete后要手动提交事务
        //sqlSession.commit();

        //8.输出结果
        System.out.println("执行insert结果="+nums);
        //9.关闭资源
        sqlSession.close();
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/445187.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号