第一讲 MyBatis开端

来源:互联网 发布:三公棋牌软件 编辑:程序博客网 时间:2024/06/01 10:32
一、什么是MyBatis?

   MyBatis是一个基于Java的持久层框架。

二、持久化:数据从瞬时状态变为持久状态。

三、持久层:完成持久化工作的代码块。--- dao

四、MyBatis就是帮助程序员将数据入数据库中,和从数据库中数据。

五、传统的JDBC操作:有很多重复的代码块。比如:数据取出时的封装,数据库的建立连接等等。通过框架可以减少重复代码,提高开发效率。

六、MyBatis是一个半自动化的ORM(Object Relational Mapping)框架。

七、MyBatis的功能:

MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。

八、如何使用MyBatis?

     步骤:

  1. 导入相关jar包

     <dependencies>
           <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.38</version>
           </dependency>
           <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.4.1</version>
           </dependency>
     </dependencies>

  1. 编写MyBatis核心配置文件

   mybatis-config.xml

<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEconfiguration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
     <environmentsdefault="development">
           <environmentid="development">
                <transactionManagertype="JDBC"/>
                <dataSourcetype="POOLED">
                     <propertyname="driver"value="com.mysql.jdbc.Driver"/>
                     <propertyname="url"value="jdbc:mysql://localhost:3306/test"/>
                     <propertyname="username"value="root"/>
                     <propertyname="password"value="123456"/>
                </dataSource>
           </environment>
     </environments>
     <mappers>
           <mapperresource="com/liujie/model/user.mapper.xml"/>
     </mappers>
</configuration>


  1. 创建SqlSessionFactory,以及获得SqlSession

publicclass MyBatisUtil {
     
     //创建SqlSessionFactory
     publicstatic SqlSessionFactory getSqlSessionFactory() throws IOException {
           Stringresource = "mybatis-config.xml";
           Readerreader = Resources.getResourceAsReader(resource);
           SqlSessionFactorysessionFactory = newSqlSessionFactoryBuilder().build(reader);
           returnsessionFactory;
     }
     
     //获得SqlSession
     publicstatic SqlSession getSqlSession() throws IOException {
           SqlSessionFactorysessionFactory = getSqlSessionFactory();
           returnsessionFactory.openSession();
     }
}

  1. 创建实体类

publicclass User {
     
     privateint id;
     privateString name;
     privateString pwd;
     
     //下面省略get、set方法

  1. 编写sql语句的映射文件

   user.mapper.xml

<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEmapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mappernamespace="com.liujie.model.UserMapper">
     <selectid="selectUser"resultType="com.liujie.model.User"
           select * from user where id = #{id}
     </select>
</mapper>


  1. 测试

publicclass Test {
     
     publicstatic void main(String[]args)throws IOException {
           SqlSessionsession = MyBatisUtil.getSqlSession();
           Useruser = session.selectOne("com.liujie.model.UserMapper.selectUser", 1);
          System.out.println("id="+user.getId()+",name="+user.getName()+",pwd="+user.getPwd());
           session.close();
     }
     
}