Spring练习,使用Properties类型注入方式,注入MySQL数据库连接的基本信息,然后使用JDBC方式连接数据库,模拟执行业务代码后释放资源,最后在控制台输出打印结果。
实现要求:
使用Properties类型注入方式,注入MySQL数据库连接的基本信息,然后使用JDBC方式连接数据库,模拟执行业务代码后释放资源,最后在控制台输出打印结果。
要求如下:
- 数据库连接信息使用Properties类型注入。
- 使用JDBC方式连接数据库。 数据源获取结果打印到控制台。
实现思路:
引入MySQL驱动jar包。
在com.mhys.demo.pojo包下创建DataSource类,添加Properties类型属性。
package com.mhys.demo.pojo;
import java.util.Map;
import java.util.Properties;
public class DataSource {
private Map<String, String> map;
private Properties properties;
@Override
public String toString() {
return "DataSource [map=" + map + "]";
}
public Properties getProperties() {
return properties;
}
public void setProperties(Properties properties) {
this.properties = properties;
}
public Map<String, String> getMap() {
return map;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
}
在applicationContext.xml配置文件中注册DataSource类到容器。
<bean id="dataSource" class="com.mhys.demo.pojo.DataSource">
<property name="Properties">
<props>
<prop key="driverClassName">com.mysql.jdbc.Driver</prop>
<prop key="url">jdbc:mysql://locahost:3306/goods</prop>
<prop key="username">root</prop>
<prop key="password">123456</prop>
</props>
</property>
</bean>
在com.mhys.demo.service包下创建JdbcService类,添加DataSource类型属性,声明getConnection()方法和close()方法。
package com.zn.mhys.demo.service;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import com.mhys.demo.pojo.DataSource;
public class JdbcService {
private DataSource dataSource;
public Connection getConnection(){
Connection conn = null;
String url = (String) dataSource.getProperties().get("url");
String username = (String) dataSource.getProperties().get("username");
String password = (String) dataSource.getProperties().get("password");
try {
Class.forName(dataSource.getProperties().getProperty("driverClassName"));
conn = (Connection)DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
public void close(Connection conn){
if (conn!=null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println("连接释放成功!");
}
}
}
在applicationContext.xml配置文件中注册JdbcService类到容器。
<bean id="jdbcService" class="com.zn.mhys.demo.service.JdbcService">
<property name="dataSource" ref="dataSource"></property>
</bean>
在com.mhys.demo.test包下创建Test测试类。
package com.zn.mhys.demo.test;
import java.sql.Connection;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;
import com.zn.mhys.demo.service.JdbcService;
public class Test {
public static void main(String[] args) {
ClassPathResource resource = new ClassPathResource("applicationContext.xml");
XmlBeanFactory context = new XmlBeanFactory(resource);
// 2.2.5
JdbcService jdbcService = (JdbcService) context.getBean("jdbcService");
Connection connection = jdbcService.getConnection();
if (connection!=null) {
System.out.println("获取数据库连接成功!");
}
System.out.println("义务代码执行成功!");
jdbcService.close(connection);
}
}
Spring练习,使用Properties类型注入方式,注入MySQL数据库连接的基本信息,然后使用JDBC方式连接数据库,模拟执行业务代码后释放资源,最后在控制台输出打印结果。的更多相关文章
- spring List,Set,Map,Properties,array的配置文件注入方式
虽然不多,但是有时候在实现的时候,我们还是希望某些参数或者属性通过集合()的方式注入进来,比如配置表参数列表,addresslist,亦或是三方库等等.因为这种改动不是很多,经常一时想不起来,今天做个 ...
- Spring:(二)DI依赖注入方式
DI 依赖注入 DI(Dependency Injection)依赖注入,说简单一点就将类里面的属性在创建类的过程中给属性赋值,即将对象依赖属性(简单值,集合,对象)通过配置设值给该对象. 属性注入的 ...
- Spring学习总结(5)——IOC注入方式总结
一.构造注入 在类被实例化的时候,它的构造方法被调用并且只能调用一次.所以它被用于类的初始化操作.<constructor-arg>是<bean>标签的子标签.通过其<v ...
- spring的依赖注入的四种方式,数组与集合注入;引用注入;内部bean注入
三种注入方式 第一种: 基于构造函数 hi.java (bean) package test_one; public class hi { private String name; public hi ...
- 【spring set注入 注入集合】 使用set注入的方式注入List集合和Map集合/将一个bean注入另一个Bean
Dao层代码: package com.it.dao; public interface SayHell { public void sayHello(); } Dao的Impl实现层: packag ...
- Spring学习笔记之 Spring IOC容器(一)之 实例化容器,创建JavaBean对象,控制Bean实例化,setter方式注入,依赖属性的注入,自动装配功能实现自动属性注入
本节主要内容: 1.实例化Spring容器示例 2.利用Spring容器创建JavaBean对象 3.如何控制Bean实例化 4.利用Spring实现bean属性sett ...
- Spring、基本类型属性和集合类型属性的注入
Spring 还可以对基本属性和集合类型属性进行注入: public interface PersonIService { public String getBaseProperty(); publi ...
- spring注解方式注入
1.通过Resource注入 1.在属性上注入 1.默认注入 即不指定spring容器里面的名字 匹配规则:先通过属性的名字查找 再通过属性类型与实现类类型匹配查找 当有两个实现类会报错 2.通过指定 ...
- spring注解方式注入bean
用注解的方式注入bean,spring的配置文件也要增加一些约束和导入注解所在的包 applicationContext.xml <?xml version="1.0" en ...
随机推荐
- Shell学习(三)——Shell条件控制和循环语句
参考博客: [1]Shell脚本的条件控制和循环语句 一.条件控制语句 1.if语句 1.1语法格式: if [ expression ] then Statement(s) to be execut ...
- 【Spring Framework】Spring IOC详解及Bean生命周期详细过程
Spring IOC 首先,在此之前,我们就必须先知道什么是ioc,ioc叫做控制反转,也可以称为依赖注入(DI),实际上依赖注入是ioc的另一种说法, 1.谁控制谁?: 在以前,对象的创建和销毁都是 ...
- 《手把手教你》系列技巧篇(五十一)-java+ selenium自动化测试-字符串操作-下篇(详解教程)
1.简介 自动化测试中进行断言的时候,我们可能经常遇到的场景.从一个字符串中找出一组数字或者其中的某些关键字,而不是将这一串字符串作为结果进行断言.这个时候就需要我们对字符串进行操作,宏哥这里介绍两种 ...
- NSData NSDate NSString NSArray NSDictionary 相互转化
// NSData NSDate NSString NSArray NSDictionary json NSString *string = @"hello word"; ...
- MyBatis 3学习笔记
MyBatis 3 一.MyBatis简介 优秀的持久层框架,支持支持自定义 SQL.存储过程以及高级映射,专注于SQL的编写. 为什么不使用工具类进行数据库操作: 功能简单,sql语句编写在 ...
- java 数据类型:<泛型>在方法中和在构造器中的应用
背景: Java不允许我们把对象放在一个未知的集合中. import java.util.ArrayList; import java.util.List; /** * @ClassName Meth ...
- ACwing1216. 饮料换购
题目: 乐羊羊饮料厂正在举办一次促销优惠活动.乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去(但不允许暂借或赊账). 请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于 ...
- velocity使用foreach进行遍历时$velocityCount不起作用
把$velocityCount替换成$foreach.count 例如 #if($foreach.count != $columns.size()),#end
- -bash: /etc/ld.so.preload: Operation not permitted处理
执行 chattr -i /etc/ld.so.preload 执行 chattr -a /etc/ld.so.preload
- ByteBuddy代码生成技术
简介 如官网所说Byte Buddy 是一个代码生成和操作库,用于在Java应用程序运行时创建和修改Java类,而无需编译器的帮助.除了Java类库附带的代码生成实用程序外,Byte Buddy还允许 ...