MYSQL JDBC操作2

本文介绍如何通过配置文件简化数据库连接设置,并利用JDBC模板实现数据查询、更新及删除操作,提升代码的可维护性和重用性。

使用配置文件  目的:方便后期维护,只需要更改配置文件 不需要改源代码  

在src文件中(可任意选)新建一个配置文件  后缀名必须为properties 并在里面写入数据


使用ResourceBundle类加载配置文件


使用JDBC模板 写好连接方法和释放资源的方法 完整代码如下

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 JdbcUtils {

	//工具类,一个获取连接的方法和一个释放资源的方法
	
	//使用配置文件的目的:方便后期维护,只需要更改配置文件 不需要改源代码  
	private static String dirver;
	private static String url;
	private static String user;
	private static String password;
	
	//静态代码块,加载配置文件 , 使用ResourceBundle类 
	static{
		ResourceBundle bundle = ResourceBundle.getBundle("db");//不用后缀名
		dirver = bundle.getString("jdbc.driver");		//获取配置文件中的字符串
		url = bundle.getString("jdbc.url");
		user = bundle.getString("jdbc.user");
		password = bundle.getString("jdbc.password");
	}
	
	//获取连接
	public static Connection getConn()
	{
		Connection conn =null;
		try {
			Class.forName(dirver);
			conn = DriverManager.getConnection(url, user, password);	
		} catch (Exception e) {
			e.printStackTrace();
		}
		return conn;
	}
	//释放资源
	public static void release(ResultSet rs,PreparedStatement pstmt,Connection conn)
	{
		
		
			try {
				if (rs != null)
					rs.close();
				if (pstmt != null)
					pstmt.close();
				if (conn != null)
					conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
	}
}


写好模板后 可以用模板进行代码重用

 进行cid的查询

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

import org.junit.Test;

public class Test1 {

	@Test
	public  void lookid()
	{
		ResultSet rs = null;
		PreparedStatement pstmt = null;
		Connection conn =null;
		try {
			//获取连接
			conn = JdbcUtils.getConn();	
			//查询:
			String sql = "select * from product where cid = ?";
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, "1");
			rs = pstmt.executeQuery();
			while(rs.next())
			{
				System.out.println("pid:"+rs.getObject(1)+" name:"+rs.getObject(2)+" cid:"+rs.getObject(5));
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			JdbcUtils.release(rs, pstmt, conn);
		}
	}
}


进行数据更新 删除 添加

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

import org.junit.Test;

public class Test2 {

	@Test
	public  void lookid()
	{
		ResultSet rs = null;
		Statement st = null;
		Connection conn =null;
		try {
			//获取连接
			conn = JdbcUtils.getConn();	
			
			//获得语句执行者
			st = conn.createStatement();
			//添加:
			//int r = st.executeUpdate("insert into product values(null,'王',200,null,3)");
			//System.out.println(r);
			
			//更新
			//int r = st.executeUpdate("update product set pname = '陈' , price = 1500 where pid = 8");
			//System.out.println(r);
			
			//删除
			int r = st.executeUpdate("delete from product where pid =9");
			System.out.println(r);

		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			//JdbcUtils.release(rs, pstmt, conn);写好模板,输入的没有pstmt 而是st Statement类型
		}		
	}
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值