`
隐形的翅膀
  • 浏览: 496662 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring 中的数据库技术

 
阅读更多
1. 通过JNDI获得DataSource

不常用

2. 从第三方连接池获得DataSource

Jakarta Commons DBCP

<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
   <value>com.mysql.jdbc.Driver</value>
</property>
...
url
...
username
...
passwd
</bean>


3. 使用jdbcTemplate
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">

<property name="datasource"
    <ref bean="myDataSource"/>
</property>
</bean>


4. jdbcTemplate执行sql
Object[] params = new Object[]{4,"msg4"};
jdbcTemplate.update("insert into t_message(id,name) value(?,?)",params);
jdbcTemplate.update


5. 从数据库中读数据

JdbcTemplate 可以通过query方法获得单条或多条记录,可以通过实现RowCallbackHandler接口,RowMapper接口获得一条记录,转化为对象

jdbcTemplate.query(sql,new Object[]{id}, new org.springframework.jdbc.core.RowCallbackHandler(){
  public void processRow(ResultSet rs) throws SQLException{
      message = new MyMessage();
      message.setId(id);
      message.setName(rs.getString("name"));
  }
}

....

jdbcTemplate.query(sql,new Object[]{id}, new OneMessage());

内嵌类
public class OneMessage implements RowMapper{
   public Object mapRow(ResultSet rs, int row num) throws SQLException{
    ....
   }
}


6. 使用Hibernate

在xml中配置SessionFactory
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

<property name="hibernateProperties">
<props>
show_sql, cache,   数据库连接类型,用户名,密码
</props>
</property>
</bean>


<bean id="hibernateTemplate" class="org.spring...HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>


7. lazy
MyMessage message = (MyMessage)hibernateTemplate.load(MyMessage.class,1);


System.out.println(message.getId())
System.out.println(message.getName()) //[color=red]出错[/color]

默认情况下Hibernate 3 采用 lazy方式装载数据,当MyMessage装载完ID属性值时,NAME属性值并未马上装载,直接调用会出错

解决办法1

在class.hbm.xml, 将<class>标签的属性设为false

<class name="MyMessage" table="t__message" lazy="false">
...
</class>


解决办法2

org.hibernate.Session session = hibernateTemplate.getSessionFactory().openSession();

MyMessage message = (MyMessage)session.load(MyMessage.class,1)

System.out.println(message.getId())
System.out.println(message.getName()) 不会出错
分享到:
评论

相关推荐

    spring连接数据库代码

    Spring 连接数据库是 Java 企业级应用程序中的一项重要技术,通过 Spring 框架,可以轻松地实现数据库的连接和操作。本文将详细讲解如何使用 Spring 连接数据库,包括创建数据库、配置 Spring、编写数据库操作代码等...

    spring和数据库层的结合

    **O/R Mapping(对象关系映射)**是一种编程技术,用于将面向对象的应用程序中的数据转换成关系型数据库中的记录。在Java领域,Spring框架通过与ORM工具如Hibernate的集成,使得开发者能够在不直接编写SQL语句的情况...

    Spring框架数据库连接配置全指南

    本文将详细介绍如何在Spring框架中配置数据库连接,包括使用JDBC、JPA、Hibernate等技术,以及如何利用Spring Boot的自动配置功能简化配置过程。 在Spring框架中配置数据库连接是一个基础而重要的任务。通过本文的...

    spring连数据库实例`

    总的来说,这个实例将帮助你理解Spring如何连接和操作数据库,如何处理事务,以及如何与其他持久化技术集成。通过实践这些基本概念,你将能够更好地理解和利用Spring的强大功能,提升你的Java开发能力。

    Spring+Servlet读取数据库返回JSON数据(源码).zip

    在Java Web开发中,Spring框架和Servlet技术是两个核心组件,它们经常被用来构建高效、可扩展的Web应用程序。Spring框架提供了丰富的功能,包括依赖注入、面向切面编程、MVC(模型-视图-控制器)架构等,而Servlet则...

    Spring数据库访问之ORM(三)

    总结,Spring数据库访问中的ORM技术是企业级应用开发的重要组成部分。通过Spring对JPA、Hibernate、MyBatis等ORM框架的集成,我们可以轻松地在Java应用中进行数据库操作。同时,Spring提供的事务管理和数据源连接池...

    Spring Boot数据库批量更新:六种方案,一场效率之战.zip

    适用于对Spring Boot和数据库性能优化感兴趣的开发者、架构师和IT技术爱好者。无论您是正在寻求提升现有系统性能的资深开发者,还是正在学习新技术、探索更优解的新手,本文都将为您提供有价值的参考和启示,特别是...

    [课堂课件讲解]Java微服务实践-Spring Boot 数据库JDBC.pptx

    在本篇文章中,我们将探讨Java微服务实践的重要组件之一,即Spring Boot数据库JDBC。我们将详细介绍数据源、事务、JDBC 4.0的核心概念和使用场景,并提供实践案例来帮助读者更好地理解这些概念。 一、数据源...

    springcloud数据库原理课程思政网站论文.doc

    因此,基于SpringCloud技术构建的数据库原理课程思政网站应运而生,旨在提供一个融合学术与思政教育的在线学习环境,增强学生的学习体验和思政教育的效果。 1.2 研究现状 当前,许多高校已经意识到将信息技术融入...

    JAVA零基础到高级进阶特训营 JAVA多线程并发设计+Spring高级+数据库开发+JAVA基础等

    这套课程既可以作为从零基础开始...课程的主要内容涉及有JAVA基础课程、JAVA多线程与并发编程、数据库开发基础和进阶、Spring Framework、Spring进阶、Spring MVC框架、Spring boot、Java常用类库、Java异常处理等等

    spring mvc + mybitis + mysql集成例子,带数据库

    在IT行业中,Spring MVC、MyBatis和MySQL是三个非常重要的技术组件,它们分别负责Web应用的MVC架构实现、数据持久化以及关系型数据库管理。这个集成例子为我们提供了一个完整的开发环境,让我们深入理解这三者如何...

    基于Spring与Hibernate的数据库访问技术研究

    ### 基于Spring与Hibernate的数据库访问技术研究 #### 引言 在现代企业级应用开发中,数据持久层的设计至关重要,它涉及到如何高效、安全地存储和检索数据。随着互联网技术的发展,传统的两层架构(客户端/服务器...

    dwr与spring数据库环境集成

    "dwr与spring数据库环境集成"是一个常见的技术实践,它涉及到Direct Web Remoting (DWR)框架、Spring框架以及数据库(如MySQL)的整合。在这个场景中,DWR用于实现浏览器与服务器之间的异步通信,Spring作为一款强大...

    spring 4.3.5 mysql数据库 使用工具等工具集合包

    标签 "spring mysql sql_yog mybatis" 显示了主要涉及的技术领域:Spring框架、MySQL数据库管理和MyBatis持久层框架。同时提到了SQL_YOG,这是一个用于MySQL管理的图形化工具。 在压缩包子文件的文件名称列表中,...

    对比六种批量更新方法,优化你的Spring Boot数据库操作.zip

    适用于对Spring Boot和数据库性能优化感兴趣的开发者、架构师和IT技术爱好者。无论您是正在寻求提升现有系统性能的资深开发者,还是正在学习新技术、探索更优解的新手,本文都将为您提供有价值的参考和启示,特别是...

    SPRING3技术内幕

     如果你以一种淡定的心态翻开这本书,无论你是Java程序员、Spring开发者,还是平台开发人员、系统架构师,抑或是对开源软件源代码着迷的代码狂人,都能从《Spring技术内幕:深入解析Spring架构与设计原理》中受益。...

    Spring Boot高级教程之Spring Boot连接MySql数据库

    随着互联网技术的发展,数据存储的重要性日益突出,各种数据库管理系统层出不穷,MySQL作为最流行的开源关系数据库管理系统之一,广泛应用于各种Web应用程序中。因此,学习如何使用Spring Boot连接MySql数据库变得...

    SpringMVC+Spring+HIbernate简单数据库实例.zip

    在IT行业中,SSH(Spring、SpringMVC和Hibernate)是一个常见的技术栈,用于构建复杂的Java Web应用程序。这个压缩包文件"SpringMVC+Spring+HIbernate简单数据库实例.zip"提供了一个基本的示例,展示了如何整合这三...

    为Spring mvc、Thymelaaf模板引擎、H2数据库、Lombok和消息传递Spring Boot应用程序

    本文将深入探讨如何利用Spring MVC、Thymeleaf模板引擎、H2内存数据库、Lombok以及Spring Boot中的消息传递功能来创建一个强大的应用程序。 **Spring MVC**: Spring MVC是Spring框架的一部分,它提供了一个用于...

    连接池与Spring,Hibernate结合

    6. 在业务层代码中,通过Spring的`@Autowired`注解注入SessionFactory或Session,进行数据库操作。 在"jdbc_test"这个文件名中,可能包含的是一个测试数据库连接的程序。在实际开发中,我们通常会编写这样的测试...

Global site tag (gtag.js) - Google Analytics