接口:UserMapper.java
package com.bjsxt.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.bjsxt.pojo.User;
public interface UserMapper {
/*
* 查询所有用户信息
*/
List<User> selAll();
/**
* 根据用户名和密码查询用户
* @param username
* @param password
* @return
*/
User selByUP(@Param("username")String username,@Param("password")String password);
}
映射文件UserMapper:
<?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">
<!--namespace="com.bjsxt.mapper.UserMapper":命名空间,权限定路径 -->
<mapper namespace="com.bjsxt.mapper.UserMapper">
<!--查询所有 -->
<select id="selAll" resultType="user">
select * from t_user
</select>
<!--根据用户名和密码查询用户 -->
<select id="selByUP" resultType="user"><!--有多参数时,如果接口方法中属性没有被@param修饰则可以使用:index 0,1 param1 param2
如果接口中属性被@param修饰则可以使用: 修饰名username,password和param1,param2
-->
select * from t_user where username=#{param1}and password=#{param2}
</select>
</mapper>
核心配置文件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>
<!--加载外部properties文件 -->
<properties resource="db.properties" />
<settings>
<!-- 设置mybatis使用log4j支持 -->
<setting name="logImpl" value="LOG4J"/>
</settings>
<!-- 设置别名 -->
<typeAliases >
<!--自己设置别名 -->
<!-- <typeAlias type="com.bjsxt.pojo.User" alias="u"/> -->
<!-- 直接写全限定路径,别名为类名且不区分大小写,最常用 -->
<!-- <typeAlias type="com.bjsxt.pojo.User"/> -->
<!-- 只写包名,别名为类名且这个包下的所有类的别名都是类名 -->
<package name="com.bjsxt.pojo"/>
</typeAliases>
<environments default="dev"> <!-- 指定哪一个环境 -->
<environment id="dev"> <!-- 配置开发环境 id:环境唯一标识符-->
<!-- 事务管理器 type="JDBC":以JDBC的方式管理事务 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 数据库连接池:配置连接池和参数 type="POOLED":采取连接池技术
property:配置参数
-->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!-- 扫描mapper文件 -->
<mappers>
<!-- <mapper resource="com/bjsxt/mapper/UserMapper.xml"/> -->
<package name="com.bjsxt.mapper"/>
</mappers>
</configuration>
测试:
package com.bjsxt.test;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import com.bjsxt.mapper.UserMapper;
import com.bjsxt.pojo.User;
import com.bjsxt.util.SessionUtil;
public class TestSelAll {
@Test
public void testSelAll(){
SqlSession session = SessionUtil.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);//获得接口类型对象
List<User> list = mapper.selAll();//接口对象调用接口中方法
for (User u : list) {
System.out.println(u);
}
session.close();
}
@Test
public void testParam(){
SqlSession session = SessionUtil.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
User u = mapper.selByUP("zhangsan", "123");
System.out.println(u);
}
}
注意:映射文件名必须和接口名相同
映射文件的id属性必须和接口中方法名相同
映射文件的namespace必须是接口的全限定路径(包名+类名)