05Mybatis_根据id查询用户

这篇文章我们来做一个入门的案例:

建表;

给出案例结构:

第一步:编写po类:User.java

package cn.itcast.mybatis.po;

import java.util.Date;

public class User {
private int id;//主键
private String username;//用户的名称
private Date birthday;//生日
private String sex;//性别
private String address;//地址
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public String getUsername() {
    return username;
}
public void setUsername(String username) {
    this.username = username;
}
public Date getBirthday() {
    return birthday;
}
public void setBirthday(Date birthday) {
    this.birthday = birthday;
}
public String getSex() {
    return sex;
}
public void setSex(String sex) {
    this.sex = sex;
}
public String getAddress() {
    return address;
}
public void setAddress(String address) {
    this.address = address;
}

}

第二步:编写config包下面的SqlMapConfig.xml。这个配置文件主要是配置mybaits运行环境,数据源,事务等。SqlMapConfig.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>
    <!-- 和spring整合后 environments配置将废除-->
    <environments default="development">
        <environment id="development">
        <!-- 使用jdbc事务管理-->
            <transactionManager type="JDBC" />
        <!-- 数据库连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/mybaits?characterEncoding=utf-8" />
                <property name="username" value="root" />
                <property name="password" value="root" />
            </dataSource>
        </environment>
    </environments>

    <!-- 把映射文件(sqlmap/user.xml)加载进sqlMapConfig.xml-->
        <mappers>
        <mapper resource="sqlmap/user.xml"/>
         </mappers>

</configuration>

第三步:编写映射文件sqlmap/user.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">
<!-- nanmespace:命名空间。 作用就是对sql进行分类话管理,理解Sal分离

注意:使用mapper代理方式,namespace有特殊重要的作用
-->

<mapper namespace="test">

    <!-- 根据id获取用户信息 -->
    <!-- 在映射文件中配置很多sql语句 -->
    <!--
    id:标识映射文件中的sql;
    将sql语句封装到mappedStatement对象中,所以将id称为statement的id;parmenterType:指定输入的参数的类型,这里指定的int型
    #{}表示一个占位符号;
    #{id}:其中的id表示接收输入的参数,参数名称就是id,如果输入参数就是简单类型,#{}中的参数名可以任意,可以value或其它名称
    resultType:指定的sql输出结果的所映射的java对象类型,select指定resultType表示将单条记录映射成的java对象;

     -->
    <select id="findUserById" parameterType="int" resultType="cn.itcast.mybatis.po.User">
        select * from user where id = #{id}
    </select>
    <!-- 自定义条件查询用户列表 -->
    <select id="findUserByUsername" parameterType="java.lang.String"
            resultType="cn.itcast.mybatis.po.User">
       select * from user where username like ‘%${value}%‘
    </select>

</mapper>

第四步:编写日志文件(log4j.properties)和Junit测试程序:

log4j.properties文件源码:

# Global logging configuration
#\u5728\u5f00\u53d1\u73af\u5883\u4e0b\u65e5\u5fd7\u7ea7\u522b\u8981\u8bbe\u7f6e\u6210DEBUG\uff0c\u751f\u4ea7\u73af\u5883\u8bbe\u7f6e\u6210info\u6216error
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

Junit测试程序源码:

package cn.itcast.mybatis.first;

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

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 org.junit.Before;
import org.junit.Test;

import cn.itcast.mybatis.po.User;

public class Mybatis_first {

    //会话工厂
    private SqlSessionFactory sqlSessionFactory;
    //这些事必备的,所以放在Before这里了
    @Before
    public void createsqlSessionFactory() throws IOException
    {
        //配置文件
        String resource="SqlMapConfig.xml";
        InputStream inputStream=Resources.getResourceAsStream(resource);
        //使用SqlSessionFactoryBuilder从配置文件中创建SqlSessionFactory.
        sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
    }
    @Test
//根据id查询用户的信息
    public void testFindUseById()
    {    //数据库会话实例
        SqlSession sqlSession=null;
        try {

            //创建数据库会话实例sqlSession;
            sqlSession=sqlSessionFactory.openSession();

            User user=sqlSession.selectOne("test.findUserById", 10); //输出对象的hashcode
            System.out.println(user);
        } catch (Exception e) {

            e.printStackTrace();
        }
        finally{
            //如果sqlSession实例是创建的那么把他关闭掉
            if(sqlSession!=null)
            {sqlSession.close();

            }

        }

    }

}

