JDBC

一、什么是JDNC
java 和 database 的连接
通过java 语言对数据库表的访问
通过 java的APL中具有数据连接相关组件 这些组件组合起来进行对数据库的访问JDBC
在这里插入图片描述
数据库连接步骤:
1.注册数据库驱动 (需要先导入驱动包 mysql的驱动加载包)
即 Class.forName(“com.mysql.jdbc.Driver”);
2.连接对象
Connection conn = DriverManger.getConnection(“url,user,password”);
3.获取sql对象
Statement st = conn.createStatement();
String sql = " select * from xxx";
4.获取结果集对象
ResultSet rs = st.executeQuery(sql);
5. 关闭且释放资源
conn.close();
st.close();
rs.close();

2.熟悉了 jdbc的连接 那么来想想 如果每次执行jdbc ,都会出现 许多重复的代码
那么一起来进行一下 数据库的封装。

首先考虑到,在使用 数据连接时,需要将 驱动进行加载,那么考虑 驱动加载 ,在进行操作数据 操作时,秩序加载一次,说的这么明白,那么肯定 在 使用工具类的时候将, 需要用到static 静态代 码块 ,可以在 类加载的时候,加载,而且只加载一次。
接下来看看代码如何编写。

static{
		try {
			//对于 编程的各个部分 为了使代码模块化 耦合度越低,我们将数据连接的地方 ,使用到 配置文件 去读取,一旦数据库的更换 ,这样不需要改变,工具类中的代码,只需将配置文件文件去改变
			//1.用流的形式去读 配置文件下的文件 
			InputStream is = 
					JDBCUtils.class.getClassLoader().getResourceAsStream("jdbc.properites");
			properties.load(is);
			String driver = properties.getProperty("driver");
			user = properties.getProperty("user");
			password = properties.getProperty("password");
			url = properties.getProperty("url");
			
			Class.forName(driver);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
					// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

配置文件(内容)
/******************************/
//第一个参数是 数据加载驱动
ClassDirver=com.mysql.jdbc.Driver
//在对象创建时需要加载驱动的路径
jdbcurl=jdbc:mysql:///t1
//数据库用户名
username=root
//数据库密码
password=root
/*****************************/




--工具类的编写
需要实现 数据的增删改
当数据库实现DML语言类型操作时,需要用到executeUpdata()
当数据库实现DQL语言类型操作时,需要用到executeQuery()

所以将增删改操作封装在一个方法中,因为返回值为改变数组库记录的行数。

```css
public static int UDI(String sql){
						
						try {
							st = JDBCUtils.getConnection().createStatement();
							int i =st.executeUpdate(sql);
																								
							System.out.println(i);
							return i;
						} catch (SQLException e) {
							e.printStackTrace();
						}	
						return 0;
					}

针对于查询操作:我们需要用 针对 于这个类,当执行完这个方法后会进行,返回一个结果集,所以针对查询,来说单独做一个封装。

public static ResultSet Querey(String sql){
						try {
							st = JDBCUtils.getConnection().createStatement();
							
							rs = st.executeQuery(sql);

							return rs;
							
							
						} catch (SQLException e) {
							e.printStackTrace();
						}
						return null;
					}

数据库连接 jdbc中,每当资源加载完时需要对资源进行关闭。
那么写一个进行资源关闭的方法,针对数据库连接中的3个对象,我们进行这样的关闭方式。

try {
if(rs != null){
rs.close();
}				

} catch (SQLException e) {
	e.printStackTrace();
}finally{

try {
if(conn != null){
conn.close();
}				

} catch (SQLException e) {
	e.printStackTrace();
}finally{
try {
if(st != null){
st.close();
}				

} catch (SQLException e) {
	e.printStackTrace();
}finally{


}

}
}

到此jdbc简单的封装就此结束了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值