mybatis -- mybatis笔记2--crud的两种方法
通过xml文件进行CRUD
创建一个java工程:mybatis2_CRUD、导入jar:com.springsource.org.junit-4.8.1.jar、junit-4.3.jar
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>
- 实体类和它的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>
- 测试文件
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();
}
}
用注解的方法实现:
还是刚才那个工程
新建一个包,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();
}
为我们的接口进行注册:在mybatis_config.xml中的
标签下加入 测试类
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();
}
}
package com.firefly.mybatis2_crud.test;
SqlSession session = factory.openSession();session.close();
我们对以上的两种方法进行对比,当然注解要好使一些,编写简单y.mybatis2_crud.test;
SqlSession session = factory.openSession();session.close();
我们对以上的两种方法进行对比,当然注解要好使一些,编写简单
