Mybatis 学习概念

遇到的问题:
JDBC出现The server time zone value 'Öйú±ê׼ʱ¼ä' is unrec问题
原因时区问题
解决方案1
1.修改MySQL的配置文件,MySQL配置文件是my.ini文件在你的安装目录下去找,我的是在C:\Program Files (x86)\MySQL\MySQL Server 5.5\my.ini

找到这个文件之后用Notepad++打开它,搜索[mysqld]节点在节点下面加上下面这句话

default-time-zone=’+08:00’

然后记得重启MySQL的服务,打开cmd窗口登录MySQL执行show variables like ‘%time_zone%’;这句命令

解决方案2
set global time_zone='+8:00'

用于持久层
使用方法:
第一步 :导入mybatis和mysql依赖
第二步:创建数据库表现存储使其便显成javabean用于持久层对象结果
第三步:持久层的功能接口
第四步:在resource中建立对应的.xml写入约束头部信息
配置环境
主配置文件

        
    
      
                
     
           
            

      

    
    
        
        
        
        
            
            
            
            
            
        
    
    
    
        
        
            
            
            
            
        
    



    
    


resource 中properties配置文件

  driver=com.mysql.jdbc.Driver
  url=jdbc:mysql://localhost:3306/test
  username=root
  password=123456

第五步:在resource中创建映射的xml
resource中usersMapper.xml文件

 

    
    

    

第六步编写测试类

1.读取配置文件

InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
在读取路径无论是绝对路径还是相对路径都有问题,所以只有两种方式,第一个是使用类加载器读取类配置文件,第二个是ServletContext.getRealPath可以读取到当前项目的绝对路径。

2.创建mysql SessionFactory对象

    SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
    SqlSessionFactory build = builder.build(in);

mybatis使用了构建者模式,只需要把数据给他就行,隐藏对象创建的细节

3.使用工厂类生产sqlSession对象

SqlSession sqlSession = build.openSession();
使用了我工厂模式,优势解耦

4.使用sqlSession对象创建Dao代理类

JDBCDao mapper = sqlSession.getMapper(JDBCDao.class);
通过字节码建立代理对象
proxy.newProxyIntence(类加载器,代理对象要实现接口字节码数据 , 如何代理)
类加载器:它使用和被代理对象的同一个类加载器
代理对象要实现接口字节码数据:实现相同的接口
如何实现:他就是增强方法需要我们自己学一个接口实现这个实现类调用代理的对应方法比如selectList
使用了代理模式

5.使用代理对象执行方法

List users = mapper.findAll();

6.释放资源

    sqlSession.close();
    in.close();

使用注解

主配置文件不动

         

      
      

改为

            

         

      
      

并将D文件中方法

@Select("select * from test1")
List findAll();

分析mybtis

mybatis代理对象只做了两件事
1.代理创建对象
2.调用selectList
mybitis主配置文件配置两个信息
1.连接信息

  1. 映射信息
    配置信息
    配置了全限定的方法
    使用的是dom4j解析xml技术
    将执行的SQL语句和封装结果的实体全限定类名封装到一起就是preparestatement。如果将sql作为参数则会导致指示不明,因为id可以重复从而迷惑。

你可能感兴趣的:(Mybatis 学习概念)