代码
private static SqlSessionFactory sqlSessionFactory;static { try { // 获得核心配置文件String resource = "mybits-config.xml"; // 加载核心配置文件InputStream inputStream = Resources.getResourceAsStream(resource); // 获取sqlSessionFactory对象sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);//获取sqlSession SqlSession sqlSession = sqlSessionFactory.openSession();} catch (IOException e) {throw new RuntimeException(e);} }
sqlSessionFactory(两个方法)
sqlSessionFactory.openSession()
会默认开启一个事务,但事务不会自动提交,也就意味着需要手动提交该事务,更新操作数据才会持久化到数据库中
openSession(boolean autoCommit)
参数为是否自动提交,如果设置为true,那么不需要手动提交事务
SqlSession
<T> T selectOne (string statement,object parameter) 查询一个 返回的是单个对象 <E> List<E> selectList (string statement,object parameter) 返回的是列表
int insert(String statenent,object paraIneter)
int update (string stateent,object paraIneter)
int delete (string statement,object parameter)
这些方法的第一个参数是唯一标识符 其实就是这个方法的id
第二个就是你要填写的参数,下面是查询操作
例子
@Testpublic void test2(){ mybitsUtils mybitsUtils = new mybitsUtils();SqlSession sqlSession = mybitsUtils.getSqlSession();User userbyId = sqlSession.selectOne("getUserbyId", 1);System.out.println(userbyId);}
getmapper
映射配置文件
<select id="getUserbyId" parameterType="int" resultType="org.pojo.User">select * from mybatis.user where id=#{id} </select>
接口 User getUserbyId(int id);
id="getUserbyId" 对应接口里面的方法名
parameterType="int" 对应接口里面的类型参数
resultType="org.pojo.User" 对应接口里面的返回值
getmapper里面的参数要的是接口的字节码文件
UserDao mapper = sqlSession.getMapper(UserDao.class); User userbyId = mapper.getUserbyId(1); System.*out*.println(userbyId);