#spring和jdbc结合
##spring 的jar包
org.springframework
spring-core
5.0.12.RELEASE
<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.0.12.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.12.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>5.0.12.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-aop -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>5.0.12.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/aopalliance/aopalliance -->
<dependency>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
<version>1.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.2</version>
</dependency>
##1.引入jdbc相关的jar包
数据库驱动:mysql/oracle/sqlserver/db2
连接池: dbcp/c3p0/druid
spring和jdbc结合使用的jar包: spring-jdbc
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.12</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.12.RELEASE</version>
</dependency>
##2.db.properties配置文件配置连接数据库的相关信息
druid.driverClass=com.mysql.jdbc.Driver
druid.url=jdbc:mysql://localhost:3306/dkwd
druid.username=root
druid.password=123456
##3.在spring配置文件中配置 数据源(dataSource)== 连接池
修改spring配置文件添加dataSource
<!--读取db.properties配置文件内容-->
<bean id="propertyConfigure"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<!--指定配置文件的位置-->
<property name="locations">
<list>
<value>db.properties</value>
</list>
</property>
</bean>
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="driverClassName" value="${druid.driverClass}"></property>
<property name="url" value="${druid.url}"></property>
<property name="username" value="${druid.username}"></property>
<property name="password" value="${druid.password}"></property>
<!-- 配置初始化大小、最小、最大 -->
<property name="initialSize" value="1" />
<property name="minIdle" value="1" />
<property name="maxActive" value="50" />
<!-- 配置获取连接等待超时的时间 -->
<property name="maxWait" value="10000" />
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="300000" />
<property name="testWhileIdle" value="true" />
<!-- 这里建议配置为TRUE,防止取到的连接不可用 -->
<property name="testOnBorrow" value="true" />
<property name="testOnReturn" value="false" />
<!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
<property name="poolPreparedStatements" value="true" />
<property name="maxPoolPreparedStatementPerConnectionSize"
value="20" />
<!-- 这里配置提交方式,默认就是TRUE,可以不用配置 -->
<property name="defaultAutoCommit" value="true" />
<!-- 验证连接有效与否的SQL,不同的数据配置不同 -->
<property name="validationQuery" value="select 1 " />
<property name="filters" value="stat" />
<property name="proxyFilters">
<list>
<ref bean="logFilter" />
</list>
</property>
</bean>
<!--创建jdbcTemplate用于操作常见的增删改查-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<!--给当前jdbcTemplate对象属性注入值 (注入数据源对象)-->
<property name="dataSource" ref="dataSource"></property>
</bean>
##4.使用jdbcTemplate进行测试
#spring和hibernate的结合
在spring和jdbc结合的基础上,引入jar包,添加配置文件,测试
##1.引入jar包
hibernate
spring-orm
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.3.7.Final</version>
</dependency>
<!--缓存-->
<!--spring-hibernate结合的jar包-->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-orm -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>5.0.12.RELEASE</version>
</dependency>
##2.修改配置文件
<bean id="sessionFactory">
<property name="dataSouce" ref="dataSouce">
</bean>
<bean id="hibernateTemplate" class="">
<!--hibernate sessionFactory工厂bean-->
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<!--引入dataSource依赖-->
<property name="dataSource" ref="dataSource"></property>
<!--引入hibernate配置文件位置-->
<!-- <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>-->
<!--引入注解(entity)所在的包-->
<property name="packagesToScan" value="com.qy.domain"></property>
<!--分别引入每一个需要读取的注解类-->
<!-- <property name="annotatedClasses">
<list>
<value>com.qy.domain.User</value>
<value>com.qy.domain.Userrecord</value>
<value>com.qy.domain.Question</value>
<value>com.qy.domain.Reply</value>
</list>
</property>-->
<!--配置hibernate自身的配置例如方言,ddl操作,是否显示sql,格式化sql等-->
<property name="hibernateProperties">
<value>
hibernate.show_sql=true
hibernate.format_sql=true
</value>
</property>
</bean>
<!--创建一个HibernameTemplate模板对象,用于快速执行增删改查及事务管理-->
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate5.HibernateTemplate">
<!--注入sessionFactory工厂-->
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
##测试