Mybatis实现的三种方式

1.通用的部分

1.数据库
在这里插入图片描述
2.Admin

package cn.yf.entity;

public class Admin {

    private int id;
    private String name;
    private String password;

    public Admin() {
    }

    public Admin(int id, String name, String password) {
        this.id = id;
        this.name = name;
        this.password = password;
    }

    public Admin(String name, String password) {
        this.id = id;
        this.name = name;
        this.password = password;
    }


    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 String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "Admin{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

3.如果你用IDEA,当映射的xml文件在src文件夹下时,需要在mybatis-config.xml的build节点下添加

    <resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.xml</include>
        </includes>
      </resource>
    </resources>

这样xml文件才会有用

2.xml配置方式

1.mybatis-config.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>
    <!--设置别名!-->
    <typeAliases>
        <package name="cn.yf.entity"></package>
    </typeAliases>
    <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://127.0.0.1:3306/sms?characterEncoding=UTF-8" />
                <property name="username" value="root" />
                <property name="password" value="admin" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/AdminMapper.xml"></mapper>
    </mappers>
</configuration>

2.AdminMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//rnybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="cn.yf.mapper.AdminMapper">
    <select id="getAdmin" parameterType="int" resultType="Admin">
         select * from Admin where id = #{id}
    </select>

    <insert id="addAdmin" parameterType="Admin">
          insert into Admin(name,password) values(#{name},#{password})
    </insert>

    <delete id="deleteAdmin" parameterType="int">
        delete from Admin where id = #{id}
    </delete>

    <update id="updateAdmin" parameterType="Admin">
        update Admin set name=#{name},password=#{password} where id=#{id}
    </update>

    <select id="queryAllAdmin" resultType="Admin">
        select * from Admin
    </select>

</mapper>

3.测试

package cn.yf.junit;

import cn.yf.entity.Admin;
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.Test;

import java.io.IOException;
import java.io.Reader;
import java.util.List;

public class test {

    @Test
    public void test1() throws IOException {
        Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        String message = "cn.yf.mapper.AdminMapper.getAdmin";
        Admin Admin = sqlSession.selectOne(message,2);
        System.out.println(Admin);
        sqlSession.close();
    }

    @Test
    public void test2() throws IOException {
        Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        String message = "cn.yf.mapper.AdminMapper.addAdmin";
        Admin Admin = new Admin("mao","123");
        sqlSession.insert(message,Admin);
        sqlSession.commit();
        sqlSession.close();
    }

    @Test
    public void test3() throws IOException {
        Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        String message = "cn.yf.mapper.AdminMapper.deleteAdmin";
        sqlSession.delete(message,11);
        sqlSession.commit();
        sqlSession.close();
    }

    @Test
    public void test4() throws IOException{
        Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        String message = "cn.yf.mapper.AdminMapper.updateAdmin";
        Admin Admin = new Admin(3,"baby","520");
        sqlSession.update(message,Admin);
        sqlSession.commit();
        sqlSession.close();
    }

    @Test
    public void test5() throws IOException {
        Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        String message = "cn.yf.mapper.AdminMapper.queryAllAdmin";
        List<Admin> AdminList = sqlSession.selectList(message);
        System.out.println(AdminList);
        sqlSession.close();
    }


}

3.动态代理的方式实现

1.mybatis-config.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>

    <typeAliases>
        <package name="cn.yf.entity"></package>
    </typeAliases>

    <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://127.0.0.1:3306/sms?characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="admin"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="cn/yf/mapper/AdminMapper.xml"/>
    </mappers>
</configuration>

2.AdminMapper.xml(namespace的值为接口文件的代码文件名)

<?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="cn.yf.mapper.AdminMapper">
    <select id="queryAdminById" resultType="Admin" parameterType="int">
        select * from admin where id = #{id}
    </select>

    <insert id="addAdmin" parameterType="Admin">
        insert into admin(name,password) values(#{name},#{password})
    </insert>

    <delete id="deleteAdmin" parameterType="int">
        delete from admin where id = #{id}
    </delete>

    <update id="updateAdmin" parameterType="Admin">
        update admin set name=#{name},password=#{password} where id=#{id}
    </update>

    <select id="queryAllAdmin" resultType="Admin">
        select * from admin
    </select>

</mapper>

3.AdminMapper接口(方法的名字,返回值,参数都要和映射文件相对应),这样我们就可以只需要接口就可以定位到映射的xml文件

package cn.yf.mapper;

import cn.yf.entity.Admin;

import java.util.List;

public interface AdminMapper {

    /**
     * 根据id查询admin
     * @param id admin的id
     * @return admin
     */
    Admin queryAdminById(int id);

    /**
     * 查询所有admin
     * @return admin的list
     */
    List<Admin> queryAllAdmin();

    /**
     * 添加管理员
     * @param admin 管理员实体类
     */
    void addAdmin(Admin admin);

    /**
     * 根据id删除admin
     * @param id 管理员id
     */
    void deleteAdmin(int id);

    /**
     * 更新Admin信息
     * @param admin
     */
    void updateAdmin(Admin admin);

}

4.测试

package cn.yf.junit;

import cn.yf.entity.Admin;
import cn.yf.mapper.AdminMapper;
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.Test;


import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class test1 {

    @Test
    public void test1() throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession session = sqlSessionFactory.openSession();
        AdminMapper adminMapper = session.getMapper(AdminMapper.class);
        Admin admin = adminMapper.queryAdminById(1);
        System.out.println(admin);
    }

    @Test
    public void test2() throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession session = sqlSessionFactory.openSession();
        AdminMapper adminMapper = session.getMapper(AdminMapper.class);
        List<Admin> adminList = adminMapper.queryAllAdmin();
        System.out.println(adminList);
    }

    @Test
    public void test3() throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession session = sqlSessionFactory.openSession();
        AdminMapper adminMapper = session.getMapper(AdminMapper.class);
        Admin admin = new Admin(4,"nan","123");
        adminMapper.addAdmin(admin);
        session.commit();
        session.close();
    }

