从架构来整合学过的Hibernate 与 MyBatisjava
(一)Hibernate sql
(1)环境搭建数据库
(2)配置hibernate.cfg.xml文件session
(3)编写类与hibernate的映射文件mybatis
(4)Dao层实现经过对象操做数据库架构
//读取配置文件 Configuration cfg = new Configuration().configure(); //建立SessionFactory工厂 SessionFactory factory = cfg.buildSessionFactory(); Session session = null; try{ session = factory.openSession(); //开启事务 session.beginTransaction(); User user = new User(str1,str2,20); //实体对象 //操做函数 session.save(user); //提交事务 session.getTransaction().commit(); }catch(Exception e){ e.printStackTrace(); //回滚事务 session.getTransaction().rollback(); }finally{ if(session != null){ if(session.isOpen()){ //关闭session session.close(); } } }
(二)MyBatisapp
(1)环境搭建函数
(2)配置Config.xml文件ui
(3)编写类与hibernate的映射文件spa
(4)Dao层实现经过对象操做数据库
//mybatis的配置文件 String resource = "conf.xml"; //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件) InputStream is = Test1.class.getClassLoader().getResourceAsStream(resource); //构建sqlSession的工厂 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is); //使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件) //Reader reader = Resources.getResourceAsReader(resource); //构建sqlSession的工厂 //SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); //建立能执行映射文件中sql的sqlSession SqlSession session = sessionFactory.openSession(); // 映射sql的标识字符串, // me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值, // getUser是select标签的id属性值,经过select标签的id属性值就能够找到要执行的SQL String statement = "me.gacl.mapping.userMapper.getUser";//映射sql的标识字符串 //执行查询返回一个惟一user对象的sql User user = session.selectOne(statement, 1);