问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

springboot项目,用hibernate操作数据库问题

发布网友 发布时间:2022-04-08 03:11

我来回答

2个回答

懂视网 时间:2022-04-08 07:32

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:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/hibernate"/> <property name="username" value="root"/> <property name="password" value="123456"/> </bean> <bean id="mySessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="dataSource" ref="myDataSource"/> <property name="mappingResources"> <list> <value>student.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <value> hibernate.dialect=org.hibernate.dialect.MySQLDialect </value> </property> </bean> <bean id = "dao" class="com.dao.UserDaoImpl"> <property name="sessionFactory" ref="mySessionFactory"></property> </bean> <bean id="userService" class="com.service.UserService"> <property name="dao" ref="dao"></property> </bean> </beans>

   其中以下部分声明的是数据源,目前常用的有dbcp或者C3P0的数据源,内层则为数据库连接的各项参数。

 <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
 <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
 <property name="url" value="jdbc:mysql://localhost:3306/hibernate"/>
 <property name="username" value="root"/>
 <property name="password" value="123456"/>
</bean>

 以下部分为hibernate的sessionFactory注入配置

 <bean id="mySessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
 <property name="dataSource" ref="myDataSource"/>
 <property name="mappingResources">
 <list>
  <value>student.hbm.xml</value>
 </list>
 </property>
 <property name="hibernateProperties">
  <value>
  hibernate.dialect=org.hibernate.dialect.MySQLDialect
       hibernate.show_sql=true </value> </property> </bean>

其实现类为Spring自带的org.springframework.orm.hibernate4.LocalSessionFactoryBean ( 这里我用的Spring 4.X版本);

dateSource为上述配置中的数据源;

student.hbm.xml则为hibernate的一个单表映射文件。

hibernateProperties中可以配置hibernate对应的属性,如方言dialect、sql显示show_sql等。

  

2、Dao层实现

package com.dao;

import org.hibernate.Session;
import org.hibernate.SessionFactory;

import com.vo.Student;


public class UserDaoImpl implements UserDao {
 private SessionFactory sessionFactory;
 public void setSessionFactory(SessionFactory sessionFactory) {
 this.sessionFactory = sessionFactory;
 }

 @Override
 public void save(Student student) {
 Session session = sessionFactory.openSession();
 session.getTransaction().begin();
 session.save(student);
 System.out.println("excute save;");
 session.getTransaction().commit();
 }

 @Override
 public void delete() {
 System.out.println("excute delete;");
 
 }

}

 

3、将Dao层注入进Service层,实现如下:

package com.service;

import com.dao.UserDao;
import com.vo.Student;

public class UserService {
 
 private UserDao dao;

 public void setDao(UserDao dao) {
 this.dao = dao;
 }
 
 public void save(){
 Student student = new Student(2, "test2", 30);
 dao.save(student);
 } 
}

 

简单测试如下:

package com.test;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.service.UserService;

public class TestAopAnnotation {
 @Test
 public void testAopAnnotation(){
 
 ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
 
 UserService service = (UserService) context.getBean("userService");
 service.save();
 }
}

 测试结果:

 

 技术分享

 技术分享

 

Spring学习4_整合Hibernate进行数据库操作

标签:

热心网友 时间:2022-04-08 04:40

springboot项目,用hibernate操作数据库问题 1
:新建Spring Boot项目,依赖选择JPA(spring-boot-starter-data-jpa)和Web(spring-bootstarter-web)。 配置基本属性 在application.properties里配置数据源和jpa的相关属性 spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
荣耀v20杀后台严重? 聊天时哪些回复让人感觉不舒服? 货物运输保险案例分析 卞和泣玉注释 求解,卞和泣玉没学过,在线等解。 葛加走之底读什么 在等腰三角形ABC中,AB=AC=5,BC=6,求角B的三角函数值 ...人开走一架战斗机,在一架客机下面飞,好几个飞机来拦截, ...话是三架飞机 机型各不同 在山区飞行发现恐怖分子用驴车运核弹 用AK... ...的成为战斗机飞行员。战争结束回国继续抢银 红薯怎样种? 槽钢220*77*7.0*11.5 什么意思 红薯种怎么保存 求大神!钢结构里门横挡,横挡处采用轻型槽钢[22,材质为Q235B],这里面的22是什么意思? 红薯怎么种可以培养出红薯苗 总楼层22层槽钢层总高22层楼,16层会不会是槽钢层? 22号槽钢每米好重 槽钢22ab与规格22a ,22b在规格和重量上有什么区别 钢结构中【22a是什么意思 c22槽钢1米是多少千克? 红薯种怎么保存到明年春天? 22#b槽钢的壁厚多少mm? 吃红薯叶子苗子怎样留种子,或根做种子来年栽培? 22槽钢翼的宽度是多少? 红薯怎么留到明年种 22槽钢翼 宽度是多少 红薯留种的注意事项有哪些 22#槽钢,横跨8米,中间最大承受重量? 红薯怎样留种 18a、22a号槽钢理论重量及规格尺寸是多少? 戴尔电脑设置system模式 用word公式编辑器不显示任何怎么办 为什么公式编辑器里的公式在word里显示不全 音箱音视频输入输出3,5两头公接口线是否能连手机 公式编辑器编好的公式为什么不能在word里完全显示出来 Word文档无法显示图片和公式编辑器的公式,怎么才能显示出 我买了一根3。5的音频线看上去比原音响上面的粗也很软但是现在什么都不接只插音响就嗡嗡响我想知道为什 音频线问题,3.5mm音频线怎么转成左右声道的两根3.5mm音频线。我有两个3. 怎样烙饼才可以让它变得松软? 我的投影仪只有1个3.5插口的音频输出插口,想组建家庭影院。我的设想是,用3.5的音频线从投影仪输 女人失恋和离婚后的表现有什么区别? 女人铁心离婚的表现 一本驾照最多可以给几辆车扣分 一个驾驶证只能给三辆车扣分,这个规定是真的还是假的 离婚后女人不想复婚的8个表现 一个驾驶证一年只能给三辆车扣分还是终身只能给三辆车扣分? 离婚后女人的心理是怎样的? 一本驾驶证最多可以扣几辆车 一个女人有了离婚的打算,会有哪些反常表现呢? 一个驾驶证一天可以给几个车扣分?