mybatis实现查找列表以及增删改差

1、首先创建User类与表中结构相对应

User.class,写好getter和setter方法。

package com.xiao.mybatis.bean;

public class User {
    private int id;
    private String name;
    int age;
    String sex;
    String school;

    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 int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getSchool() {
        return school;
    }

    public void setSchool(String school) {
        this.school = school;
    }
}

2、写IUser接口映射文件,里面有增删改差和获取用户列表的方法。

package com.xiao.mybatis.dao;

import com.xiao.mybatis.bean.User;

import java.util.List;

public interface IUser {
    public List<User> getUserList();
        public void insertUser(User user);
        public void updateUser(User user);
        public void deleteUser(int id);
        public User getUser(int id);


}

3、写mapper映射文件User.xml

其中,有对应IUser接口中,每一个方法的sql语句类型,语句具体值,参数类型和返回值类型。namespace一定要是IUser所在的位置。

<?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.xiao.mybatis.dao.IUser">
    <select id="getUser" parameterType="int" resultType="com.xiao.mybatis.bean.User">
        SELECT *
        FROM USER
        WHERE id = #{id}
    </select>

    <insert id="insertUser" parameterType="User">
        INSERT INTO USER (id,name,age,sex,school)
        VALUES (#{id},#{name},#{age},#{sex},#{school})
    </insert>

    <select id="getUserList" resultType="com.xiao.mybatis.bean.User">
        select * FROM  USER
    </select>

    <update id="updateUser" parameterType="User">
        UPDATE USER
        SET
        name=#{name},
        age = #{age},
        sex = #{sex},
        school = #{school}
        WHERE
        id =
        #{id}
    </update>


    <delete id="deleteUser" parameterType="int">
        DELETE FROM USER WHERE id = #{id}
    </delete>

</mapper>

4、编写主类进行测试。

package com.xiao.mybatis.bean;
/*
*
* 实现增删改查
* */

import com.xiao.mybatis.dao.IUser;
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.Reader;
import java.text.MessageFormat;
import java.util.List;

public class DemoTest {

    private static SqlSessionFactory sqlSessionFactory;

    static {
        try{
            Reader reader = Resources.getResourceAsReader("mybatis-remote-config.xml");
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        SqlSession session = sqlSessionFactory.openSession();
        try{

            // 用户数据列表
            //getUserList();
            //插入数据
             //testInsert();

            // 更新用户
            testUpdate();

            // 删除数据
            //testDelete();
        }finally {
            session.close();
        }
    }

    /*
    * 添加用户信息
    * */
    public static void testInsert(){
        try{
            SqlSession session = sqlSessionFactory.openSession();
            //获取mapper
            IUser userMapper = session.getMapper(IUser.class);
            System.out.println("Test insert>>>>>>>>>>>>>");

            //执行插入
            User user = new User();
                    user.setId(8);
                    user.setName("提莫");
                    user.setAge(5);
                    user.setSex("未知");
                    user.setSchool("约德尔");
                    userMapper.insertUser(user);

                    //提交事务
            session.commit();

            //插入之后显示用户信息
            System.out.println("after insert>>>>>>>>>>>>");
            getUserList();
            System.out.println("Test insert finished>>>>>>>>>>>>");
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    /*
    * 获取用户列表
    * */
    public static void getUserList(){
        try{
            SqlSession session = sqlSessionFactory.openSession();
            IUser iuser = session.getMapper(IUser.class);
            //显示user信息
            System.out.println("Test Get Start>>>>>>>>>>>>");
            printUsers(iuser.getUserList());
            System.out.println("Test get finished>>>>>>>>>>");
        }catch (Exception e){
            e.printStackTrace();
        }
    }


    public static void testUpdate()
    {
        try
        {
            SqlSession session = sqlSessionFactory.openSession();
            IUser iuser = session.getMapper(IUser.class);
            System.out.println("Test update start...");
            printUsers(iuser.getUserList());
            // 执行更新
            User user = iuser.getUser(8);
            user.setName("New name");
            iuser.updateUser(user);
            // 提交事务
            session.commit();
            // 显示更新之后User信息
            System.out.println("After update");
            printUsers(iuser.getUserList());
            System.out.println("Test update finished...");
        }catch (Exception e)
        {
            e.printStackTrace();
        }
    }


    // 删除用户信息
    public static void testDelete()
    {
        try
        {
            SqlSession session = sqlSessionFactory.openSession();
            IUser iuser = session.getMapper(IUser.class);
            System.out.println("Test delete start...");
            // 显示删除之前User信息
            System.out.println("Before delete");
            printUsers(iuser.getUserList());
            // 执行删除
            iuser.deleteUser(7);
            // 提交事务
            session.commit();
            // 显示删除之后User信息
            System.out.println("After delete");
            printUsers(iuser.getUserList());
            System.out.println("Test delete finished...");
        }catch (Exception e)
        {
            e.printStackTrace();
        }
    }

    /**
     *
     * 打印用户信息到控制台
     *
     * @param users
     */
    private static void printUsers(final List<User> users) {
        int count = 0;

        for (User user : users) {
            System.out.println(MessageFormat.format(
                    "============= User[{0}]=================", ++count));
            System.out.println("User Id: " + user.getId());
            System.out.println("User Name: " + user.getName());
            System.out.println("User Age: " + user.getAge());
            System.out.println("User Sex: " + user.getSex());
            System.out.println("User school:" + user.getSchool());
        }
    }


}

5、别忘了还有mybatis配置文件。mybatis-remote-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>
        <typeAlias alias="User" type="com.xiao.mybatis.bean.User"/>
    </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://10.2.17.205:3306/IOTDB?useUnicode=true&characterEncoding=UTF-8"/>
                <property name="username" value="IOTUSER"/>
                <property name="password" value="******/>
            </dataSource>
        </environment>
    </environments>


    <mappers>
        <mapper resource="com/xiao/mybatis/xml/User.xml"/>
    </mappers>

</configuration>
参考教程

Mybatis增删改查



猜你喜欢

转载自blog.csdn.net/qq_34273888/article/details/81061228