springmvc+mybatis+知识点+实训+day0803

34 篇文章 0 订阅
7 篇文章 0 订阅
知识回顾
  • springmvc,springioc,springaop;

  • 1、springmvc+jsp

  • 2、springmvc + json

1
  • ioc+springmvc开发案例

  • mvc-servlet;就是fileNotFoundExeception异常的那个错误

  • 扫包的时候连子包一起扫

  • ContextLoaderListener

  • classpath:application.xml

  • 乱码过滤器
ajax+mvc

导包

  • 导入servlet

  • jsp和jstl不需要了

  • lombok导入

  • jdbcUtil

  • spring-webmvc

  • fastjson

  • 配置DispatcherServlet(核心拦截器)

  • 原则上配置文件放在resources

  • namespace 可以修改名字,不能修改目录

  • classpath是那一层目录?是resources和java目录

  • 读配置文件在运行期间干,就是target的classes,运行时两个跑一块(java和resources),成为classes

  • 乱码过滤器:配置在web.xml

  • 配置监听器zai web.xml

contextConfigration
classpath:applicatinContext.xml


org.springframework.web.context.ContextLoaderListener

springmvc.xml中的跨域问题
  • /* 表示一层目录
  • /** 表示无限层目录
  • mvc:cors
    <mvc:mapping path="/**"></mvc:mapping>
    </mvc:cors>
ajax请求格式

$.ajax({

url: 'http://localhost/user/list',
type: 'get',
dataType: 'json',
success: function(response){
    console.log(response)
}

})

day0803下午

########## mybatis

  • 发展史:早期名字Ibatis apache,(1.xx 2.xx)

  • 是一款持久层框架:
    持久层:能把数据存住的那层。
    说白了,就是Dao层框架

  • 思维:ORM

  • object relational Mapping(对象关系映射)

  • pojo数据模型, 类-- 表

  • 类中的属性去映射表中的字段

  • hibernate框架: 把类和表配置映射关系
    类中的属性关系到表中的某个字段,操作java对象等同于操作数据库了。。查多少个java对象, 数据库查有多少记录, 保存一个java对象,根据对象所属的类,直接保存到相应的表中
    特点:根本不需要我们自己写sql语句,根据配置自动生成生成,
    存在效率问题:因为往往通过sql语句优化性能
    并且Hibernate比较重量级
    hibernate功能复杂,

  • mybatis: 半orm框架,sql还是自己写,查询返回的结果会自动映射为对象或者List,我们的jdbc就是一个orm的思想*****

  • java: JDBC连接数据库,对数据库进行操作

  • 只有数据库服务器能够执行sql语句********

  • 传sql语句到服务器,服务器执行,将结果返回到java中

  • 每调用一次dao层,相当于执行了一次IO操作,所以需要输入流和输出流,所以输入流和输出流都在连接Connecton中

  • jdbc老是不断的创建和销毁连接,是一件特别耗费性能

  • 连接池:说白了就是一个容器,存放连接的池子(字面意义)

  • 预先创建一个连接对象,在连接池里面存放,Connection对象
    如果有人要用,发起一次连接,然后结束,就是一个会话;
    每一次我想对sql语句执行,频繁的创建和销毁,(tnl),
    现在不在销毁了,等着给别人用

  • 连接池: 对比:
    功能 性能
    c3p0: 不要用它了
    druid:

  • 每次都是一个会话,也有一个session—sqlsession,就是连接完了就执行sql语句的

  • sqlSessionFactory–>创建sqlSession,驱动,url,用户名,密码

  • 我们怎么做呢?

  • 1、导包

  • 2、

  • & 符号转义 & &
    空格  
    < <

>

  • 1、导包
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.6</version>
</dependency>

```java

* 2、创建mybatis配置文件
* 导入:从文档导入
* mapper中
< mapper namespace="">中随便起名,但是两个不同的mapper中不能有同一个namespace

* 标签名和sql 语句第一个单词要一致,id随便起名,但是用一个文件不能有重复的id
* 3、测试类中
定义mybatis配置的路径,通过路径获取输入流,通过输入流构建SqlSessionFactory,通过SqlSessionFactory创建SqlSession,通过Seession调用 增删改产,参数传namespace.标签id

* 总结: 这个方式根本就不这么用,(开发当中)



* 第二种方式
* mybatis面向接口开发,配置文件不变,mapper注意Mapper路径和文件名和 必须和dao接口和 路径一致(一个在resource中的xml对应dao 中的接口,文件名字一致)
* namespace必须是接口的完全限定名
* id必须对应接口中的方法名
* 接口里面 方法禁止  重载************
* 


* 总结: 现在开发中也不是这样做的。。原生用法



#### 实际开发过程中的代码
* 最终方案: mybatis 集成到springioc中
* 说白了,就是讲sqlSessionFactory和Mapper对象器中放进IOC容器中即可
* 

#### 现在的用法
* 1\先导入两个包,一个是mybatis-spring,一个spring-orm
 导入mybatis,注意spring-orm和web-mvc版本号一致

* 2\配置连接池,先导包,druid
<bean id="datasource" class="com.alibaba.druid.pool.DruidDataSource">
 <property name="driverClassName" value="com.mysql.jdbc.Driver" > </property> 配置的是set方法,不是属性名

 <property name="url" value="jdbc:mysql://localhost:3306/db1?userUnicode=true&amp;charsetEncoding=uftf-8" > </property> 


  <property name="username" value="root" > </property> 

   <property name="password" value="1234" > </property> 

 <property name="minIdle" value="8" > </property> 

 <property name="maxActive" value="20" > </property> 

</bean>

* 3、配置sqlSessionFactory   ,mybatis-spring下
<bean id="sqlSessionFactory" class="com.">

<property name="dataSource" value="datasource" > </property> 
<property name="typeAliasePackage" value="" > </property> 

</bean>

* 4、配置mapperScanner
* 管理mapper代理对象
* <bean class="">




</bean>

* resultType 必须是完全限定名
* 前面配置了,所以不用了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值