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

Maven---MyBatis

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

Maven---MyBatis

Maven—MyBatis CRUD

目录结构

首先创建mybatis-study父目录

mybatis-study -->pom.xml


    4.0.0

    mybatis-study
    mybatis-study
    pom
    1.0-SNAPSHOT
    
        MyBatis01
    

    
        
        
            mysql
            mysql-connector-java
            5.1.47
        
        
        
            org.mybatis
            mybatis
            3.5.2
        
        
            org.junit
            com.springsource.org.junit
            4.7.0
        
    

  
    
        
            
                src/main/java
                
                    ***.xml
                
                false
            
            
                src/main/resources
                
                    ***.xml
                
                false
            
        
    

然后创建MyBatis01子工程

MyBatis01---->pom.xml


    
        mybatis-study
        mybatis-study
        1.0-SNAPSHOT
    
    4.0.0

    MyBatis-01

    
        
            
                src/main/java
                
                    ***.xml
                
                false
            
            
                src/main/resources
                
                    ***.xml
                
                false
            
        
    

在resources里面创建

db.properties
db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/zkc?useSSL=true&useUnicode=true&characterEncoding=utf8
db.username=root
db.password=root
mybatis-config.xml



    
    
        
    
    
    
        
            
            
                
                
                
                
            
        
    
    
        
        
    

pojo —>Book
package com.zkc.pojo;

public class Book {
    private int no;
    private String name;
    private String author;
    private String sort;

    public int getNo() {
        return no;
    }

