java工程添加jdbc外部扩展包、配置及读取数据库属性配置文件、管理通用组件

一、添加java工程的jdbc外部扩展包
jdbc官网的下载地址:https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html
java工程添加jdbc外部扩展包、配置及读取数据库属性配置文件、管理通用组件_第1张图片

1、右击工程名称——build_path——add libraries——user library(支持用户自定义类库);
2、点击user libraries...,新建一个扩展外部类库名称

java工程添加jdbc外部扩展包、配置及读取数据库属性配置文件、管理通用组件_第2张图片

java工程添加jdbc外部扩展包、配置及读取数据库属性配置文件、管理通用组件_第3张图片
3、添加扩展包,然后应用即可
java工程添加jdbc外部扩展包、配置及读取数据库属性配置文件、管理通用组件_第4张图片
4、最终项目结构层次如下:
java工程添加jdbc外部扩展包、配置及读取数据库属性配置文件、管理通用组件_第5张图片
二、配置及读取数据库属性文件
1、创建数据库属性配置文件
DataSource.properties

##数据库属性配置
jdbc_url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
jdbc_dirver=oracle.jdbc.driver.OracleDriver
jdbc_user=system
jdbc_passwd=123456

2、读取数据库连接配置文件信息
 

package cn.yanchengdai.util;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class Env extends Properties{
	//创建字符串常量存储数据库连接属性值
	public static final String JDBC_URL;//连接数据库系统资源描述符
	public static final String JDBC_DRIVER;//数据库系统驱动类名称
	public static final String JDBC_USER;//登录数据库系统用户名称
	public static final String JDBC_PASSWD;//登录数据系统用户密码
	
	private static Env env;
	//外部数据库配置文件所在的路径和名称
	private static String filePath = "cn/yanchengdai/db/conf/DataSource.properties";
	
	private Env() {}
	
	static {
		if(env==null) {
			env = new Env();
		}
		InputStream input = null;
		//获取当前程序发布的类路径
		String path = env.getClass().getClassLoader().getResource("").getPath();
		System.out.println(path);
		//获取当前程序发布的类路径下对应文件的输入流
		input = env.getClass().getClassLoader().getResourceAsStream(filePath);
		try {
			env.load(input);
		} catch (IOException e) {
			e.printStackTrace();
		}
		JDBC_URL = env.getProperty("jdbc_url");
		JDBC_DRIVER = env.getProperty("jdbc_driver");
		JDBC_USER = env.getProperty("jdbc_user");
		JDBC_PASSWD = env.getProperty("jdbc_passwd");
	}
	
	public static void main(String[] args) {
		System.out.println(JDBC_URL);
	}
}

输出结果:

/F:/CoreJavaEEWorkSpace/javaapp/bin/
jdbc:oracle:thin:@127.0.0.1:1521:orcl

三、管理数据源的组件(抽象概念,符合某种规范的java类集合构成组件)
 

package cn.yanchengdai.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public final class DataSourceManager {
	/**
	 * 提供目标数据源(这边指oracle数据库)连接的通用方法
	 * @return
	 */
	public static Connection getConnction() {
		Connection conn = null;
		try {
			//加载目标数据库驱动
			Class.forName(Env.JDBC_DRIVER);
			//获取封装了数据库连接属性的connetion
			conn = DriverManager.getConnection(Env.JDBC_URL, Env.JDBC_USER, Env.JDBC_PASSWD);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return conn;
	}
	
	/**
	 * 关闭connection
	 */
	public static void close(Connection conn) {
		try {
			if(conn!=null&&!conn.isClosed()) {
				conn.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 关闭Statement
	 */
	public static void close(Statement state) {
		try {
			if(state!=null&&!state.isClosed()) {
				state.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 关闭Statement
	 */
	public static void close(ResultSet result) {
		try {
			if(result!=null&&!result.isClosed()) {
				result.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

四、创建pojo实体类(Department)及数据库访问类(如DepartmentDao)
1、创建pojo实体类(Department)

package cn.yanchengdai.pojo;

import java.util.Date;

public class Department {
	
	private String deptno;
	private String deptname;
	private Date createTime;
	private String descs;
	
	public Department() {
		
	}
	public String getDeptno() {
		return deptno;
	}
	public void setDeptno(String deptno) {
		this.deptno = deptno;
	}
	public String getDeptname() {
		return deptname;
	}
	public void setDeptname(String deptname) {
		this.deptname = deptname;
	}
	public Date getCreateTime() {
		return createTime;
	}
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	public String getDescs() {
		return descs;
	}
	public void setDescs(String descs) {
		this.descs = descs;
	}
	
}

2、创建数据库访问类(DepartmentDao)
 

package cn.yanchengdai.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import cn.yanchengdai.pojo.Department;
import cn.yanchengdai.util.DataSourceManager;

public class DepartmentDao {
	
	/**
	 * 添加部门信息
	 * @param dept 新部门的名称
	 */
	public int addDepartment(Department dept) {
		int res = 0;
		//sql插入语句,其中?为占位符,下文可定义
		String sql = "insert into dept (deptno, deptname, createTime, descs) values (?,?,?,?)";
		Connection conn = DataSourceManager.getConnction();//获取数据库连接
		PreparedStatement ps = null;//声明PreparedStatement接口对象
		try {
			ps = conn.prepareStatement(sql);//获取封装了需要执行的sql语句的PreparedStatement的接口对象
			ps.setString(1, dept.getDeptno());
			ps.setString(2, dept.getDeptname());
			ps.setDate(3, new java.sql.Date(dept.getCreateTime().getTime()));
			ps.setString(4, dept.getDescs());
		    /*
		     * 用于执行insert、update或delete以及DDL(数据定义语言,如create/drop table),
		     * 此方法加参数sql时会报ORA-01008: 并非所有变量都已绑定
		     * */
			res = ps.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			DataSourceManager.close(conn);
			DataSourceManager.close(ps);
		}
		return res;
	}
}

3、创建测试类测试数据库插入数据
 

package cn.yanchengdai.test;

import java.util.Date;
import cn.yanchengdai.dao.DepartmentDao;
import cn.yanchengdai.pojo.Department;

public class DataSourceTest {

	public static void main(String[] args) {
		Department dept = new Department();
		dept.setCreateTime(new Date());
		dept.setDeptname("研发二部");
		dept.setDeptno("NO008");
		dept.setDescs("辅助研发部工作");
		int res = new DepartmentDao().addDepartment(dept);
		System.out.println(res);
	}

}

返回结果为:

你可能感兴趣的:(jdbc,属性配置文件)