CRUD操作主要有两种方式,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://localhost:3306/mybatis"/> <property name="username" value="root" /> <property name="password" value="root" /> </dataSource> </environment> </environments> <mappers> <mapper resource="com/hous/day2/userMapper.xml" /> <!-- <mapper class="com.hous.day2.i.UserMapper" /> --> </mappers> </configuration>
<?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.hous.day2.userMapper"> <insert id="addUser" parameterType="com.hous.day2.User"> insert into users(name, age) values(#{name},#{age}) </insert> <delete id="deleteUser" parameterType="int"> delete from users where id=#{id} </delete> <update id="updateUser" parameterType="com.hous.day2.User"> update users set name=#{name},age=#{age} where id=#{id} </update> <select id="getUser" parameterType="int" resultType="com.hous.day2.User"> select * from users where id=#{id} </select> <select id="getAllUsers" resultType="com.hous.day2.User"> select * from users </select> </mapper>
package com.hous.day2;
public class User {
private int id;
private String name;
private int age;
public User() {
super();
}
public User(String name, int age) {
super();
this.name = name;
this.age = age;
}
public User(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
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;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
package com.hous.day2;
import static org.junit.Assert.*;
import java.io.InputStream;
import java.util.List;
import java.util.Random;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test;
import com.hous.day2.i.UserMapper;
public class MyTest {
private SqlSession session = null;
@Before
public void setUp() throws Exception {
String resource = "day2/config.xml";
InputStream config = MyTest.class.getClassLoader().getResourceAsStream(resource);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(config);
// openSession可以设置为true自动提交,false手工提交
session = factory.openSession();
}
@Test
public void testAdd() {
String statement = "com.hous.day2.userMapper.addUser";
int insert = session.insert(statement, new User("hous", new Random().nextInt(130)));
System.out.println("增加影响的行数:" + insert);
session.commit();
session.close();
}
@Test
public void testDelete() {
String statement = "com.hous.day2.userMapper.deleteUser";
int delete = session.delete(statement, 7);
System.out.println("删除影响的行数:" + delete);
session.commit();
session.close();
}
@Test
public void testUpdate() {
String statement = "com.hous.day2.userMapper.updateUser";
int update = session.update(statement, new User(3, "shanshanbox", new Random().nextInt(317)));
System.out.println("更新影响行数:" + update);
session.commit();
session.close();
}
@Test
public void testGetUser() {
String statement = "com.hous.day2.userMapper.getUser";
User user = session.selectOne(statement, 2);
System.out.println("查询单个用户" + user.toString());
session.commit();
session.close();
}
@Test
public void testAllUsers() {
String statement = "com.hous.day2.userMapper.getAllUsers";
List<User> users = session.selectList(statement);
System.out.println("查询所有用户" + users.toString());
session.commit();
session.close();
}
@Test
public void testAdd2() {
UserMapper mapper = session.getMapper(UserMapper.class);
int add = mapper.add(new User("shanshanbox", new Random().nextInt(130)));
System.out.println("影响行数:" + add);
session.commit();
session.close();
}
}
用接口和注解的方式实现CURD操作
package com.hous.day2.i;
import java.util.List;
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.hous.day2.User;
public interface UserMapper {
@Insert("insert into users(name, age) values(#{name},#{age})")
public int add(User user);
@Delete("delete from users where id=#{id}")
public int delete(int id);
@Update("update users set name=#{name},age=#{age} where id=#{id}")
public int update(User user);
@Select("select * from users where id=#{id}")
public User getUser(int id);
@Select("select * from users")
public List<User> getAllUsers();
}