• 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=******
  • 相关阅读:
    vue报错 ModuleBuildError: Module build failed: Error: `sass-loader` requires `node-sass` >=4. Please install a compatible version.
    js 相对路径转为绝对路径
    查询数据库表结构,默认值,是否为空等
    NOLOCK、HOLDLOCK、UPDLOCK、TABLOCK、TABLOCKX
    【58沈剑架构系列】RPC-client异步收发核心细节?
    Windows下性能最好的I/O模型——完成端口
    链表的基本操作
    逐步优化求解最大子序列和
    python 遍历文件夹
    Markdown笔记
  • 原文地址:https://www.cnblogs.com/mingforyou/p/5341267.html
走看看 - 开发者的网上家园