Java基础学习到进阶自我总结


JDBC连接Oracle数据库等操作

2020-01-13

简单实现

JDBC简易连接Oracle数据库

PS在Java中连接Oracle数据库要用到ojdbc6.jar驱动包

	/*
	 *定义数据库连接用到的变量
	 */
	private static String driver="oracle.jdbc.driver.OracleDriver";//数据库驱动

	//数据库连接地址(oracle中thin指从本地连接,127.0.0.1指本地ip,此处也可以是localhosts,默认端口是1521,orcl指数据库名称)
	private static String url="jdbc:oracle:thin:@127.0.0.1:1522:orcl";
	private static String username="donald";//数据库用户名
	private static String password="a123456";//数据库密码

	/*
	 * 对数据库的操作:新增数据、删除数据(改变数据库的数据update),查询数据(获取数据query)
	 * jdbc:java database connection
	 */
	public static void main(String[] args) {//连接数据库的过程
		try {
			//加载驱动
			Class.forName(driver);
			//创建数据库的连接
			Connection conn = DriverManager.getConnection(url,username,password);
			//创建对数据库操作对象
			Statement sm = conn.createStatement();
			//exeQuery(sm);//调用查询方法
			exeUpdate(sm);//调用更新方法
			} catch (Exception e) {
			e.printStackTrace();
		}
		
		
	}

操作查询语句


	/**
	 * 操作查询数据库例子
	 */
	public static void exeQuery(Statement sm) {
		String sql = "select *from t_school";
		//执行sql语句
		try {
			ResultSet rs = sm.executeQuery(sql);
			while(rs.next()){
				System.out.println(rs.getString("name"));//name是数据库列名
			}
			//先打开后关闭
			rs.close();
			if (sm!=null) {
				sm.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

操作更新语句

	/**
	 * 操作更新数据库例子
	 * @return 
	 */
	public static void exeUpdate(Statement sm) {
		String sql = "update t_school set name='垃圾学校' where id = 12";
		
		try {
		//执行sql(返回的值是成功更新的条数int)
			int i = sm.executeUpdate(sql);
			String string = "执行"+(i>0?"成功":"失败");
			System.out.println(string);
			//关闭
			if (sm!=null) {
				sm.close();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

配置文件加工具类实现

配置文件创建和配置

创建配置文件存储参数值在.properties文件中

操作:左侧Package Explorer空白处右键/New/Other/Ganeral/File/选择项目/Finish

db.properties文件配置:

jdbc_driver=oracle.jdbc.driver.OracleDriver
jdbc_url=jdbc:oracle:thin:@127.0.0.1:1522:orcl
jdbc_username=donald
jdbc_password=a123456

PS配置完后可以通过静态代码块直接读取配置文件数据

静态代码块获取配置文件数据操作


	//静态代码块读取数据库配置:静态代码快不用调用,直接运行
	static{
		try {
			//文件类对象,取出db.properties文件数据(这里用的绝对路径,相对路径可以直接写config/db.properties)
			File file = new File("D:\\Donald\\workspace\\Jdbc\\config\\db.properties");

			//文件输入流
			FileInputStream fis= new FileInputStream(file);

			Properties pro = new Properties();//属性类,键对应值
			pro.load(fis);

			//通过键值对取值,jdbc_driver就是db.properties文件里面的key
			driver = pro.getProperty("jdbc_driver");
			url = pro.getProperty("jdbc_url");
			username = pro.getProperty("jdbc_username");
			password = pro.getProperty("jdbc_password");
			System.out.println("数据库配置读取成功!");
			fis.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

数据库连接方法

	//创建连接
	public static Connection getConn(){
		try {
			//加载驱动
			Class.forName(driver);
			Connection conn = DriverManager.getConnection(url,username,password);
			return conn;
			} catch (Exception e) {
				System.out.println("数据库连接失败");
			e.printStackTrace();
		}
		return null;
	}

查询方法

	/**
 	 * 查询方法
	 */
	public static ResultSet exeSelect(String sql){
		ResultSet rs = null;
		try {
			Connection connection = getConn();
			//创建数据库操作对象
			Statement sm = connection.createStatement();
			//执行查询
			rs = sm.executeQuery(sql);
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return rs;
	}

更新方法

	
	/**
 	 * 更新方法
	 */
	public static int exeUpdate(String sql){
		ResultSet rs = null;
		int i=0;
		try {
			Connection connection = getConn();
			//创建数据库操作对象
			Statement sm = connection.createStatement();
			//执行查询
			i = sm.executeUpdate(sql);
			//关闭
			sm.close();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return i;
	}

关闭数据库方法

	//关闭数据库
	public static void close(ResultSet rs){
		try {
			Connection conn = null;
			Statement sm = null;
			if (rs!=null) {
				sm=rs.getStatement();
				rs.close();
			}
			if (sm!=null) {
				conn = sm.getConnection();
				sm.close();
			}
			if (conn!=null) {
				conn.close();
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	```
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值