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=******

MyBatis 查询的更多相关文章

  1. mybatis 查询 xml list参数

    mybatis 查询 xml list参数: <select id="getByIds" resultType="string" parameterTyp ...

  2. MyBatis 查询映射自定义枚举

    背景                  MyBatis查询若想映射枚举类型,则需要从 EnumTypeHandler 或者 EnumOrdinalTypeHandler 中选一个来使用         ...

  3. mybatis查询异常-Error querying database. Cause: java.lang.ClassCastException: org.apache.ibatis.executor.ExecutionPlaceholder cannot be cast to java.util.List

    背景,mybatis查询的时候直接取的sqlsession,没有包装成SqlSessionTemplate,没有走spring提供的代理. 然后我写的获取sqlsession的代码没有考虑到并发的情况 ...

  4. mybatis查询语句的背后

    转载请注明出处... 一.前言 在先了解mybatis查询之前,先大致了解下以下代码的为查询做了哪些铺垫,在这里我们要事先了解,myabtis会默认使用DefaultSqlSessionFactory ...

  5. mybatis查询语句的背后之参数解析

    转载请注明出处... 一.前言 通过前面我们也知道,通过getMapper方式来进行查询,最后会通过mapperMehod类,对接口中传来的参数也会在这个类里面进行一个解析,随后就传到对应位置,与sq ...

  6. mybatis查询语句的背后之封装数据

    转载请注明出处... 一.前言 继上一篇mybatis查询语句的背后,这一篇主要围绕着mybatis查询的后期操作,即跟数据库交互的时候.由于本人也是一边学习源码一边记录,内容难免有错误或不足之处,还 ...

  7. mybatis查询结果和接收的不一样

    记一次大坑:mybatis查询结果和接收的不一样,折腾我好几个小时. 先上代码:代码是要查询排名,sql执行的结果 SELECT b.operator_id, b.class_count, b.cla ...

  8. 【mybatis】【mysql】mybatis查询mysql,group by分组查询报错:Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column

    mybatis查询mysql,group by分组查询报错:Expression #1 of SELECT list is not in GROUP BY clause and contains no ...

  9. 使用MyBatis查询 返回类型为int,但是当查询结果为空NULL,报异常的解决方法

    使用MyBatis查询 返回类型为int,但是当查询结果为空NULL,会报异常. 例如: <select id="getPersonRecordId" parameterTy ...

  10. mybatis查询日期时间数据得到long类型数据的问题

    使用mybatis查询数据时,如果数据库存储的是timestamp.datetime.date.time等时间类型,而Java bean也使用的是date类型,mybatis会自动将date类型转换为 ...

随机推荐

  1. 发布一个UDP调试助手

    UDP协议适用于那种频繁通信,但是可以容忍一些丢包的应用,比如GPS的定位应用. 调试UDP助手,可以定时发送,输出文本, 记录收到时间. 1. 该工具基于IOCP网络模型,调试UDP服务使用的一个工 ...

  2. php 生日提醒程序

    <?php   $startdate=time();  //当前时间   $birth="2013-05-13";  // 出生日期  $arr=explode(" ...

  3. linux下实时查看tomcat运行日志

    查看实时日志: tail -f catalina.out Ctrl+c 是退出tail命令

  4. session的使用方法

    概念:session把客户资料存在服务器中,给浏览器一个加密凭证,每次登录生成的凭证都不相同,浏览器用cookie保存凭证.下次访问时服务器收到凭证后,打开文件读取session信息.session_ ...

  5. IntelliJIDEA 14创建Maven管理的Java Web项目

    1.新建项目,选择Maven,点击Next继续. 接着输入项目名 接着直接点击Finish即可 下图就是创建完毕后的Maven项目,双击pom.xml查看POM文件内容,可以自行添加Maven的依赖. ...

  6. 奇葩问题之ToolBar返回键失效

    今天遇到一个奇葩问题,先说现象:接口调用成功,但是在后台业务上报错时(比如:手机号已经被注册过时,接口调用成功,但是后台返回了错误信息:手机号已被注册),toolBar的返回键失效了. 后来仔细看了一 ...

  7. 关于okhttp

    本文出处:http://www.tuicool.com/articles/rArq63u 为什么需要一个HTTP库 Android系统提供了两种HTTP通信类,HttpURLConnection和Ht ...

  8. 【枚举】bzoj3391 [Usaco2004 Dec]Tree Cutting网络破坏

    #include<cstdio> using namespace std; #define N 10001 int n; int v[N<<1],first[N],next[N ...

  9. JBOSS最大连接数配置和jvm内存配置

    一.调整JBOSS最大连接数. 配置deploy/jboss-web.deployer/server.xml文件 .       <Connector         port="80 ...

  10. [转]moveTaskToback退后台

    http://blog.csdn.net/dacainiao007/article/details/17352367 方法:public boolean moveTaskToBack(boolean ...