    @Test
    public void test4() throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession session = sqlSessionFactory.openSession();
        AdminMapper adminMapper = session.getMapper(AdminMapper.class);
        adminMapper.deleteAdmin(7);
        adminMapper.deleteAdmin(8);
        session.commit();
        session.close();
    }

    @Test
    public void test5() throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession session = sqlSessionFactory.openSession();
        AdminMapper adminMapper = session.getMapper(AdminMapper.class);
        Admin admin = new Admin(3,"sb","123");
        adminMapper.updateAdmin(admin);
        session.commit();
        session.close();
    }

}

4.基于注解的方式

1.mybatis-config.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>
    <typeAliases>
        <package name="cn.yf.entity"></package>
    </typeAliases>
    <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://127.0.0.1:3306/sms?characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="admin"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper class="cn.yf.mapper.AdminMapper"></mapper>
    </mappers>

</configuration>

2.AdminMapper接口

package cn.yf.mapper;

import cn.yf.entity.Admin;
import org.apache.ibatis.annotations.*;

import java.util.List;

public interface AdminMapper {

    /**
     * 根据id查询admin
     * @param id admin的id
     * @return admin
     */
    @Select("select * from admin where id=#{id}")
    Admin queryAdminById(@Param(value="id")int id);

    /**
     * 查询所有admin
     * @return admin的list
     */
    @Select("select * from admin")
    List<Admin> queryAllAdmin();

    /**
     * 添加管理员
     * @param admin 管理员实体类
     */
    @Insert("insert into admin(name, password) values(#{name}, #{password})")
    void addAdmin(Admin admin);

    /**
     * 根据id删除admin
     * @param id 管理员id
     */
    @Delete("delete from admin where id = #{id}")
    void deleteAdmin(@Param(value="id")int id);

    /**
     * 更新Admin信息
     * @param admin
     */
    @Update("update admin set name=#{name},password=#{password} where id =${id}")
    void updateAdmin(Admin admin);

}

3.测试

package cn.yf.junit;


import cn.yf.entity.Admin;
import cn.yf.mapper.AdminMapper;
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.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class test {

    @Test
    public void test1() throws IOException {
        String str = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(str);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession =  sqlSessionFactory.openSession();
        AdminMapper adminMapper = sqlSession.getMapper(AdminMapper.class);
        List<Admin> adminList = adminMapper.queryAllAdmin();
        System.out.println(adminList);
    }

    @Test
    public void test2() throws IOException{
        String str = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(str);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession =  sqlSessionFactory.openSession();
        AdminMapper adminMapper = sqlSession.getMapper(AdminMapper.class);
        Admin admin = adminMapper.queryAdminById(1);
        System.out.println(admin);
    }

    @Test
    public void test3() throws IOException {
        String str = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(str);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession =  sqlSessionFactory.openSession();
        AdminMapper adminMapper = sqlSession.getMapper(AdminMapper.class);
        Admin admin = new Admin("hahahaaa","123");
        adminMapper.addAdmin(admin);
        sqlSession.commit();
        sqlSession.close();
    }

    @Test
    public void test4() throws IOException {
        String str = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(str);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession =  sqlSessionFactory.openSession();
        AdminMapper adminMapper = sqlSession.getMapper(AdminMapper.class);
        adminMapper.deleteAdmin(10);
        sqlSession.commit();
        sqlSession.close();
    }

    @Test
    public void test5() throws IOException {
        String str = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(str);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession =  sqlSessionFactory.openSession();
        AdminMapper adminMapper = sqlSession.getMapper(AdminMapper.class);
        Admin admin = new Admin(3,"入职","11111");
        adminMapper.updateAdmin(admin);
        sqlSession.commit();
        sqlSession.close();
    }


}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值