您现在的位置是:网站首页 > 代码编程 > JAVA开发JAVA开发
【原】SSI框架基础整合搭建图文教程
不忘初心 2019-04-28 围观() 评论() 点赞() 附件(1) 【JAVA开发】
简介:三大框架,除了SSH之外,还有一个版本是SSI,struts+spring+ibatis,数据库映射的框架不再是hibernate了,而是ibatis,它对比hibernate相对灵活一些,而且上手更快,它作为mybatis的前身,也在市面上流行了很久。
三大框架,除了SSH之外,还有一个版本是SSI,struts + spring + ibatis,数据库映射的框架不再是hibernate了,而是ibatis,它对比hibernate相对灵活一些,而且上手更快,它作为mybatis的前身,也在市面上流行了很久,现在几乎不怎么用它了,当年也是做了详细笔记的,本文中整理分享给大家。
记得最开始使用它的时候,还闹了许多笑话,当时maven还没有流行起来,每次都还是需要在项目中单独引包,对于小白的我来说,对jar包都做了很多笔记和备份,深怕哪一天自己做项目找不到ibatis的jar包了。呵呵,废话不多说了,由于前面对ssh框架做了还算详细的讲解,这里也同样不再赘述了,只挑选一些关键点和不同点来讲解。
对于struts还是采用注解的方式,spring框架版本保持不变:
Struts:2.3.24
Spring:3.1.4.RELEASE
Ibatis:2.3.0
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.1.xsd">
<!-- 开启注解扫描,并指定路径 -->
<context:component-scan base-package="com.ssi"/>
<!--
加载配置文件,也可以使用下面的方式,更加简洁
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
</list>
</property>
</bean>
-->
<!-- 加载配置文件 -->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!-- 数据源配置 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="${jdbc.driverClass}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<!--连接池中保留的最大连接数。Default: 15 -->
<property name="maxPoolSize" value="100"/>
<!--连接池中保留的最小连接数。 -->
<property name="minPoolSize" value="1"/>
<!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
<property name="initialPoolSize" value="10"/>
<!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
<property name="maxIdleTime" value="30"/>
<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
<property name="acquireIncrement" value="5"/>
<!-- JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。Default: 0 -->
<!-- 但由于预缓存的statements 属于单个connection而不是整个连接池。 -->
<!-- 所以设置这个参数需要考虑到多方面的因素。 如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。 -->
<property name="maxStatements" value="0"/>
<!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
<property name="idleConnectionTestPeriod" value="60"/>
<!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 -->
<property name="acquireRetryAttempts" value="30"/>
<!-- 获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。 -->
<!-- 但是数据源仍有效 保留,并在下次调用getConnection()的时候继续尝试获取连接。 -->
<!-- 如果设为true,那么在尝试获取连接失败后该数据源将申明已断开并永久关闭。Default: false -->
<property name="breakAfterAcquireFailure" value="true"/>
<!-- 因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的 时候都将校验其有效性。 -->
<!-- 建议使用idleConnectionTestPeriod或automaticTestTable,等方法来提升连接测试的性能。Default: false -->
<property name="testConnectionOnCheckout" value="false"/>
</bean>
<!-- Tips:Spring从3.2.0版本开始就不再支持SqlMapClientFactoryBean了 -->
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<!--<property name="configLocation" value="/WEB-INF/sqlMapConfig.xml"/>-->
<property name="configLocation" value="classpath:sqlMapConfig.xml"/>
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 需要用这个模板来对数据库进行操作 -->
<bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate">
<property name="sqlMapClient" ref="sqlMapClient"/>
</bean>
<!-- 配置事务管理 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 支持@Transactional注解(声明式注解) -->
<tx:annotation-driven transaction-manager="transactionManager"/>
</beans>
跟hibernate的配置相比,还是有很大变化的,不过最终的目的也是为了配置一个sql模板,用来和数据库做交互。
在当时的笔记中,估计那会儿在看连接池的知识点,所以没有再使用spring的数据源,而是尝试使用了c3p0。
sqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<!-- 统一设置别名,这样可以全局使用 -->
<typeAlias alias="Book" type="com.ssi.entity.Book"/>
<typeAlias alias="School" type="com.ssi.entity.School"/>
<typeAlias alias="Student" type="com.ssi.entity.Student"/>
<!-- 这里要注意,sqlMap标签必须放到typeAlias下面,ibatis的dtd文件是这样定义顺序的 -->
<!-- 统一引入映射文件 -->
<sqlMap resource="sqlmap/Book.xml"/>
<sqlMap resource="sqlmap/School.xml"/>
<sqlMap resource="sqlmap/Student.xml"/>
</sqlMapConfig>
在ibatis的配置中,跟hibernate一样,也需要引入映射文件,指定alias这个并非是必须的,只是为了在mapper文件中可以少写几个单词,意义不大。
其他的配置跟ssh的注解版差不多,这里就不再贴出来了,大家可以去之前的文章中查看,也可以看代码中的注释。
没多少东西可说,再给大家看一下目录结构:
看完文章,有任何疑问,请加入群聊一起交流!!!
很赞哦! ()
上一篇:Linux环境中解压缩rar文件
下一篇:SSM框架基础整合搭建图文教程
相关文章
- SSH框架基础整合搭建图文教程
- SSH框架注解版搭建图文教程
- SSM框架基础整合搭建图文教程
- struts框架返回json数据
- IntelliJ IDEA 2024.2发布之后强推新UI,如何恢复老的经典UI界面
- Uninstall hasn't detected folder of intelli] lDEA installation. Probablyuninstall.exe was moved from the installation folder.
- 公众号CPS变现新宠:微赚淘客查券返利机器人,开启智能省钱赚钱新时代
- 高返利优惠券公众号推荐
- 返利公众号可信吗安全吗?返利机器人哪个佣金高?
- 唯品会购物返利公众号大揭秘:哪些真正好用的返利公众号?
标签云
猜你喜欢
- IntelliJ IDEA 2019.2已经可以利用补丁永久破解激活了
- IntelliJ IDEA 2019.3利用补丁永久破解激活教程
- IntelliJ IDEA高版本最灵活的永久破解激活方法(含插件激活,时长你说了算)
- Jetbrains全家桶基于ja-netfilter的最新破解激活详细图文教程
- IntelliJ IDEA 2022.1永久破解激活教程(亲测可用,持续更新)
- 分享几个正版 IntelliJ IDEA 激活码(破解码、注册码),亲测可用,持续更新
- ja-netfilter到底需不需要mymap,2021.3.2版本激活失效?
- 如何激活idea2022.1及以上版本中的插件(亲测可用)
- 【史上最全】IntelliJ IDEA最新2022.1版本安装和激活视频教学(含插件)
- IntelliJ IDEA 2022.2 版本最新2099年永久激活方法,亲测可用,也可以开启新UI了。
站点信息
- 网站程序:spring + freemarker
- 主题模板:《今夕何夕》
- 文章统计:篇文章
- 标签管理:标签云
- 微信公众号:扫描二维码,关注我们