Mybatis-01(基础)

Mybatis是基于Java的持久层框架(支持普通SQL查询,存储过程和高级映射的优秀持久层框架)
作用:
简化jdbc操作,不用专注于怎么写这个操作,而是专注于业务和SQL

MyBatis可以使用简单的XML注解用于配置和原始映射,将接口和Java 的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

ORM:对象关系映射
简单概括:更加简化jdbc代码,简化持久层,sql语句从代码中分离,利用反射,将表中数据与java bean 属性一一映 射即ORM(Object Relational Mapping 对象关系映射)

基础使用:


使用

1、 依赖包导入
新建maven项目 ,pom文件添加依赖jar


        
            org.mybatis
            mybatis
            3.4.1
        
        
        
            mysql
            mysql-connector-java
            5.1.39
        
        
        
            log4j
            log4j
            1.2.16
        

2、log4j 日志添加
在src/main/resources 资源包下添加log4j日志输出properties文件,便于查看日志输出信息
log4j.properties

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
#Consoleoutput...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

3、resources目录下配置文件添加
新建mybatis.xml文件,并加入配置信息如下(数据库名mybatis,表 user)
db.properties

#键值对,前后不要有空格 
#5.x版本,6.x版本之后为 com.mysql.cj.jdbc.Driver
driver=com.mysql.jdbc.Driver
#5.x版本,6.x版本之后为 jdbc:mysql://localhost:3306/ebuy?serverTimezone=GMT%2B8&characterEncoding=utf8&useUnicode=true&useSSL=false
url=jdbc:mysql://localhost:3306/class?useUnicode=true&characterEncoding=UTF-8&useSSL=false
username=root
password=123456

#键值对,前后不要有空格
#5.x版本,6.x版本之后为 com.mysql.cj.jdbc.Driver
driver1=com.mysql.jdbc.Driver
#5.x版本,6.x版本之后为 jdbc:mysql://localhost:3306/ebuy?serverTimezone=GMT%2B8&characterEncoding=utf8&useUnicode=true&useSSL=false
url1=jdbc:mysql://localhost:3306/class?useUnicode=true&characterEncoding=UTF-8&useSSL=false
username1=root
password1=123456

mybatis.xml





    
    



    
        
            
            
            
            
                
                
                
                
            
        
        
            
            
            
            
                
                
                
                
            
        
    

    
    
        
         
        
        
    


4、映射文件添加





    
    

5.实体类Customer添加
需要实现序列化接口

6.在父类工程pom获取资源

7、测试

    public static void main(String[] args) throws IOException {

        /**
         a)、读取mybatis的配置文件
         b)、加载配置文件创建SqlSessionFactory
         c)、根据SqlSessionFactory创建SqlSession
         d)、通过sqlSession操作数据库
         e)、处理结果
         f)、关闭session
         */
        InputStream is = Resources.getResourceAsStream("mybatis.xml");
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
        // 指定数据源
        //SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is,"test");
        SqlSession session = sessionFactory.openSession();

        /*不使用映射文件包扫描*/
        //List account = session.selectOne("com.nanda.mapper.AccountMapper.queryAccountById", 1);
        ISuerDao userDao = session.getMapper(ISuerDao.class);
        List users = userDao.findAll();
        for (Suser user : users) {
            System.out.println(user);
        }

        List accounts = session.selectList("com.lmw.dao.ISuerDao.findAll");
        for (Suser user : accounts) {
            System.out.println(user);
        }
        session.close();
        is.close();
    }
实现的设计模式
自定义Mybatis分析.png
properties:resource
properties:url
typeAliaser和package

resultMap 标签  手动指定数据库字段和java字段的映射关系
    可以通过数据库 sql as  指定别名
    
        
        
        
    
    

#{} 安全的 ? '值'
${}不安全的 ? 值 不能防止sql注入

模糊查询注意:
    uname like '%${uname}%'
    aname like CONCAT('%',#{aname},'%')
      sql公共抽取

        SELECT * FROM suser
    

    
    

你可能感兴趣的:(Mybatis-01(基础))