    public void setNo(int no) {
        this.no = no;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public String getSort() {
        return sort;
    }

    public void setSort(String sort) {
        this.sort = sort;
    }

    @Override
    public String toString() {
        return "Book{" +
                "no=" + no +
                ", name='" + name + ''' +
                ", author='" + author + ''' +
                ", sort='" + sort + ''' +
                '}';
    }
}

dao—>BookMapper
package com.zkc.dao;

import com.zkc.pojo.Book;

import java.util.List;

public interface BookMapper {
    List getBookList();

    Book getBookByNo(int no);

    int addBook(Book book);

    int updateBook(Book book);

    int delBook(int no);
}

dao---->BookMapper.xml





    
        select * from book where no = #{no}
    

    
        insert into book (name,author,sort) values(#{name},#{author},#{sort})
    
    
    
        update book set name=#{name},author=#{author},sort=#{sort} where no=#{no};
    

    
        delete from book where no = #{no}
    

utills—>MyBatisUtills
package com.zkc.utills;
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 MyBatisUtills {
    private static SqlSessionFactory sqlSessionFactory;
    static {
        try{
            String source = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(source);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        }catch (IOException e){
            e.printStackTrace();
        }
    }
    //获取SqlSession连接
    public static SqlSession getSqlSession(){
        return sqlSessionFactory.openSession();
    }
}

测试MyTest
package com.zkc.test;

import com.zkc.dao.BookMapper;
import com.zkc.pojo.Book;
import com.zkc.utills.MyBatisUtills;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import java.util.List;

public class MyTest {
    
    @Test
    public void test(){
        SqlSession sqlSession = MyBatisUtills.getSqlSession();
        BookMapper bookMapper = sqlSession.getMapper(BookMapper.class);
        List bookList = bookMapper.getBookList();
        for (Book book : bookList) {
            System.out.println(book);
        }
        sqlSession.close();
    }

    
    @Test
    public void getByBookId(){
        SqlSession sqlSession = MyBatisUtills.getSqlSession();
        BookMapper bookMapper = sqlSession.getMapper(BookMapper.class);
        Book book = bookMapper.getBookByNo(1);
        System.out.println(book);
        sqlSession.close();
    }

    
    @Test
    public void addBook(){
        SqlSession sqlSession = MyBatisUtills.getSqlSession();
        BookMapper bookMapper = sqlSession.getMapper(BookMapper.class);
        Book book = new Book();
        book.setName("坏蛋是怎样炼成的");
        book.setAuthor("张三");
        book.setSort("网络小说");
        int num = bookMapper.addBook(book);
        if(num > 0){
            System.out.println("插入成功!");
        }
        sqlSession.commit();
        sqlSession.close();
    }

    
    @Test
    public void updateBook(){
        SqlSession sqlSession = MyBatisUtills.getSqlSession();
        BookMapper bookMapper = sqlSession.getMapper(BookMapper.class);
        Book book = bookMapper.getBookByNo(10);
        book.setName("圣墟");
        book.setAuthor("城东");
        book.setSort("网络小说");
        int num = bookMapper.updateBook(book);
        if(num > 0){
            System.out.println("修改成功!");
        }
        sqlSession.commit();
        sqlSession.close();
    }

    
    @Test
    public void delBook(){
        SqlSession sqlSession = MyBatisUtills.getSqlSession();
        BookMapper bookMapper = sqlSession.getMapper(BookMapper.class);
        int num = bookMapper.delBook(11);
        if(num > 0){
            System.out.println("删除成功");
        }
        sqlSession.commit();
        sqlSession.close();

    }
}

环境配置environments
 
    
        
            
            
                
                
                
                
            
        
    
属性properties
    
类型别名typeAliases
 
    
      	
        
      	
        
    

也是可以在类上直接设置别名,然后扫描类

@Alias("Hello")
public class Book {
    private int no;
    private String name;
    private String author;
    private String sort;
  ...
}
映射器mappers
	
        
        
        
    
生命周期和作用域

SqlSessionFactoryBuilder

一旦创建SqlSessionFactory就不需要了

SqlSessionFactory

一旦创建就一直存在

SqlSession

链接到链接池的一个请求

resultMap解决数据库与javabean名称不一致
 
        
        
        
        
    

 
      select * from book limit #{startIndex},#{pageSize}

测试

 @Test
    public void getLimitBook(){
        SqlSession sqlSession = MyBatisUtills.getSqlSession();
        BookMapper bookMapper = sqlSession.getMapper(BookMapper.class);
        Map map = new HashMap();
        map.put("startIndex",2);
        map.put("pageSize",2);
        List bookList = bookMapper.getLimitBook(map);
        for (Book book : bookList) {
            System.out.println(book);
        }
        sqlSession.close();
    }
RowBounds分页 PageHelper分页 使用注解开发 CRUD

BookMapper接口

    @Select("select * from user")
    List getBookList();

    @Select("select * from user where id = #{id}")
    Book getBookById(@Param("id") int id);

测试

 
    @Test
    public void test(){
        SqlSession sqlSession = MyBatisUtills.getSqlSession();
        BookMapper bookMapper = sqlSession.getMapper(BookMapper.class);
        List bookList = bookMapper.getBookList();
        for (Book book : bookList) {
            System.out.println(book);
        }
        sqlSession.close();
    }

    @Test
    public void getBookById(){
        SqlSession sqlSession = MyBatisUtills.getSqlSession();
        BookMapper bookMapper = sqlSession.getMapper(BookMapper.class);
        Book book = bookMapper.getBookById(1);
        System.out.println(book);
        sqlSession.close();
    }
Lombok
参数
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@EqualsAndHashCode

首先settings里面plugins—>lombok


    org.projectlombok
    lombok
    1.18.8
    provided

多对一

建表

CREATE TABLE `teacher` (
`id` INT(10) NOT NULL,
`name` VARCHAR(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8
INSERT INTO teacher(`id`, `name`) VALUES (1, '秦老师');
CREATE TABLE `student` (
`id` INT(10) NOT NULL,
`name` VARCHAR(30) DEFAULT NULL,
`tid` INT(10) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `fktid` (`tid`),
CONSTRAINT `fktid` FOREIGN KEY (`tid`) REFERENCES `teacher` (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8
INSERT INTO `student` (`id`, `name`, `tid`) VALUES ('1', '小明', '1');
INSERT INTO `student` (`id`, `name`, `tid`) VALUES ('2', '小红', '1');
INSERT INTO `student` (`id`, `name`, `tid`) VALUES ('3', '小张', '1');
INSERT INTO `student` (`id`, `name`, `tid`) VALUES ('4', '小李', '1');
INSERT INTO `student` (`id`, `name`, `tid`) VALUES ('5', '小王', '1');

student

@Data
public class Student {
    private int id;
    private String name;
    private int tid;
    private Teacher teacher;
}

teacher

@Data
public class Teacher {
    private int id;
    private String name;
}

StudentMapper

public interface StudentMapper {
    List getStudent();
}

TeacherMapper

public interface TeacherMapper {
    Teacher getTeacherById(int id);
}

StudentMapper.xml




    
        
            
            
            
            
                
                
            
        
    
        
          select * from student
        

TeacherMapper.xml

一对多

Teacher

@Data
public class Teacher {
    private int id;
    private String name;

    private List studentList;
}

TeacherMapper

public interface TeacherMapper {
    List getTeacherById();
}

TeacherMapper.xml




    
        
        
        
            
            
            
        
    
    
        select
            t.id,t.name as tname,s.id as sid,s.name as sname,s.tid as stid
            from teacher t
            inner join student s
            on t.id = s.tid
    

MyTest

@Test
public void getBy() {
    SqlSession sqlSession = MyBatisUtills.getSqlSession();
    TeacherMapper teacherMapper = sqlSession.getMapper(TeacherMapper.class);
    List list = teacherMapper.getTeacherById();
    for(Teacher teacher : list){
        System.out.println(teacher);
    }
    sqlSession.close();
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/763425.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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