美文网首页
MyBatis3的简单小例子

MyBatis3的简单小例子

作者: playman | 来源:发表于2018-06-24 21:53 被阅读0次

    通过一个小例子搭建MyBatis的实例

    • JDK1.7
    • mybatis-3.4.2
    • MySQL

    官方下载网址

    jar包下载

    引入jar包,创建项目

    创建一个configureation.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="mydb">
            <environment id="mydb">
                <transactionManager type="JDBC"></transactionManager>
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver" />
                    <property name="url" value="jdbc:mysql://localhost:3306/zzq" />
                    <property name="username" value="root" />
                    <property name="password" value="root" />
                </dataSource>
            </environment>
        </environments>
        <mappers>
            <mapper resource="com/ben/pojo/Students.xml"/>
        </mappers>
    </configuration>
    
    注意:1、environments和environment的参数要一样
          2、设置transactionManager,里面填对应的类型,用MySQL就写JDBC。
          3、dataSource中type一般填写POOLED即可。
          4、mappers标签内填写配置的映射文件
    
    pojo层的文件

    Students.java

    package com.ben.pojo;
    
    public class Students {
    
        private Integer id;
        private String user_name;
    
        public Integer getId() {
            return id;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
        public String getUser_name() {
            return user_name;
        }
    
        public void setUser_name(String user_name) {
            this.user_name = user_name;
        }
    
    }
    
    注意:这里的成员变量要与数据库中的变量名相同
    
    mapper的xml文件

    Students.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="com.ben.pojo">
        <sql id="cols">
            id,user_name
        </sql>
        <select id="findAll" resultType="com.ben.pojo.Students">
            select
            <include refid="cols" />
            from students
        </select>
    </mapper>
    
    注意:1、namespace填写到当前包路径下就好,一般放在pojo层即可。
          2、sql标签的id属性的值可以把数据库的字段名写上,这样可以在下面直接使用,减少代码量。
          3、select标签中,id定义的相当于方法名,会调用的。resultType是对应的pojo的域模型。
          4、sql语句的字段和表名对应数据库中的表。
    

    测试

    @Test
    public void test() {
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Students.class.getResourceAsStream("/configuration.xml"));
        System.out.println(sqlSessionFactory);
        SqlSession session = sqlSessionFactory.openSession();
        List<Students> list = session.selectList("com.ben.pojo.findAll");
        for(Students user:list){
            System.out.println(user.getUser_name());
        }
    }
    
    注意:通过session查询内容,调用的方法就是在mapper的xml中配置的包名路径+select的id值。
    

    更改映射文件,对应实体域模型

    • 添加resultMap的配置,这里的字段名column对应数据库字段,property对应域模型的成员变量。
    • 修改select标签的映射,改为resultMap,对应上文写的。
    <mapper namespace="com.ben.pojo">
        <resultMap type="com.ben.pojo.Students" id="students">
            <id column="id" property="id" javaType="java.lang.Integer"/>    
            <result column="user_name" property="userName" javaType="java.lang.String"/>
        </resultMap>
        <sql id="cols">
            id,user_name
        </sql>
        <select id="findAll" resultMap="students">
            select
            <include refid="cols" />
            from students
        </select>
    </mapper>
    

    相关文章

      网友评论

          本文标题:MyBatis3的简单小例子

          本文链接:https://www.haomeiwen.com/subject/sjgsyftx.html