通过xml文件进行CRUD

  1. 创建一个java工程:mybatis2_CRUD、导入jar:com.springsource.org.junit-4.8.1.jar、junit-4.3.jar

  2. mybatis配置文件

<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:///firefly"/>

            <property name="username" value="root"/>

            <property name="password" value="root"/>

        </dataSource>

    </environment>

</environments>

<mappers>

    <mapper resource="com/firefly/mybatis2_crud/domain/userMapper.xml"/>

 

</mappers>
  1. 实体类和它的mapper文件:实体类就是上一个项目的user
<insert id="addUser" parameterType="com.firefly.mybatis2_crud.domain.User">

    insert into user(name,age) value(#{name},#{age});

</insert>



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

    delete from user where id=#{id}

</delete>



<update id="updateUser" parameterType="com.firefly.mybatis2_crud.domain.User">

    update user set name=#{name},age=#{age} where id=#{id}

</update>



<select id="getUser" parameterType="int" resultType="com.firefly.mybatis2_crud.domain.User">

    select * from user where id=#{a}

</select>



<select id="getAllUser" resultType="com.firefly.mybatis2_crud.domain.User">

    select * from user

</select>
  1. 测试文件

package com.firefly.mybatis2_crud.test;

import java.util.List;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.junit.Test;

import com.firefly.mybatis2_crud.domain.User;

import com.firelfy.mybatis2_crud.util.MybatisUtil;

public class TestCRUD {

@Test

public void testAdd(){

    SqlSessionFactory factory = MybatisUtil.getFactory();

    SqlSession session = factory.openSession();

    

    String state = "com.firefly.mybatis2_crud.domain.userMapper.addUser";

    User user = new User("kk",23);

    int insert = session.insert(state,user);

    System.out.println(insert);

    session.commit();

    session.close();

}



@Test

public void testUpdate(){

    SqlSessionFactory factory = MybatisUtil.getFactory();

    SqlSession session = factory.openSession();

    

    String state = "com.firefly.mybatis2_crud.domain.userMapper.updateUser";

    User user = new User(1,"kk",23);

    int success = session.update(state,user);

    System.out.println(success);

    session.commit();

    session.close();

}



@Test

public void testDelete(){

    SqlSessionFactory factory = MybatisUtil.getFactory();

    SqlSession session = factory.openSession();

    

    String state = "com.firefly.mybatis2_crud.domain.userMapper.deleteUser";

    Integer i = new Integer(3);

    int success = session.update(state,i);

    System.out.println(success);

    session.commit();

    session.close();

}



@Test

public void testGetAll(){

    SqlSessionFactory factory = MybatisUtil.getFactory();

    SqlSession session = factory.openSession();

    

    String state = "com.firefly.mybatis2_crud.domain.userMapper.getAllUser";

    List<User> list = session.selectList(state); 

    System.out.println(list);

    session.commit();

    session.close();

}

}

用注解的方法实现:

  1. 还是刚才那个工程

  2. 新建一个包,test1,在下面创建一个接口

package com.firefly.mybatis2_crud.test1;

import org.apache.ibatis.annotations.Delete;

import org.apache.ibatis.annotations.Insert;

import org.apache.ibatis.annotations.Select;

import org.apache.ibatis.annotations.Update;

import com.firefly.mybatis2_crud.domain.User;

public interface UserMapper {

@Insert("insert into user(name,age) value(#{name},#{age});")

public int add(User user);

@Delete("delete from user where id=#{id}")

public int deleteById(int id);

@Update("update user set name=#{name},age=#{age} where id=#{id}")

public int update(User user);

@Select("select * from user where id=#{a}")

public User getById(int id);

@Select("select * from user")

public List<User> getAllUser();

}

  1. 为我们的接口进行注册:在mybatis_config.xml中的标签下加入

  2. 测试类

package com.firefly.mybatis2_crud.test;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import com.firefly.mybatis2_crud.domain.User;

import com.firefly.mybatis2_crud.test1.UserMapper;

import com.firelfy.mybatis2_crud.util.MybatisUtil;

public class TestCRUD_ByAnnotation {

@org.junit.Test

public void testAddUser(){

    SqlSessionFactory factory = MybatisUtil.getFactory();

    SqlSession session = factory.openSession();

    

    UserMapper mapper = session.getMapper(UserMapper.class);

    User user = new User("hello", 12);

    int success = mapper.add(user);

    System.out.println(success);

    session.commit();

    session.close();

}

}

  1. package com.firefly.mybatis2_crud.test;

  2.     SqlSession session = factory.openSession();
    
  3.     session.close();
    

我们对以上的两种方法进行对比,当然注解要好使一些,编写简单y.mybatis2_crud.test;

  1.     SqlSession session = factory.openSession();
    
  2.     session.close();
    

我们对以上的两种方法进行对比,当然注解要好使一些,编写简单