Javaweb——简单的JDBC连接的几种书写方式

我们都知道JDBC是用来对数据库进行连接的,下面让我们对数据库进行的连接方式来进行介绍;

package com.test;

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


public class DBUtil {
	public static Connection getConn() {//声明一个方法,用来连接
		Connection conn=null;
		try {
			//加载驱动
			Class.forName("com.mysql.jdbc.Driver");
			//获取连接
			conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conn;
	}
//	声明一个方法用来释放资源
	public static void release(ResultSet rs,PreparedStatement ps,Connection conn) {
		if(rs!=null) {
			try {
				rs.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if(ps!=null) {
			try {
				ps.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if(conn!=null) {
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}

下面让我们来建立一个测试类来测试一下我们上面书写的两个方法;

package com.test;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.junit.Test;

public class DBUTtest {
	@Test
	public void test() {
		Connection conn = null;
		PreparedStatement ps=null;
		ResultSet rs =null;
		//1.获取连接
		conn = DBUtil.getConn();
		//2.编写SQL
		String sql = "select * from user where name =?";
		//3获取SQL对象
		try {
			ps = conn.prepareStatement(sql);
			//4.设置参数
			ps.setString(1, "lq");
			//5.执行查询 
			rs = ps.executeQuery();
			//6.处理结果集
			while(rs.next()) {
				String name = rs.getString("pwd");
				System.out.println(name);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			//7.释放资源
			DBUtil.release(rs, ps, conn);
		}
	}
}

 一般的比较常规的写法就是上面这种,接下来我们可以用一种配置文件的方式进行书写,我们首先通过new来建立一个配置文件命名为db.properties,在这个配置信息中我们需要进行如下信息的书写:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=

接下来就是我们要写的连接方法以及释放资源的方法,如下:

package com.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ResourceBundle;

public class DBUtil02 {
	private static String driver;
	private static String url;
	private static String username;
	private static String password;
	static {
		ResourceBundle rb = ResourceBundle.getBundle("db");
		driver = rb.getString("driver");
		url = rb.getString("url");
		username = rb.getString("username");
		password = rb.getString("password");
	}
	public static Connection getCon() {
		Connection conn= null;
		try {
			Class.forName(driver);
			conn = DriverManager.getConnection(url, username, password);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conn;
	}
//	声明一个方法用来释放资源
	public static void release(ResultSet rs,PreparedStatement ps,Connection conn) {
		if(rs!=null) {
			try {
				rs.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if(ps!=null) {
			try {
				ps.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if(conn!=null) {
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	
}

接下来我们进行测试,我们在user表中添加一列数据,具体实现如下:

package com.test;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import org.junit.Test;

public class DBUtil02Test {
	@Test
	public void Test02() {
		Connection conn =null;
		PreparedStatement ps = null;
		//1.连接
		conn = DBUtil02.getCon();
		//2.书写SQL
		String sql = "insert into user(name,pwd) values (?,?)";
		//3.获取SQL对象
		try {
			ps = conn.prepareStatement(sql);
			//4.为占位符设置值
			ps.setString(1, "lmy");
			ps.setInt(2, 123456);
			//5.执行SQL
			int rs = ps.executeUpdate();
			if(rs>0) {
				System.out.println("插入成功!");
			}else {
				System.out.println("插入失败!");
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			DBUtil02.release(null, ps, conn);
		}
		
	}
}

在上面的配置文件的过程中还有一种方式是先获取到 当前的类加载器,在获取一个输入流,通过load方法把这个字节流load进去,具体实现如下:

package com.test;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Properties;
import java.util.ResourceBundle;

import org.junit.Test;

public class DBUtil03 {
	private static String driver;
	private static String url;
	private static String username;
	private static String password;
	static {
		//获取一个类加载器
		ClassLoader classLoader = DBUtil03.class.getClassLoader();
		//根据类加载器获取一个输入流
		InputStream resourceAsStream = classLoader.getResourceAsStream("db.properties");
		//创建一个properties对象
		Properties properties = new Properties();
		try {
			//加载输入流
			properties.load(resourceAsStream);
			//获取相关的值
			driver = properties.getProperty("driver");
			url = properties.getProperty("url");
			username = properties.getProperty("username");
			password = properties.getProperty("password");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public static Connection getCon() {
		Connection conn= null;
		try {
			Class.forName(driver);
			conn = DriverManager.getConnection(url, username, password);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conn;
	}
	@Test
	public void test() {
		Connection conn = null;
		PreparedStatement ps = null;
		// 1.连接
		conn = DBUtil03.getCon();
		// 2.书写SQL
		String sql = "delete from user where name =?";
		// 3.获取SQL对象
		try {
			ps = conn.prepareStatement(sql);
			// 4.为占位符设置值
			ps.setString(1, "lq");
			// 5.执行SQL
			int rs = ps.executeUpdate();
			if (rs > 0) {
				System.out.println("删除成功!");
			} else {
				System.out.println("删除失败!");
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			DBUtil02.release(null, ps, conn);
		}

	}
}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值