关于java-MyBatis-Spring学后笔记
Posted Lazy的笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于java-MyBatis-Spring学后笔记相关的知识,希望对你有一定的参考价值。
在学框架前,觉得框架是很难的,也是高大上的知识。从MyBatis到Spring这个过程,有点身在被教的情节中,有点迷糊,只能跟着教程走,想理清,最后还是有点没理清。直到学Hibernate时,对前面学的知识慢慢清晰起来。
Hibernate跟MyBatis功能基本一样,都是针对数据库操作的框架,基本思路也差不多,简化JDBC访问过程。这里主要谈一下MyBatis,Hibernate在学习中。
MyBatis里面没有什么新的知识点,主要是对数据库接口以及SQL语句进行更强大的操作。在JDBC是更加类的加载器连接数据库,在MyBatis中是通过配置文件,以及MyBatis里面封装的SqlSessionFactory接口,通过这个接口产生SqlSession对象,这个对象是操作SQL语句的对象。在MyBatis中,所有的SqlSession对象都是通过SqlSessionFactory创建的。SqlSession对象通过调用写有SQL语句的映射配置文件。
<mapper namespace="cn.smbms.dao.user.UserMapper">
<!-- 查询用户表记录数 -->
<select id="count" resultType="int">
select count(1) as count from smbms_user
</select>
public interface UserMapper {
//查询用户信息
public int count();
这个映射配置文件主要是跟数据库Dao层方法接口相对应,里面的 id="count"与接口方法count()是一致的。数据实现层用SqlSession对象先加载这个方法接口的类,然后去获取响应的方法,再执行里面的SQL语句,返回响应的值。
int count = sqlSession.getMapper(UserMapper.class).count();
MyBatis强大功能,是对数据库操作灵活,可以自己制定多种查询语句。映射配置文件与数据库实现方法接口在同一个包下,名字也一样。如UserMapper.java;以及UserMapper.xml。
JDBC与MyBatis:JDBC是连接数据库,每次都要在数据操作层写相关的SQL语句,MyBatis实现了操作层与SQL语句的分离。
Spring主要两个功能IoC与AOP
IoC主要是类的操作也就是JavaBean,将所有类放在一个容器里
//读取配置文件
ApplicationContext context =
new ClassPathXmlApplicationContext("ApplicationContext.xml");
//获取增强对象
UserService userService = (UserService)context.getBean("userSerivce");
ApplicationContext 对象的getBean()方法,获得对应的类,不用通过new来创建对象。特别是关于一个类对另一个类的调用,直接在配置文件中直接赋予它的对象,无需在外面操作。
<bean id="userDao" class="dao.impl.UserDaoImpl"></bean>
<bean id="userService" class="service.impl.UserServiceImpl">
<!-- 向 UserServiceImpl(这是业务层)类中注入UserDaoImpl实例(一般都是工具类的调用,数据层)-->
<property name="dao" ref="userDao"></property>
</bean>
这里的service.impl.UserServiceImpl类引入了id="userDao"这个类也就是 class="dao.impl.UserDaoImpl",里面的方法是
public void addNewUser(User user) {
private UserDao dao;
dao.save(user);
System.out.println("helloworld");
}
name="dao"这个值要与类中的 private UserDao dao; 属性名一样,且通过setDao()方法将这个对象设置进去的。
其实IoC就是一个类的容器,类作为另一个类的参数直接在配置文件中直接实现。
AOP面向切面(增强处理类):将一些功能化的模块独立出来,不要在业务逻辑层体现,方便管理。通过插入目标方法的前后,来实现相关功能。主要有:日志管理、最终释放资源、事务管理、抛出异常等。主要具体程序。
Spring+MyBatis整合:有点疑问,下回整理
以上是关于关于java-MyBatis-Spring学后笔记的主要内容,如果未能解决你的问题,请参考以下文章