mybatis 注解和接口

mybatis.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节点
        里面有配置信息 分别是环境和映射
         其中环境里有datasource,里面有我们熟悉的连接数据库的四个字符串
-->
<configuration>

    <!--
        引入db的配置文件信息,后面用到的四个连接字符串就可以直接使用 ${}的方式来动态引入
    -->
    <properties resource="db.properties">
    </properties>

    <!--
        给当前mybatis项目添加日志功能,该STDOUT_LOGGING值的好处是不用添加第三方jar包就可以有日志的输出
    -->
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>

    <typeAliases>
        <!--<typeAlias type="com.qfedu.pojo.Order" alias="abc" />-->
        <package name="com.qfwh.pojo" />
    </typeAliases>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${user}"/>
                <property name="password" value="${pass}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--<mapper resource="com/qfedu/dao/UserMapper.xml"/>-->
        <!--<mapper class="com.qfedu.dao.IUserDao2" />-->
       <mapper resource="UsersMapper.xml"/>
<!--        <package name="com.qfwh.dao"/>-->
    </mappers>
</configuration>

UsersMapper.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">

<!--
    第二种实现mybatis的方式为:接口+xml方式
    这种方式有特别的要求
        1.  namespace必须是接口的全路径
        2.  每个节点的id必须是接口中的方法名
        3.  该接口中的方法不允许重载,否则namespace+id将不唯一
        4.  注意该接口中的增删改的方法的返回值,最好使用int
-->
<mapper namespace="com.qfwh.dao.IUserDao">

    <!--
        ID为接口中的方法名
    -->
    <select id="getAllUsers" resultType="Users">
        select  *  from  users
    </select>
    <insert id="saveUsers" >
        insert into users values (#{uid},#{name},#{pass},#{phone})
    </insert>


</mapper>

Users.java

package com.qfwh.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
public class Users {
    private  int uid;
    private String name;
    private String pass;
    private String phone;

    public Users() {
    }

    public Users(int uid, String name, String pass, String phone) {
        this.uid = uid;
        this.name = name;
        this.pass = pass;
        this.phone = phone;
    }

    @Override
    public String toString() {
        return "Users{" +
                "uid=" + uid +
                ", name='" + name + '\'' +
                ", pass='" + pass + '\'' +
                ", phone='" + phone + '\'' +
                '}';
    }

    public int getUid() {
        return uid;
    }

    public void setUid(int uid) {
        this.uid = uid;
    }

    public String getName() {
        return name;
    }

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

    public String getPass() {
        return pass;
    }

    public void setPass(String pass) {
        this.pass = pass;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }
}

Session.java

package com.qfwh.util;
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 java.io.IOException;

public class SessionUtils {
    private static SqlSession mSession = null;
    private static SqlSessionFactory mFactoy = null;

    static {
        try {
            mFactoy = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis.xml"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }



    /**
     * 获取SqlSession对象
     * @return
     */
    public static SqlSession getmSession(){
        mSession = mFactoy.openSession(true);
        return mSession;
    }

    /**
     * 关闭SqlSession对象
     * @param session 要关闭的SqlSession对象
     */
    public static void closeSession(SqlSession session){
        if(session != null){
            session.close();
            session = null;
        }
    }
}

IUserDao.java

package com.qfwh.dao;

import com.qfwh.pojo.Users;

import java.util.List;

public interface IUserDao {
    /**
     *  查询所有的User对象
     * @return User对象的列表
     */
    List<Users> getAllUsers();

    /**
     * 新增一个User对象
     * @param u 要新增的用户对象
     * @return 受影响的行数
     */
    int saveUsers(Users u);


}

testGetAllUsers.java

package com.qfwh.pojo;

import com.qfwh.dao.IUserDao;
import com.qfwh.util.SessionUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.util.List;

public class TestUsersDao {
    private SqlSession session = null;

    @Before
    public void setUp(){
        session = SessionUtils.getmSession();
    }

    @After
    public void tearDown(){
        SessionUtils.closeSession(session);
    }

    @Test
    public void testGetAllUsers(){
        IUserDao mapper = session.getMapper(IUserDao.class);
        List<Users> users = mapper.getAllUsers();
        for (Users u : users) {
            System.out.println(u);
        }
    }

    @Test
    public void testsaveUsers(){
        IUserDao mapper = session.getMapper(IUserDao.class);
        Users u = new Users(3,"kun","1234","110");
        int result = mapper.saveUsers(u);
        System.out.println(result);

    }

}

结构图

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值