运行结果:成功了,

输出为:[email protected]

时间: 2024-10-31 09:31:33

05Mybatis_根据id查询用户的相关文章

05Mybatis_入门程序——根据id查询用户

这篇文章我们来做一个入门的案例: 建表: 1 /* 2 SQLyog v10.2 3 MySQL - 5.1.72-community : Database - mybatis 4 ********************************************************************* 5 */ 6 7 8 /*!40101 SET NAMES utf8 */; 9 10 /*!40101 SET SQL_MODE=''*/; 11 12 /*!40014 SE

通过id查询用户,但是只返回指定的字段

使用hibernate和spring MVC 通过id查询到一个用户,但是只返回指定的字段 方式一: 拼接hql /*** * 通过数据库ID查询用户,但是只返回指定的字段 * @param id * @param propertyNames : 指定的多个成员变量 * @return */ public Object[] getPropertiesById(int id,String[] propertyNames){ if(ValueWidget.isNullOrEmpty(property

根据群ID和用户Id查询 + string QueryQunByUserIdAndQunId(int userId, int qunId) V1.0

#region  根据群ID和用户Id查询 + string QueryQunByUserIdAndQunId(int userId, int qunId)  V1.0        /// <summary>        /// 13.0 根据群ID和用户Id查询        /// </summary>        /// <param name="userId"></param>        /// <param na

使用mybatis开发Dao的原始方法,实现根据用户id查询一个用户信息 、根据用户名称模糊查询用户信息列表 、添加用户信息等功能

1.需求 将下边的功能实现Dao: 根据用户id查询一个用户信息 根据用户名称模糊查询用户信息列表 添加用户信息 2. 原始Dao开发方法需要程序员编写Dao接口和Dao实现类 3.User.xml映射文件的内容为: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "h

id 工具: 查询用户所对应的UID 和GID 及GID所对应的用户组

id 工具是用来查询用户信息,比如用户所归属的用户组,UID 和GID等:id 用法极为简单:我们举个例子说明一下: 语法格式: id  [参数]  [用户名] 至于有哪些参数,自己查一下 id --help 或man id :如果id后面不接任何参数和任何用户,默认显示当前操作用户的用户名.所归属的用户组.UID和GID等: 实例一:不加任何参数和用户名: [[email protected] ~]$ id uid=500(beinan) gid=500(beinan) groups=500(

PHP实现的注册,登录及查询用户资料功能API接口示例

这篇文章主要介绍了PHP实现的注册,登录及查询用户资料功能API接口,结合具体实例形式分析了php服务器端用户注册.登陆.查询及curl登陆查询功能实现技巧,需要的朋友可以参考下 本文实例讲述了PHP实现的注册,登录及查询用户资料功能API接口.分享给大家供大家参考,具体如下: 服务端 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 3

PHP 开发API接口 注册,登录,查询用户资料

服务端 <?php require 'conn.php'; header('Content-Type:text/html;charset=utf-8'); $action = $_GET['action']; switch ($action) { //注册会员 case"adduserinfo"; $username = lib_replace_end_tag(trim($_GET['username'])); $password2 = lib_replace_end_tag(t

查询用户是否存在引发的问题

使用Spring+SpringMVC+MyBatis查询用户名是否存在时,返回时不要返回 * 1.因为如果这样写,当用户可用时会报一个null的错误 1 <!-- 根据name查询用户存在与否 --> 2 <select id="findName" resultType="int" parameterType="String" > 3 select * from user where name=#{name} 4 <

项目一:第十三天 1、菜单数据管理 2、权限数据管理 3、角色数据管理 4、用户数据管理 5、在realm中动态查询用户权限,角色 6、Shiro中整合ehcache缓存权限数据

1 课程计划 菜单数据管理 权限数据管理 角色数据管理 用户数据管理 在realm中动态查询用户权限,角色 Shiro中整合ehcache缓存权限数据         2 菜单数据添加 2.1 使用combotree父菜单项数据     1. 页面:menu_add.jsp 2. 修改组件样式:easyui-combotree,修改url  树型表格treeGrid跟下来数combotree要求数据格式基本一致. Combotree通过text属性展示文本.   3. 使用treegrid组件的