创建测试函数
直接在IDE中使用psvm创建main函数:
public static void main(String[] args) throws Exception{
//1. 读取配置文件
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
//2. 创建SqlSessionFactory工厂
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(in);
首先读取配置文件
然后创建一个SqlSessionFactory工厂
这里有一个Builder工厂类,把内部的实现封装好了。
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.InputStream;
import java.util.List;
public class MyBatisTest {
/**
* 入门案例
* @param args
*/
public static void main(String[] args) throws Exception{
//1. 读取配置文件
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
//2. 创建SqlSessionFactory工厂
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(in);
//3. 使用工厂生产SqlSession对象
SqlSession session = factory.openSession();
//4. 使用SqlSession创建Dao接口的代理对象
IUserDao userDao = session.getMapper(IUserDao.class);
//5. 使用代理对象执行方法
List<User> users = userDao.findAll();
for(User user : users) {
System.out.println(user);
}
//6. 释放资源
session.close();
in.close();
}
}
运行完毕之后,会报错:
也就是没有返回类型。
在IUserDao中,需要加上:
<select id="findAll" resultType="User">
select * from user
</select>
也就是将返回值封装到User对象中。
修改这个之后,就可以看到查询结果:
使用注解方式
在方法上面添加select注解。
public interface IUserDao {
//用户的持久层接口
/**
* 查询所有操作
* @return
*/
@Select("select * from user")
List<User> findAll();
}
在配置文件上面,使用class
<mappers>
<mapper class="IUserDao"/>
</mappers>
这样执行,仍然能够访问数据库
- 需要在方法上面添加注解
- 然后再mapper里面使用class,后面添加完整的方法名。
实际开发中越简练越好,