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(); }