- 到这里,默认你使用过 Mybatis,且知道什么是 maven 项目。
公用的实体类
public class User {
private int id;
private String name;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public User(int id, String name, String password) {
this.id = id;
this.name = name;
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public User() {
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", password='" + password + '\'' +
'}';
}
}
工具类
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
//sqlSessionFactory --> sqlSession
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
//获取sqlSessionFactory对象
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
System.out.println(sqlSessionFactory);
} catch (IOException e) {
e.printStackTrace();
}
}
/* 获取 SqlSession */
public static SqlSession getSqlSession() {
return sqlSessionFactory.openSession();
}
}
配置的 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?useSSL=true&useUnicode=true&characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/jack/dao/UserMapper.xml" />
</mappers>
</configuration>
1. Mybatis 增删改查的实现
- UserMapper 接口
import com.jack.pojo.User;
import java.util.List;
import java.util.Map;
public interface UserMapper {
List<User> getUserList();
User getUserById(int id);
int addUser(User user);
int updateUser(User user);
int deleteUser(int id);
}
- UserMapper 接口对应的 XML
<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace=绑定一个对应的Dao/Mapper接口-->
<mapper namespace="com.jack.dao.UserMapper">
<!-- 查询操作 -->
<select id="getUserList" resultType="com.jack.pojo.User">
select * from mybatis.user
</select>
<select id="getUserById" parameterType="int" resultType="com.jack.pojo.User">
select * from user where id = #{id}
</select>
<!-- 添加操作 -->
<insert id="addUser" parameterType="com.jack.pojo.User">
insert into mybatis.user (id, name, password) values (#{id}, #{name}, #{password});
</insert>
<!-- 更新操作 -->
<update id="updateUser" parameterType="com.jack.pojo.User">
update mybatis.user set name = #{name}, password = #{password} where id = #{id};
</update>
<!-- 删除操作 -->
<delete id="deleteUser" parameterType="int">
delete from user where id = #{id}
</delete>
</mapper>
- 测试类
import com.jack.pojo.User;
import com.jack.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.List;
public class UserMapperTest01 {
@Test
public void test() {
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
/* 增删改查操作 */
List<User> userList = userMapper.getUserList();
System.out.println("========== userList ========");
for (User user : userList) {
System.out.print(user + " \t");
}
User userById = userMapper.getUserById(1);
System.out.println();
System.out.println("userById(1): " + userById);
/* 更新后的 userList01 */
int updateNum = userMapper.updateUser(new User(3, "404", "123456"));
List<User> userList01 = userMapper.getUserList();
System.out.println("========== 更新后的 userList01 ========");
for (User user : userList01) {
System.out.print(user + " \t");
}
System.out.println();
/* 删除后的 userList02 */
int delNum = userMapper.deleteUser(1);
List<User> userList02 = userMapper.getUserList();
System.out.println("========== 删除后的 userList02 ========");
for (User user : userList02) {
System.out.print(user + " \t");
}
/* 删除后的 userList03 */
System.out.println();
int addNum = userMapper.addUser(new User(4, "cerish404", "123456"));
List<User> userList03 = userMapper.getUserList();
System.out.println("========== 删除后的 userList03 ========");
for (User user : userList03) {
System.out.print(user + " \t");
}
sqlSession.close();
}
}