zoukankan      html  css  js  c++  java
  • mybatis的那些事

    转载请注明出处:http://www.cnblogs.com/yidaijiankuanzhongbuhui/p/7003993.html 

    用mybatis一年多了,一直是别人搭好框架,配置好各种配置文件和导入jar包,然后自己知道怎么用!回过头来再重新整理学习mybatis,发现很多事如果自己亲手操作会更好!

    mybatis 官方文档上对mybatis定义是:mybatis是一流的持久层框架,支持自定义sql、存储过程和高级映射!它消除了几乎所有的JDBC代码、手工设置参数和结果的检索!mybatis可以使用简单的XML或注释进行配置 映射文件、映射接口和Java pojo(普通的旧Java对象)到数据库记录。

    mybatis的使用:

    • 首先从官方文档中下载jar包和源码包(地址为:https://github.com/mybatis/mybatis-3/releases)。并将jar包放到添加到类路径下;
    • 创建mybatis的xml配置文件(名字可以自己任意起)
    • 创建实体类的与数据库的映射文件
    • 创建数据库连接的SqlSessionFactory(即回话工厂,类似于数据库连接池),并获取回话
    • 执行sql 并取出结果 

    具体操作:

    1. 创建一个动态web工程,将jar包( 见附件)放到lib目录下并built到类路径下。目录如下
    2. 创建mybatis的xml配置文件,xml文件中有关于数据库连接的参数配置,用来创建回话工厂SqlSessionFactory。暂时把该文件命名为mybatis_config.xml  代码如下
      <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE configuration
      PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
      "http://mybatis.org/dtd/mybatis-3-config.dtd">
      <configuration>
      <environments default="development">
      <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
      <property name="driver" value="com.mysql.jdbc.Driver"/>
      <property name="url" value="jdbc:mysql://localhost:3306/test1"/>
      <property name="username" value="root"/>
      <property name="password" value="root"/>
      </dataSource>
      </environment>
      </environments>
      <mappers>
      <mapper resource="sqlMapper/chengjiMapper.xml"/>
      </mappers>
      </configuration>
      
    3. 首先需要在数据库test1中添加一个表,创建表的sql如下

      CREATE TABLE `chengji` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `name` varchar(11) DEFAULT NULL,
        `xueke` varchar(255) DEFAULT NULL,
        `fenshu` int(11) DEFAULT NULL,
        PRIMARY KEY (`id`)
      ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1

      然后需要创建一个实体类:

      public class chengji {
          
          private Integer id;
          private String name;
          private String xueke;
          private Integer fenshu;
          public Integer getId() {
              return id;
          }
          public void setId(Integer id) {
              this.id = id;
          }
          public String getName() {
              return name;
          }
          public void setName(String name) {
              this.name = name;
          }
          public String getXueke() {
              return xueke;
          }
          public void setXueke(String xueke) {
              this.xueke = xueke;
          }
          public Integer getFenshu() {
              return fenshu;
          }
          public void setFenshu(Integer fenshu) {
              this.fenshu = fenshu;
          }
          @Override
          public String toString() {
              return "Employee [id=" + id + ", name=" + name + ", xueke=" + xueke + ", fenshu=" + fenshu + "]";
          }
          
      }

      创建基于xml的映射语句文件:

      <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
      <mapper namespace="sqlmapper.chengjiMapper" >
        <resultMap id="BaseResultMap" type="model.chengji" >
          <id column="id" property="id" jdbcType="INTEGER" />
          <result column="name" property="name" jdbcType="VARCHAR" />
          <result column="xueke" property="xueke" jdbcType="VARCHAR" />
          <result column="fenshu" property="fenshu" jdbcType="INTEGER" />
        </resultMap>
        
        <select id="selectByPrimaryKey" resultMap="BaseResultMap"  >
          select 
          *
          from chengji
          where id = #{id,jdbcType=INTEGER}
        </select>
        
        
      </mapper>
    4. 我们下面可以写一个test.java 来测试一下:

      public class test {
      
          public static void main(String[] args) {
              SqlSession session = getSqlSessionFactory().openSession();
              try {
                  String resource = "conf/mybatis_config.xml";
                  InputStream inputStream = Resources.getResourceAsStream(resource);
                  org.apache.ibatis.session.SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
                  SqlSession session = sqlSessionFactory.openSession();
                  chengji cj = session.selectOne("sqlmapper.chengjiMapper.selectByPrimaryKey", 4);
              System.out.println(cj.toString());
              } finally {
              session.close();
              }
          }
              
          }
      
      }
    5. 最后的打印结果是:chengji [id=4, name=gaoshan, xueke=yuwen, fenshu=99]

        

    本文是作者原创,转载请标明

  • 相关阅读:
    5.集合(3)——Map集合
    4.集合(3)——List集合
    2.初窥集合类1
    1.正则表达式1
    (13)JSON
    (12)表单验证
    Wpf实现TreeSelect多选
    Wpf实现TreeSelect
    Wpf登录验证方式(5)-推理拼图的实现
    Wpf登录验证方式(4)-语序点选的实现
  • 原文地址:https://www.cnblogs.com/yidaijiankuanzhongbuhui/p/7003993.html
Copyright © 2011-2022 走看看