MyBatis 查询

User.java
package com.mycom.mybatis_1.bean;

import java.io.Serializable;

public class User implements Serializable {
    /**
     * 
     */
    private static final long serialVersionUID = 7273023435058492423L;
    private int id;
    private String name;
    private int age;
    private String sex;

    public User() {
        super();
    }

    public User(int id, String name, int age, String sex) {
        super();
        this.id = id;
        this.name = name;
        this.age = age;
        this.sex = sex;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", age=" + age + ", sex="
                + sex + "]";
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + age;
        result = prime * result + id;
        result = prime * result + ((name == null) ? 0 : name.hashCode());
        result = prime * result + ((sex == null) ? 0 : sex.hashCode());
        return result;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        User other = (User) obj;
        if (age != other.age)
            return false;
        if (id != other.id)
            return false;
        if (name == null) {
            if (other.name != null)
                return false;
        } else if (!name.equals(other.name))
            return false;
        if (sex == null) {
            if (other.sex != null)
                return false;
        } else if (!sex.equals(other.sex))
            return false;
        return true;
    }

}

userMapper.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.mycom.mybatis_1.bean.userMapper"> 
    <!-- cache 开启二级缓存 -->
    <cache></cache>
    <!-- 根据id查询,得到一个user对象 -->
    <select id="getUser" parameterType="int" 
        resultType="com.mycom.mybatis_1.bean.User">
        select * from users where id=#{id}
    </select>
    <!-- CRUD 操作 -->
    <insert id="addUser" parameterType="com.mycom.mybatis_1.bean.User">
        insert into users(name,age) values (#{name},#{age})
    </insert>
    
    <delete id="delUser" parameterType="int">
        delete from users where id=#{id}
    </delete>
    
    <update id="updUser" parameterType="com.mycom.mybatis_1.bean.User">
        update users set name=#{name},age=#{age} where id=#{id}
    </update>
    <!-- 
    <select id="getAllUsers" resultType="com.mycom.mybatis_1.bean.User">
        select * from users
    </select>
    
    <select id="getAllUsers" resultType="_User">
        select * from users
    </select>
     -->
    <select id="getAllUsers" resultType="User">
        select * from users
    </select>
    
    <!-- 模糊查询,区间查询 -->
    <select id="getUser2" parameterType="ConditionUser" resultType="User">
        select * from users where name like #{name} and age between #{minAge} and #{maxAge}
    </select>
    
    <select id="getUser3" parameterType="ConditionUser" resultType="User">
        select * from users where age between #{minAge} and #{maxAge} 
        
        <if test='name != "%null%"'>
         and name like #{name} 
        </if>
        
    </select>
    
    <select id="getUser4" parameterType="ConditionUser" resultType="User">
            select * from users where age>=#{minAge} and age&lt;=#{maxAge}
        <if test='name!="%null%"'>and name like #{name}</if>
    </select>
    
    <!-- 
        查询得到男性或女性的数量, 如果传入的是0就女性否则是男性
        CALL mybatis.get_user_count(1, @user_count);
     -->
    <select id="getUserCount" statementType="CALLABLE" parameterMap="getCountMap">
         call mybatis.get_user_count(?,?)
     </select>
     <parameterMap type="java.util.Map" id="getCountMap">
         <parameter property="sex_id" mode="IN" jdbcType="INTEGER"/>
         <parameter property="user_count" mode="OUT" jdbcType="INTEGER"/>
     </parameterMap>
    
    
</mapper>

 

conf.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>

    <properties resource="db.properties" />
    
    <!-- 配置实体类的别名 -->
    <typeAliases>
        <typeAlias type="com.mycom.mybatis_1.bean.User" alias="_User"/>
        <package name="com.mycom.mybatis_1.bean"/>
    </typeAliases>

    <environments default="development"><!-- development:开发模式; work:工作模式 -->
        <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/mybatis" />
                <property name="username" value="root" />
                <property name="password" value="064417" />
                 -->
                <property name="driver" value="${driver}" />
                <property name="url" value="${url}" />
                <property name="username" value="${username}" />
                <property name="password" value="${password}" />
            </dataSource>
        </environment>
    </environments>
    
    <mappers>
        <mapper resource="com/mycom/mybatis_1/bean/userMapper.xml"/>
        <mapper class="com.mycom.mybatis_1.bean.UserMapper1"/>
        
        <mapper resource="com/mycom/mybatis_1/bean/orderMapper.xml"/>
        <mapper resource="com/mycom/mybatis_1/bean/classMapper.xml"/>
        <mapper resource="com/mycom/mybatis_1/bean/teacherMapper.xml"/>
        <mapper resource="com/mycom/mybatis_1/bean/studentMapper.xml"/>
    </mappers>
</configuration>

 

Test1.java

package com.mycom.mybatis_1.select;

import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.mycom.mybatis_1.bean.User;

public class Test1 {
    
    public static void main(String[] args) throws IOException {
        
//        String resource = "conf.xml";
//        // 加载mybatis的配置文件(它也加载关联的映射文件)
//        Reader reader = Resources.getResourceAsReader(resource);
//        // 构建sqlSession的工厂
//        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder()
//                .build(reader);
//        // 创建能执行映射文件中sql的sqlSession
//        SqlSession session = sessionFactory.openSession();
//        // 映射sql的标识字符串
//        String statement = "com.mycom.mybatis_1.bean.userMapper"
//                + ".getUser";
//        // 执行查询返回一个唯一user对象的sql
//        User user = session.selectOne(statement, 1);
//        System.out.println(user);

        String resource = "conf.xml";
        InputStream is = Test1.class.getClassLoader().getResourceAsStream(resource);
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
        SqlSession session = factory.openSession();
        
        String statement = "com.mycom.mybatis_1.bean.userMapper.getUser";
        User user = session.selectOne(statement, 2);
        session.close();
        System.out.println(user);
    }
}

 

db.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis
username=root
password=******

 

posted @ 2016-03-31 15:07  残星  阅读(1009)  评论(0编辑  收藏  举报