package org.wl.util;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class SqlSessionUtil {
private SqlSessionUtil() {
}
private static SqlSessionFactory sqlSessionFactory;
/**
* 类加载时初始化sqlSessionFactory对象
* 一个SqlSessionFactory对象对应一个environment,一个environment对应一个数据库
*/
static {
try {
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
sqlSessionFactory = sqlSessionFactoryBuilder.build(Resources.getResourceAsStream("sqlMapConfig.xml"));
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 每调用一次getSqlSession()可获取一个新的会话,需要手动提交
* @return 新的会话对象
*/
public static SqlSession getSqlSession() {
return sqlSessionFactory.openSession();
}
}
package org.wl.pojo;
public class User {
private String id;
private String name;
private Integer age;
public User() {
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
package org.wl.service;
import org.wl.pojo.User;
public interface UserDao {
User queryUserById(String id);
}
package org.wl.impl;
import org.apache.ibatis.session.SqlSession;
import org.wl.pojo.User;
import org.wl.service.UserDao;
import org.wl.util.SqlSessionUtil;
public class UserDaoImpl implements UserDao {
@Override
public User queryUserById(String id) {
SqlSession sqlSession = SqlSessionUtil.getSqlSession();
User user = sqlSession.selectOne("user.queryUserById",id);
sqlSession.close();
return user;
}
}
1.5 编写测试类
public class UserTest {
@Test
public void testQueryUserById(){
UserDao userDao = new UserDaoImpl();
User user = userDao.queryUserById("e9d97a78-9c1e-4520-bdc1-efc8b8903ccb");
System.out.println("result is: "+user);
}
}