SqlMapConfig.xml
<configuration>
<properties resource="db.properties">properties>
<typeAliases>
<typeAlias type="com.yunxiang.mybatis.pojo.User" alias="user"/>
<package name="com.yunxiang.mybatis.pojo"/>
typeAliases>
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper">
<property name="dialect" value="mysql"/>
plugin>
plugins>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
dataSource>
environment>
environments>
<mappers>
<package name="com.yunxiang.mybatis.dao"/>
mappers>
configuration>
mybatis默认支持的别名类型
注:mybatis中可以直接使用默认的别名来代替对应的数据类型,但是当用到mybatis中没有定义别名的数据类型时,就要写出数据的全名。如:在使用list集合时,需要使用"java.lang.List"。
映射文件的UserMapper.xml
<mapper namespace="com.yunxiang.mybatis.dao.UserMapper">
<select id="findUserListById" parameterType="java.util.List" resultType="com.yunxiang.mybatis.pojo.User">
select * from user
<where>
<if test="list != null">
<foreach collection="list" item="id" open="(" close=")" separator="or">
id = #{id}
foreach>
if>
where>
select>
<select id="findUserById" parameterType="int" resultType="com.yunxiang.mybatis.pojo.User">
select * from user where id = #{id}
select>
<select id="findUserByName" parameterType="map" resultType="com.yunxiang.mybatis.pojo.User">
select * from user
<where>
<if test="sex != null and sex != '' ">
or sex = #{sex}
if>
<choose>
<when test=" _parameter != null and _parameter !='' ">
name like "%"#{name}"%"
when>
<otherwise>1=1otherwise>
choose>
where>
select>
<insert id="insertUser" parameterType="com.yunxiang.mybatis.pojo.User">
insert into user(name,brithday,sex,address) values(#{name},#{brithday},#{sex},#{address})
insert>
<delete id="deleteUserById" parameterType="int">
delete from user where id = #{id}
delete>
<update id="updateUser" parameterType="com.yunxiang.mybatis.pojo.User">
update user
<set>
<if test=" name != null and name != '' ">
name = #{name},
if>
<if test=" sex != null and sex != '' ">
sex = #{sex},
if>
<if test=" brithday != null and brithday != '' ">
brithday = #{brithday},
if>
<if test=" address != null and address != '' ">
address = #{address},
if>
set>
where id = #{id}
update>
mapper>
UserMapper接口
import java.util.List;
import java.util.Map;
import com.yunxiang.mybatis.pojo.User;
public interface UserMapper {
User findUserById(int id);
List<User> findUserByName(Map<String, String> map);
List<User> findUserListById(List<Integer> list);
int deleteUserById(int id);
int insertUser(User user);
int updateUser(User user);
}
测试
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
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 org.junit.Before;
import org.junit.Test;
import com.yunxiang.mybatis.dao.UserMapper;
import com.yunxiang.mybatis.pojo.User;
public class UserMapperTest {
private SqlSessionFactory factory;
@Before
public void setUp() throws Exception{
//mybatis配置文件
String resource = "SQLMapConfig.xml";
//得到配置文件流
InputStream inputStream = Resources.getResourceAsStream(resource);
//创建会话工厂
factory = new SqlSessionFactoryBuilder().build(inputStream);
}
//根据id查询用户信息
@Test
public void getUserByIdTest() throws Exception {
//通过工厂得到SQLSession
SqlSession session = factory.openSession();
//获取UserMapper对象
UserMapper userMapper = session.getMapper(UserMapper.class);
User user = userMapper.findUserById(1);
System.out.println(user);
//释放资源
session.close();
}
//根据id查询多个用户信息
@Test
public void getUserListByIdTest() throws Exception {
//通过工厂得到SQLSession
SqlSession session = factory.openSession();
//获取UserMapper对象
UserMapper userMapper = session.getMapper(UserMapper.class);
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(11);
list.add(10);
List<User> userList = userMapper.findUserListById(list);
System.out.println(userList);
//释放资源
session.close();
}
//模糊查询
@Test
public void findUserByNameTest() throws Exception {
//通过工厂得到SQLSession
SqlSession session = factory.openSession();
//获取UserMapper对象
UserMapper userMapper = session.getMapper(UserMapper.class);
Map<String,String> map = new HashMap<String,String>();
map.put("sex", "女");
map.put("name", "曹");
List<User> list = userMapper.findUserByName(map);
System.out.println(list);
//释放资源
session.close();
}
//更新数据
@Test
public void updateUserTest() throws Exception {
//通过工厂得到SQLSession
SqlSession session = factory.openSession();
//获取UserMapper对象
UserMapper userMapper = session.getMapper(UserMapper.class);
User user = new User();
user.setId(8);
user.setName("貂蝉");
user.setSex("女");
int count = userMapper.updateUser(user);
System.out.println(count);
session.commit();
//释放资源
session.close();
}
//插入数据
@Test
public void insertUserTest() throws Exception {
//通过工厂得到SQLSession
SqlSession session = factory.openSession();
//获取UserMapper对象
UserMapper userMapper = session.getMapper(UserMapper.class);
User user = new User();
user.setId(3);
user.setName("曹操");
user.setAddress("安徽亳州");
user.setBrithday(new Date());
user.setSex("男");
int count = userMapper.insertUser(user);
System.out.println(count);
session.commit();
//释放资源
session.close();
}
//删除数据
@Test
public void deleteUserByIdTest() throws Exception {
//通过工厂得到SQLSession
SqlSession session = factory.openSession();
//获取UserMapper对象
UserMapper userMapper = session.getMapper(UserMapper.class);
userMapper.deleteUserById(9);
session.commit();
//释放资源
session.close();
}
}
如果程序运行时报错" org.apache.ibatis.binding.MapperMethod$SqlCommand",可以在pom.xml中加上如下配置。
<build>
<resources>
<resource>
<directory>src/main/javadirectory>
<includes>
<include>**/*.propertiesinclude>
<include>**/*.xmlinclude>
includes>
<filtering>falsefiltering>
resource>
<resource>
<directory>src/main/resourcesdirectory>
<includes>
<include>**/*.propertiesinclude>
<include>**/*.xmlinclude>
includes>
<filtering>falsefiltering>
resource>
resources>
build>