本节内容学习了如何通过Mybatis实现对数据库的增删改查操作。一共有两种实现方式,一是基于XML的实现;第二种是基于注解的实现。
下面来具体介绍两种方法的具体实现:
一、基于XML的实现
1 还是基于第一节中建立的User.java实体类;
2 新建一个工具类MybatisUtils.java(因为在后面的测试类中要得到sqlsessionFactory,代码都是一样的,所以给提取出来放在同一个类中当做工具类);
package com.mybatis.test2;
import java.io.InputStream;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.mybatis.test1.Test1;
/**
* 获得SqlSessionFactory的工具类
* @author WGS
*
*/
public class MybatisUtils {
public static SqlSessionFactory getSqlSessionFactory(){
String resource = "conf.xml";
//1 加载mybatis的配置文件,也加载关联的映射文件
InputStream is=Test1.class.getClassLoader().getResourceAsStream(resource);
//2 构建SqlSession工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
return sessionFactory;
}
}
3 建立sql的映射XML文件:userMapper.xml
【注】此处的_User见下面的三.优化2
<?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">
<!--
通过XML文件的方式实现对数据库数据表的CRUD操作
-->
<!--定义操作 users 表的sql 映射文件:userMapper.xml -->
<mapper namespace="com.mybatis.test2.userMapper">
<select id="insertUser" parameterType="_User">
INSERT INTO users(name,age) values(#{name},#{age})
</select>
<select id="deleteUser" parameterType="int">
DELETE FROM users WHERE id=#{id}
</select>
<select id="updateUser" parameterType="_User">
UPDATE users SET name=#{name},age=#{age} WHERE id=#{id}
</select>
<select id="selectUser" parameterType="int" resultType="_User">
SELECT * FROM users WHERE id=#{id}
</select>
<select id="selectAllUser" resultType="_User">
SELECT * FROM users
</select>
</mapper>
4
在第一节中建立的config.xml文件中注册上述的映射文件: