使用MyBatis配置方式实现CRUD

什么是 MyBatis ?

MyBatis 是一款优秀的持久层框架,支持普通查询,存储过程和高级映射,和JDBC相比,Mybatis消除了几乎所有JDBC代码和手工参数设置以及结果集的检索。


Mybatis实例:

项目结构:

使用MyBatis配置方式实现CRUD


1.新建maven项目,导入相应的依赖

使用MyBatis配置方式实现CRUD


 2.创建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>
    <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/test"/>
                <property name="username" value="root"/>
                <property name="password" value="password"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 加入映射文件信息 -->
    <mappers>
        <mapper resource="com/entity/User.xml"/>
    </mappers>
</configuration>

3.新建实体类User,添加set和get方法和有参无参的构造方法(篇幅问题我就不把所有的贴出来了)

使用MyBatis配置方式实现CRUD

 4.创建sql映射文件 (User.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.dao.UserDao">
    <!--根据id得到user对象-->
      <select id="getUserId"  parameterType="int" resultType="com.entity.User">
          SELECT * from user WHERE uid=#{uid}
      </select>
    <!-- 查询user的所有记录-->
     <select id="getAllUser" resultType="com.entity.User">
         select * from user
     </select>
    <!-- 删除-->
    <delete id="delUser" parameterType="int" >
         delete from user where uid=#{uid}
    </delete>

    <!-- 添加-->
    <insert id="addUser" useGeneratedKeys="true" keyProperty="id">
        insert into user (uname,upwd)
        values (#{uname},#{upwd})
    </insert>
    <!-- 修改-->
    <update id="updateUser"  parameterType="com.entity.User">
        update user set uname=#{uname},upwd=#{upwd}
        where uid = #{uid}
    </update>

    
</mapper>

5.编写接口方法

public interface UserDao {

    public User getUserId(int uid);
    public List<User> getAllUser();
    public void delUser(int uid);
    public void addUser(User user);
    public void updateUser(User user);

}

6.完善pom.xml,让resource可以扫描xml映射文件

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

7.测试

    //删除
    @Test
    public  void  testMybatis01(){
            //读取映射文件
        //获取sqlsessionfactory对象
        try {
            SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("Mybatis-config.xml"));
            //通过Sqlsessionfactory拿到sqlsession
         SqlSession sqlSession= sqlSessionFactory.openSession();
        // User user= sqlSession.selectOne("User.getUsreId",11);
        //  System.out.println(user);
           UserDao2 userDao2= sqlSession.getMapper(UserDao2.class);
           userDao2.delUser(17);
           sqlSession.commit();
           sqlSession.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    //查询
    @Test
    public void qeryUser() throws IOException {
        //读取映射文件
        //获取sqlsessionfactory对象
        //通过sqlsessionfactory拿到sqlsession
        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("Mybatis-config.xml"));
        SqlSession sqlSession=sqlSessionFactory.openSession();
       UserDao2 userDao2= sqlSession.getMapper(UserDao2.class);
        List<User> li=userDao2.getAllUser();
        for (User user : li) {
            System.out.println(user);
        }
    }


    //添加
    @Test
    public void adduser() throws IOException {
        //读取映射文件
        //获取sqlsessionfactory对象
        //通过sqlsessionfactory拿到sqlsession
        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("Mybatis-config.xml"));
        SqlSession sqlSession= sqlSessionFactory.openSession();
        UserDao2 userDao2= sqlSession.getMapper(UserDao2.class);
        User user=new User();
        user.setUname("用户名2");
        user.setUpwd("密码2");
        userDao2.addUser(user);
        sqlSession.commit();
        sqlSession.close();

    }


    //修改
    @Test
    public void updateUser() throws IOException {
        //读取映射文件
        //获取sqlsessionfactory对象
        //通过sqlsessionfactory拿到sqlsession
        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("Mybatis-config.xml"));
        SqlSession sqlSession= sqlSessionFactory.openSession();
        UserDao2 userDao2= sqlSession.getMapper(UserDao2.class);
        User user=new User(14,"修改用户名","修改密码");
        userDao2.updateUser(user);

        sqlSession.commit();
        sqlSession.close();

    }









 




使用MyBatis配置方式实现CRUD