总结:1.SSM框架(也加SSI框架):贯穿整个项目:Spring WEB层框架:SpringMVC dao层框架:mybaties
2.SSH框架: 贯穿整个项目:Spring WEB层框架:Structs2 dao层框架:hibernate
3.SSM框架和SSH框架可以交叉使用
4.Mybaties对jdbc对SQL数据库操作的过程进行封装,通过XML或者注解的方式将statement(statement、preparedStatement、CallableStatement)进行配置封装
5.JDBC的问题总结:1.数据库连接创建、释放频繁造成系统资源浪费,从而影响系统性能 2.sql语言中存在硬编码,修改维护比较麻烦,实际应用中sql变化较大,sql变动需要先改的 java代码
6.使用preparedStatement向占位符号传参数存在硬编码,因为sql语句的where条件不一定,可能多也可能少,修改sql还要修改代码,系统不易维护。
7.对结果集解析存在硬编码(查询列名),sql变化导致解析代码变化,系统不易维护,
8.SqlMapConfig.xml里面写配置文件相当于以前的JDBC写要连的1.数据库是sql和oracle,2.连接地址 3.数据库账号 4.数据库密码
UserMapper.xml: xml文件里面写sql语句;
<select id="getUserById(传递查询条件的对应键名;相当于往jsp页面传数据的那个代号码;这里传了个id也就是下面的#{id})" parameterType="Integer(这里写要查询字段的数据类型)" resultType(这里写的是查询数据表在java中相应的实例类;这里需要写路径来找到具体的User实例类)="com.oracle.pojo.User">
select * from user where id=#{id}; 这里是sql语句,id=#{id}这里的#{id}是取值方式相当于以前的? 是根据上面的id='getUserById'指定的参数传过来的 </select>
9.Demo01.java:这是测试类也是执行类,这里会把sql要查询的条件传给UserMapper.xml;xml文件里面然后完成查询
10. SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
// 2. 加载SqlMapConfig.xml配置文件
InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml"); 这里把配置文件SqlMapConfig.xm写进行括号;相当于JDBC
// 3. 创建SqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
// 4. 创建SqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
// 5. 执行SqlSession对象执行查询,获取结果User
// 第一个参数是User.xml的statement的id,第二个参数是执行sql需要的参数;
Object user = sqlSession.selectOne("getUserById", 1);
// 6. 打印结果
System.out.println(user);
// 7. 释放资源
sqlSession.close();