MyBatis学习记录(1):牛刀小试,入门程序

终于开始学习三大框架了,首先从MyBatis入手。上学期学过一段时间Hibernate,不过学的并不好,当时被那些表之间的一对多,多对多关系搞的晕头转向。最后期末考试还好是四个人一组做课程设计,我就抱大腿了。
今天学MyBatis,感觉比Hibernate好上手。话不多说,先来个入门级的程序练练手。我用的是最新版本,写程序需要两个jar包:

  • mybatis-3.3.1.jar
  • mysql-connector-java-5.1.37-bin.jar



今天主要练习的是一张表的增删改查,使用的数据库表是t_user,database是test。

数据库
CREATE TABLE t_user(
    uid     CHAR(32) PRIMARY KEY,
    uname       VARCHAR(40) NOT NULL,
    upassword       VARCHAR(40) NOT NULL
);



表里插入几条数据做测试:
这里写图片描述


接下来是配置文件,首先是Mybatis的配置文件:mybatisConfig.xml。文件内容如下:

Mybatis的配置文件:mybatisConfig.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="development">
         <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/test" />
                 <property name="username" value="root" />
                <property name="password" value="dongjiong" />
            </dataSource>
         </environment>
     </environments>

</configuration>



然后是数据库表所对应的实体类:User.java

实体类:User.java
package com.mybatis.domain;

public class User {
    private String uid;
    private String uname;
    private String upassword;

    public String getUid() {
        return uid;
    }
    public void setUid(String uid) {
        this.uid = uid;
    }
    public String getUname() {
        return uname;
    }
    public void setUname(String uname) {
        this.uname = uname;
    }
    public String getUpassword() {
        return upassword;
    }
    public void setUpassword(String upassword) {
        this.upassword = upassword;
    }

    @Override
    public String toString() {
        return "User [uid=" + uid + ", uname=" + uname + ", upassword="
                + upassword + "]";
    }   
}



定义操作t_user表的sql映射文件userMapper.xml

映射文件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.mybatis.mapping.userMapper">
    <!-- 
        根据id查询得到一个user对象
     -->
    <select id="selectUserById" parameterType="String" resultType="com.mybatis.domain.User">
        select * from t_user where uid=#{id}
    </select>
</mapper>

为这个mapper指定一个唯一的namespace,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的。select标签表示的是执行查询语句,对应的还有insert,update,delete标签。select标签的id属性为selectUserById,id属性值必须是唯一的,不能够重复;parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型。resultType=”com.mybatis.domain.User”就表示将查询结果封装成一个User类的对象返回。
最后不要忘了在mybatisConfig.xml文件中注册userMapper.xml文件

<mappers>
    <!-- 注册userMapper.xml文件 -->
    <mapper resource="com/mybatis/mapping/userMapper.xml"/>
</mappers>


测试程序:
package com.mybatis.test;

import java.io.InputStream;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import com.mybatis.domain.User;

public class MyBatisTest {
    @Test
    public void testSelectUserById(){
        //mybatis的配置文件
        String resource = "mybatisConfig.xml";
        //得到配置文件流
        InputStream is = MyBatisTest.class.getClassLoader().getResourceAsStream(resource);
        //创建会话工厂
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);

        //通过工厂得到SqlSession
        SqlSession session = sessionFactory.openSession();

        /**
         * 第一个参数:
         * com.mybatis.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,
         * selectUserById是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
         * 第二个参数:
         * 传给SQL语句的值,即传给#{id}中的id的值
         */
        User user = session.selectOne("com.mybatis.mapping.userMapper.selectUserById", "345");
        System.out.println(user);
        session.close();
    }
}


查询结果

这里写图片描述

OK,成功!!牛刀小试到此结束。


整个工程目录如下:

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值