关于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学后笔记的主要内容,如果未能解决你的问题,请参考以下文章

汇编学后感

css学后总结

《构建之法》第一章节学后有感

[机器学习] 1《机器学习系统设计》学后总结

在线学习关联考试,先学后考一体化考试平台

HTML5中Web Sql学后总结