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 连接数据库是 Java 企业级应用程序中的一项重要技术,通过 Spring 框架,可以轻松地实现数据库的连接和操作。本文将详细讲解如何使用 Spring 连接数据库,包括创建数据库、配置 Spring、编写数据库操作代码等...
**O/R Mapping(对象关系映射)**是一种编程技术,用于将面向对象的应用程序中的数据转换成关系型数据库中的记录。在Java领域,Spring框架通过与ORM工具如Hibernate的集成,使得开发者能够在不直接编写SQL语句的情况...
本文将详细介绍如何在Spring框架中配置数据库连接,包括使用JDBC、JPA、Hibernate等技术,以及如何利用Spring Boot的自动配置功能简化配置过程。 在Spring框架中配置数据库连接是一个基础而重要的任务。通过本文的...
总的来说,这个实例将帮助你理解Spring如何连接和操作数据库,如何处理事务,以及如何与其他持久化技术集成。通过实践这些基本概念,你将能够更好地理解和利用Spring的强大功能,提升你的Java开发能力。
在Java Web开发中,Spring框架和Servlet技术是两个核心组件,它们经常被用来构建高效、可扩展的Web应用程序。Spring框架提供了丰富的功能,包括依赖注入、面向切面编程、MVC(模型-视图-控制器)架构等,而Servlet则...
总结,Spring数据库访问中的ORM技术是企业级应用开发的重要组成部分。通过Spring对JPA、Hibernate、MyBatis等ORM框架的集成,我们可以轻松地在Java应用中进行数据库操作。同时,Spring提供的事务管理和数据源连接池...
适用于对Spring Boot和数据库性能优化感兴趣的开发者、架构师和IT技术爱好者。无论您是正在寻求提升现有系统性能的资深开发者,还是正在学习新技术、探索更优解的新手,本文都将为您提供有价值的参考和启示,特别是...
在本篇文章中,我们将探讨Java微服务实践的重要组件之一,即Spring Boot数据库JDBC。我们将详细介绍数据源、事务、JDBC 4.0的核心概念和使用场景,并提供实践案例来帮助读者更好地理解这些概念。 一、数据源...
因此,基于SpringCloud技术构建的数据库原理课程思政网站应运而生,旨在提供一个融合学术与思政教育的在线学习环境,增强学生的学习体验和思政教育的效果。 1.2 研究现状 当前,许多高校已经意识到将信息技术融入...
这套课程既可以作为从零基础开始...课程的主要内容涉及有JAVA基础课程、JAVA多线程与并发编程、数据库开发基础和进阶、Spring Framework、Spring进阶、Spring MVC框架、Spring boot、Java常用类库、Java异常处理等等
在IT行业中,Spring MVC、MyBatis和MySQL是三个非常重要的技术组件,它们分别负责Web应用的MVC架构实现、数据持久化以及关系型数据库管理。这个集成例子为我们提供了一个完整的开发环境,让我们深入理解这三者如何...
### 基于Spring与Hibernate的数据库访问技术研究 #### 引言 在现代企业级应用开发中,数据持久层的设计至关重要,它涉及到如何高效、安全地存储和检索数据。随着互联网技术的发展,传统的两层架构(客户端/服务器...
"dwr与spring数据库环境集成"是一个常见的技术实践,它涉及到Direct Web Remoting (DWR)框架、Spring框架以及数据库(如MySQL)的整合。在这个场景中,DWR用于实现浏览器与服务器之间的异步通信,Spring作为一款强大...
标签 "spring mysql sql_yog mybatis" 显示了主要涉及的技术领域:Spring框架、MySQL数据库管理和MyBatis持久层框架。同时提到了SQL_YOG,这是一个用于MySQL管理的图形化工具。 在压缩包子文件的文件名称列表中,...
适用于对Spring Boot和数据库性能优化感兴趣的开发者、架构师和IT技术爱好者。无论您是正在寻求提升现有系统性能的资深开发者,还是正在学习新技术、探索更优解的新手,本文都将为您提供有价值的参考和启示,特别是...
如果你以一种淡定的心态翻开这本书,无论你是Java程序员、Spring开发者,还是平台开发人员、系统架构师,抑或是对开源软件源代码着迷的代码狂人,都能从《Spring技术内幕:深入解析Spring架构与设计原理》中受益。...
随着互联网技术的发展,数据存储的重要性日益突出,各种数据库管理系统层出不穷,MySQL作为最流行的开源关系数据库管理系统之一,广泛应用于各种Web应用程序中。因此,学习如何使用Spring Boot连接MySql数据库变得...
在IT行业中,SSH(Spring、SpringMVC和Hibernate)是一个常见的技术栈,用于构建复杂的Java Web应用程序。这个压缩包文件"SpringMVC+Spring+HIbernate简单数据库实例.zip"提供了一个基本的示例,展示了如何整合这三...
本文将深入探讨如何利用Spring MVC、Thymeleaf模板引擎、H2内存数据库、Lombok以及Spring Boot中的消息传递功能来创建一个强大的应用程序。 **Spring MVC**: Spring MVC是Spring框架的一部分,它提供了一个用于...
6. 在业务层代码中,通过Spring的`@Autowired`注解注入SessionFactory或Session,进行数据库操作。 在"jdbc_test"这个文件名中,可能包含的是一个测试数据库连接的程序。在实际开发中,我们通常会编写这样的测试...