简单使用MyBatis增删查改


准备:

核心配置文件:sqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>
        <!DOCTYPE configuration
                PUBLIC "-//resource.mybatis.org//DTD Config 3.0//EN"
                "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

<!-- 配置开发环境,可以配置多个,在具体用时再做切换 -->
<environments default="development">
    <environment id="development">

        <!-- 事务管理类型:JDBC、MANAGED -->
        <transactionManager type="JDBC"></transactionManager>

        <!-- 数据源类型:POOLED、UNPOOLED、JNDI -->
        <dataSource type="POOLED">
            <property name="driver" value="com.mysql.jdbc.Driver"></property>
            <property name="url" value="jdbc:mysql://localhost:3306/mybatis01?characterEncoding=utf-8"></property>
            <property name="username" value="root"></property>
            <property name="password" value=""></property>
        </dataSource>
    </environment>
</environments>

<!--告诉mybatis需要引入哪些Mapper映射文件-->
<mappers>
    <mapper resource="cn/hd/pojo/UserMapper.xml"></mapper>
</mappers>
</configuration>

映射文件:UserMapper.xml

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

实体类:User

package cn.hd.pojo;

public class User {
   
private Integerid;
   
private Stringname;
   
private Stringsex;
   
private Stringaddress;
   
private Integerbalance;

   
public User(){
    }

   
public User(Integerid, String name, String sex, String address, Integer balance) {
       
this.id = id;
       
this.name = name;
       
this.sex = sex;
       
this.address = address;
       
this.balance = balance;
    }

   
public IntegergetId() {
       
returnid;
    }

   
publicvoid setId(Integer id) {
       
this.id = id;
    }

   
public StringgetName() {
       
returnname;
    }

   
publicvoid setName(String name) {
       
this.name = name;
    }

   
public StringgetSex() {
       
returnsex;
    }

   
publicvoid setSex(String sex) {
       
this.sex = sex;
    }

   
public StringgetAddress() {
       
returnaddress;
   }

   
publicvoid setAddress(String address) {
       
this.address = address;
    }

   
public IntegergetBalance() {
       
returnbalance;
    }

   
publicvoid setBalance(Integer balance) {
       
this.balance = balance;
    }

   
@Override
   
publicString toString() {
       
return"User{" +
               
"id=" + id+
               
", name='" + name + '\'' +
               
", sex='" + sex + '\'' +
               
", address='" + address + '\'' +
               
", balance=" + balance +
               
'}';
    }
}

测试类:Demo

数据库:mybatis01 

数据库表:user

简单使用MyBatis增删查改

一、通过id查找一个用户

映射文件:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper

        PUBLIC "-//resource.mybatis.org//DTD Mapper 3.0//EN"

        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="test">

    <!--通过id查找一个用户-->

    <select id="findUserById" parameterType="int" resultType="cn.hd.pojo.
User" >

         SELECT * FROM user WHERE id =  #{id}

    </select>
</mapper>


测试代码:

public class Demo {
    /**
     * 通过id查找一个用户
     * @throws IOException
     */
    @Test
    public void fun() throws IOException {
        InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in);
        SqlSession session = sessionFactory.openSession();
        User user = session.selectOne("test.findUserById", 1);
        System.out.println(user);
        session.close();
    }

 }

测试结果:

简单使用MyBatis增删查改

二、通过名字模糊查询用户


映射文件:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper

        PUBLIC "-//resource.mybatis.org//DTD Mapper 3.0//EN"

        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="test">

    <!--通过名字模糊查找用户-->

    <select id="findByName" parameterType="String" resultType="cn.hd.pojo.User">

        SELECT * FROM user WHERE name like #{name}

    </select>

</mapper>



测试代码:

public class Demo {
    
    /**
     * 通过名字模糊查找用户
     * @throws IOException
     */
    @Test
    public void fun1() throws IOException {
        InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in);
        SqlSession session = sessionFactory.openSession();
        List<User> list = session.selectList("test.findByName", "%尔%");
        System.out.println(list);
        session.close();
    }
    
}

测试结果:

[User{id=1, name='普尔', sex='男', address='苏州', balance=1000}, 

User{id=3, name='哈塞尔', sex='男', address='上海', balance=1000}, 

User{id=4, name='奎尔', sex='女', address='北京', balance=10000}]


三、添加一个用户


映射文件:

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

        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="test">

<!--通过id删除用户-->

<delete id="deleteUserById" parameterType="int">

    DELETE FROM user WHERE id = #{id}

</delete>


</mapper>


测试代码:


@Test
public void fun() throws IOException {
    InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
    SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in);
    SqlSession session = sessionFactory.openSession();
    int delete = session.delete("test.deleteUserById", 2);
    session.commit();
    System.out.println(delete);
    session.close();
}



测试结果:

简单使用MyBatis增删查改


四、通过id删除用户映射文件:


<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper

        PUBLIC "-//resource.mybatis.org//DTD Mapper 3.0//EN"

        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="test">

    <!--通过id删除用户-->

    <delete id="deleteUserById" parameterType="int">

        DELETE FROM user WHERE id = #{id}

    </delete>

</mapper>

测试代码:

public class Demo {
    /**
     *通过id删除用户
     * @throws IOException
     */
    @Test
    public void fun3() throws IOException {
        InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in);
        SqlSession session = sessionFactory.openSession();

        int row = session.delete("test.deleteUserById", 13);
        session.commit();

        System.out.println(row);
        session.close();
    }
}

测试结果:

简单使用MyBatis增删查改


五、通过id修改用户


映射文件

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper

        PUBLIC "-//resource.mybatis.org//DTD Mapper 3.0//EN"

        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="test">

    <!--通过id修改用户-->

    <update id="updateUserById" parameterType="cn.hd.pojo.User">

        UPDATE user SET name = #{name},sex = #{sex},address = #{address},balance = #{balance} WHERE id = #{id}

    </update>

</mapper>
测试代码:

public class Demo {
    /**
     * 通过id修改用户
     * @throws IOException
     */
    @Test
    public void fun4() throws IOException {
        InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in);
        SqlSession session = sessionFactory.openSession();
        User user = new User();
        user.setId(14);
        user.setName("时");
        user.setSex("男");
        user.setAddress("嘉兴");
        user.setBalance(500);
        int update = session.update("test.updateUserById", user);
        session.commit();

        System.out.println(update);
        session.close();
    }
}

测试结果

简单使用MyBatis增删查改

注意:增删改,需要提交事务才能持久化到数据库