Spring框架是一个流行的Java开源框架,其目的是使开发人员更容易地构建企业级应用程序。在Spring中,数据访问是至关重要的一部分,因此组件和模块在该框架中被设计为便于处理数据操作。Spring的JDBC模块是这样一个组件,它提供了用于构建可靠、可重用且易于测试的数据访问层的工具。
成都创新互联主营费县网站建设的网络公司,主营网站建设方案,成都app开发,费县h5小程序定制开发搭建,费县网站营销推广欢迎费县等地区企业咨询
在本文中,我们将探讨Spring框架中的JDBC数据库链接实现。我们将涵盖以下内容:
– 什么是JDBC模块
– Spring JDBC模块的主要功能
– Spring JDBC模块的优势
– Spring JDBC模块教程
什么是JDBC模块?
JDBC(Java Database Connectivity)是Java的一种标准API,可用于执行SQL语句和数据操作。JDBC API使Java应用程序能够连接到任何支持JDBC的关系数据库。
Spring框架的JDBC模块与JDBC之间的区别在于,它提供了一些JDBC API的简化版本和封装功能,使Java开发人员更容易地执行数据操作,同时也能够提高应用程序的可靠性和可维护性。
Spring JDBC模块的主要功能
Spring JDBC模块通过使用JdbcTemplate类提供了以下主要功能:
1. 数据库连接管理:Spring JDBC模块提供了一个用于管理数据库连接的类,称为DataSource。该类使开发人员能够轻松地管理数据库连接,而不必编写复杂的连接代码。
2. SQL语句执行:使用JdbcTemplate类,Java开发人员可以轻松地执行各种SQL语句。这个类提供了一个方便的方法来插入、更新和删除数据,而不必编写重复的语句。
3. 参数化查询:JdbcTemplate类还支持参数化查询,这可以使应用程序更安全、更灵活和更易维护。
4. 结果集处理:Spring JDBC模块还支持结果集处理,这可以使开发人员轻松地将查询结果转换为Java对象并进行处理。
Spring JDBC模块的优势
Spring JDBC模块具有以下优势:
1. 简化了数据访问层:Spring JDBC模块简化了数据访问层,使Java开发人员能够更快速地编写代码并更容易地维护应用程序。
2. 提高了应用程序的可测试性:Spring JDBC模块提供了一些用于测试数据访问层的工具,从而使应用程序更易于测试。
3. 提高了应用程序的可重用性:Spring JDBC模块的封装功能为Java开发人员提供了一个可重用的组件,从而使并不擅长数据访问的开发人员能够轻松使用它。
Spring JDBC模块教程
下面是使用Spring JDBC模块的教程,该教程将演示如何使用JdbcTemplate类执行一个简单的查询并将查询结果转换为Java对象。
1. 创建一个名为spring-jdbc-demo的Maven项目,并添加以下依赖关系:
“`
org.springframework
spring-jdbc
5.2.3.RELEASE
org.springframework
spring-context
5.2.3.RELEASE
com.h2database
h2
1.4.197
“`
2. 在src/mn/resources目录下创建一个名为application.properties的文件,并添加以下内容:
“`
spring.datasource.url=jdbc:h2:mem:test
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
“`
3. 在src/mn/java目录下创建一个名为com.example.demo的包,并创建一个名为User的Java类:
“`
package com.example.demo;
public class User {
private Long id;
private String name;
private Integer age;
public User() {
}
public User(Long id, String name, Integer age) {
this.id = id;
this.name = name;
this.age = age;
}
// 省略getter和setter方法
}
“`
4. 在com.example.demo包下创建一个名为UserDao的Java接口:
“`
package com.example.demo;
import java.util.List;
public interface UserDao {
void save(User user);
void update(User user);
void delete(Long id);
User getById(Long id);
List getAll();
}
“`
5. 在com.example.demo包下创建一个名为UserDaoImpl的Java类,该类实现了上述的UserDao接口,并使用JdbcTemplate类执行SQL语句:
“`
package com.example.demo;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
@Repository
public class UserDaoImpl implements UserDao {
private JdbcTemplate jdbcTemplate;
public UserDaoImpl(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
@Override
public void save(User user) {
String sql = “INSERT INTO users (name, age) VALUES (?, ?)”;
jdbcTemplate.update(sql, user.getName(), user.getAge());
}
@Override
public void update(User user) {
String sql = “UPDATE users SET name=?, age=? WHERE id=?”;
jdbcTemplate.update(sql, user.getName(), user.getAge(), user.getId());
}
@Override
public void delete(Long id) {
String sql = “DELETE FROM users WHERE id=?”;
jdbcTemplate.update(sql, id);
}
@Override
public User getById(Long id) {
String sql = “SELECT * FROM users WHERE id=?”;
RowMapper rowMapper = new RowMapper() {
@Override
public User mapRow(ResultSet rs, int rowNum) throws SQLException {
User user = new User();
user.setId(rs.getLong(“id”));
user.setName(rs.getString(“name”));
user.setAge(rs.getInt(“age”));
return user;
}
};
return jdbcTemplate.queryForObject(sql, rowMapper, id);
}
@Override
public List getAll() {
String sql = “SELECT * FROM users”;
RowMapper rowMapper = new RowMapper() {
@Override
public User mapRow(ResultSet rs, int rowNum) throws SQLException {
User user = new User();
user.setId(rs.getLong(“id”));
user.setName(rs.getString(“name”));
user.setAge(rs.getInt(“age”));
return user;
}
};
return jdbcTemplate.query(sql, rowMapper);
}
}
“`
6. 在com.example.demo包下创建一个名为Application的Java类,它是Spring Boot应用程序的主入口点:
“`
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import java.util.List;
@SpringBootApplication
public class Application {
public static void mn(String[] args) {
ApplicationContext context = SpringApplication.run(Application.class, args);
UserDao userDao = context.getBean(UserDao.class);
userDao.save(new User(null, “Tom”, 20));
userDao.save(new User(null, “Jerry”, 22));
User user1 = userDao.getById(1L);
System.out.println(user1.getId() + “, ” + user1.getName() + “, ” + user1.getAge());
List userList = userDao.getAll();
for (User user : userList) {
System.out.println(user.getId() + “, ” + user.getName() + “, ” + user.getAge());
}
}
}
“`
7. 运行这个项目并查看输出结果:
“`
1, Tom, 20
1, Tom, 20
2, Jerry, 22
“`
相关问题拓展阅读:
这个在spring的 applicationComtext.xml文件里配置(一般是这个文件 你也可以把锋备咐他改为其他文件名),
#oracle\u89c6\u56fe\u6570\u636e\u5e93\u8fde\u63a5\u53c2\u6570
hibernate.dialect=org.hibernate.dialect.OracleDialect
validationQuery.oracle=SELECT 1 FROM DUAL
jdbc.url.crm=jdbc:oracle:thin:@localhost:1521:orcl
jdbc.username.crm=crm
jdbc.password.crm=crm
jdbc.dbType=oracle
#mysql \u6570\u636e\u5e93\u8fde\u63a5\u53c2\u6570
#hibernate.dialect=org.hibernate.dialect.MySQLDialect
#validationQuery.sqlserver=SELECT 1
#jdbc.url.crm=jdbc:
#jdbc.username.crm=root
#jdbc.password.crm=root
#jdbc.dbType=mysql
//配置数据源
–>
在这里你可以多配置几个数据源
。。。。
然后就可以动态的修改数据源了
classpath:com/zakhas/ospm/model/hbm/
这里的dbcp_dataSource 是我的oracle数据库,你可以在这里切换其他的数据库。
因为涉及到一些项目,我做了些改动,可能有些错误,不知道你看懂了啵
这个还真没试过,你可以配置两个数据源试试,访问数据时根据需要,注入相应的数据源。
Spring工作原理
Spring 已经用过一段时间了,感觉Spring是个很不错的框架。内部最核心的就是IOC了,
动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射
反射其实就是在运行时动态的去创建、调用对象,Spring就是在运行时,跟xml Spring的配置
文件来动态的创建对象,和调用对象里的方法的 。
Spring还有一个核心就是AOP这个就是面向切面编程,可以为某一类对象 进行监督和控制(也就是
在调用这类对象的具体方法的前后去调用你指定的 模块)从而达到对一个模块扩充的功能。这些都是通过
配置类达到的。
Spring目的:就是让对象与对象(模块与模块)之间的关系没有通过代码来关联,都是通过配置类说明
管理的(Spring根据这些配置 内部通过反射去动态的组装对象)
要记住:Spring是一个容器,凡是在容器里的对象才会有Spring所提供的这些服务和功能。
Spring里用的最经典的一个设计模式就是:模板方法模式。(这里我都不介绍了,是一个很常用的设计模式)
Spring里的配置是很多的,很难都记住,但是Spring里的精华也无非就是以上的两点,把以上两点跟理解了
也就基本上掌握了Spring.
利用字节码的原理,需要四个基本的参数:用户名,密码,连接字符串,数据驱动类,通过链接字符串可以找到你的数据库服务所在的服务器地址,及数据库名称,通过驱动类可以活动链接实例,接下来就是执行你的SQL语句了。
springboot升级最新版,报数据库连接超时:
1、修改mysql的超时时间为永不超时,具体方案自行百度。
2、设置springbootDataSource属性(重点介绍)查看源DataSourceConfiguration.class(spring-boot-autoconfigure包中)发现springboot1.X默认采用tomcat连接池(官方文档实锤,2.X更改为HikariCP),故需要对tomcat连接池进行配置。
spring中的数据库链接的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于spring中的数据库链接,Spring中的JDBC数据库链接实现,spring 怎么动态配置 连接不同的数据库。oracle 或是mysql,spring连接数据库的技术理论是什么,springboot升级最新版,报数据库连接超时的信息别忘了在本站进行查找喔。
成都创新互联科技有限公司,是一家专注于互联网、IDC服务、应用软件开发、网站建设推广的公司,为客户提供互联网基础服务!
创新互联(www.cdcxhl.com)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。创新互联——四川成都IDC机房服务器托管/机柜租用。为您精选优质idc数据中心机房租用、服务器托管、机柜租赁、大带宽租用,高电服务器托管,算力服务器租用,可选线路电信、移动、联通机房等。
本文标题:Spring中的JDBC数据库链接实现(spring中的数据库链接)
文章源于:http://www.shufengxianlan.com/qtweb/news29/132079.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联