mybatis简单示例


xml方式构建SqlSessionFactory

开发工具:idea

数据库:mysql

版本管理:maven

项目目录结构:

创建t_role表

DROP TABLE IF EXISTS `t_role`;
CREATE TABLE `t_role` (
  `id` bigint(40) NOT NULL COMMENT '主键',
  `role_name` varchar(40) CHARACTER SET utf8 DEFAULT NULL COMMENT '角色名',
  `note` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

pom.xml


      junit
      junit
      4.11
      test
    

    
    
      org.mybatis
      mybatis
      3.3.0
    

    
    
      mysql
      mysql-connector-java
      8.0.16
    

      
      
          log4j
          log4j
          1.2.17
      
      
          org.slf4j
          slf4j-api
          1.7.30
      
      
          org.slf4j
          slf4j-log4j12
          1.7.7
      

mybatis核心配置文件:mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>



    
    
        
        
    

    
    default="development">
        
            
            
            
            
                
                
                
                
            
        
    

    
    
        
    

日志文件:log4j.properties

log4j.rootLogger=DEBUG,stdout
log4j.logger.org.mybatis=DEBUG
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p %d %C: %m%n

RoleMapper.xml

<?xml version="1.0" encoding="UTF-8"?>



    
    
    
        insert into t_role(id,role_name,note)values (#{id},#{roleName},#{note},)
    

    
        delete from t_role where id = #{id}
    

RoleMapper.java

 1 package com.lenovo.dao;
 2 
 3 import com.lenovo.pojo.Role;
 4 
 5 public interface RoleMapper {
 6 
 7     //查询单个角色
 8     public Role getRole(Long id);
 9 
10     //新增单个角色
11     public int insertRole(Role role);
12 
13     //删除单个角色
14     public int deleteRole(Long id);
15 }
package com.lenovo.pojo;

public class Role {

    private Long id;//主键
    private String roleName;//角色名称
    private String note;//备注

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getRoleName() {
        return roleName;
    }

    public void setRoleName(String roleName) {
        this.roleName = roleName;
    }

    public String getNote() {
        return note;
    }

    public void setNote(String note) {
        this.note = note;
    }

    @Override
    public String toString() {
        return "Role{" +
                "id=" + id +
                ", roleName='" + roleName + '\'' +
                ", note='" + note + '\'' +
                '}';
    }
}
 1 package com.lenovo.util;
 2 
 3 import org.apache.ibatis.io.Resources;
 4 import org.apache.ibatis.session.SqlSession;
 5 import org.apache.ibatis.session.SqlSessionFactory;
 6 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 7 
 8 import java.io.IOException;
 9 import java.io.InputStream;
10 
11 public class SqlSessionFactoryUtil {
12 
13     //SqlSessionFactory对象
14     private static SqlSessionFactory sqlSessionFactory = null;
15     //类线程锁
16     private static final Class CLASS_LOCK = SqlSessionFactoryUtil.class;
17 
18     //私有化构造函数
19     private SqlSessionFactoryUtil(){};
20 
21     //构建SqlSessionFactory
22     public static SqlSessionFactory initSqlSessionFactory(){
23         String resource = "mybatis-config.xml";
24         InputStream inputStream = null;
25         try {
26             inputStream = Resources.getResourceAsStream(resource);
27         } catch (IOException e) {
28             e.printStackTrace();
29         }
30 
31         synchronized (CLASS_LOCK){
32             if (sqlSessionFactory == null){
33                 sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
34             }
35         }
36         return sqlSessionFactory;
37     }
38 
39     //打开SqlSession
40     public static SqlSession openSqlSession(){
41         if (sqlSessionFactory == null){
42             initSqlSessionFactory();
43         }
44         return sqlSessionFactory.openSession();
45     }
46 
47 }

测试类:

 1 package com.lenovo;
 2 
 3 import com.lenovo.dao.RoleMapper;
 4 import com.lenovo.pojo.Role;
 5 import com.lenovo.util.SqlSessionFactoryUtil;
 6 import org.apache.ibatis.session.SqlSession;
 7 
 8 /**
 9  * Mybatis xml方式构建SqlSessionFactory
10  */
11 public class MybatisExample {
12 
13     public static void main(String[] args) {
14         SqlSession sqlSession = SqlSessionFactoryUtil.initSqlSessionFactory().openSession();
15         RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
16         Role role = roleMapper.getRole(1l);
17         System.out.println("role名称===》" + role.getRoleName());
18     }
19 
20 }