chapter01-hello-mybatis

chapter01-hello-mybatis,第1张

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();
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5160792.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存