jdbc封装成工具类及测试

        看狂神说的Mysql,封装了jdbc的工具类。亲测可用,可以作为参考哈!

1、这里需要一个配置文件:db.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=false
username=root
password=123456

2、JdbcUtils工具类内容

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class JdbcUtils {
	private static String driver = null;
	private static String url = null;
	private static String username = null;
	private static String password = null;
	
	static{
		
		try {
			InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream("db.properties");
			Properties properties = new Properties();
			properties.load(in);//到目前为止,db.properties文件中的内容就被读出到properties对象中了
			
			//获得配置文件中的信息
			driver = properties.getProperty("driver");
			url = properties.getProperty("url");
			username = properties.getProperty("username");
			password = properties.getProperty("password");
			
			//1、驱动只需要加载一次
			Class.forName(driver);
			
		} catch (Exception e) {
			e.printStackTrace();
		} 
	}
	
	//获取连接
	public static Connection getConnection() throws SQLException{		
		return DriverManager.getConnection(url,username,password);		
	}
	
	//释放连接资源
	public static void release(Connection conn,Statement st,ResultSet rs){
		if(rs!=null){
			try {
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
		if(st!=null){
			try {
				st.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
		if(conn!=null){
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}	
}

3、测试工具类 

         这里只是写了(“增”和“查”)的程序,在增程序的基础上改变程序中字符串变量sql,即可实现“删改”。执行sql语句,“增删改”使用executeUpdate()方法,“查”使用executeQuery()方法。

//增
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class TestInsert {

	public static void main(String[] args) {
		
		Connection conn= null;
		Statement st = null;
		ResultSet rs = null;
		
		try {
			conn = JdbcUtils.getConnection();//获取到一个连接
			st = conn.createStatement();//获得SQL的执行对象
			String sql = "INSERT INTO users(id,`NAME`,`PASSWORD`,`email`,`birthday`)"+
					"VALUES(5,'kuangshen','123456','56677889@qq.com','2020-01-01')";
			int cnt = st.executeUpdate(sql);//返回受影响行数
			if(cnt>0){
				System.out.println("插入成功!");
			}
			
		} catch (SQLException e) {	
			e.printStackTrace();
		}finally{
			JdbcUtils.release(conn, st, rs);
		}
	}

}

//查
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class TestSelect {

	public static void main(String[] args) {
		Connection conn= null;
		Statement st = null;
		ResultSet rs = null;
		
		try {
			conn = JdbcUtils.getConnection();
			st = conn.createStatement();//获得SQL的执行对象
			
			//SQL
			String sql = "select * from users where id = 1";
			//查询,也可以使用execute()方法,但是效率低
			rs = st.executeQuery(sql);//查询完毕会返回一个结果集
			
			while(rs.next()){
				//输出查询到的每条记录的名字,这里其实也就一条
				System.out.println(rs.getString("NAME"));
			}			
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			JdbcUtils.release(conn, st, rs);
		}				
	}
}

4、测试记录如下

(1)增

//插入操作
String sql = "INSERT INTO users(id,`NAME`,`PASSWORD`,`email`,`birthday`)"+
					"VALUES(5,'kuangshen','123456','56677889@qq.com','2020-01-01')";

插入结果:在原来四条记录的基础上增加了第五条记录

(2)删

//删除操作
String sql = "DELETE FROM users WHERE id = 5";

删除结果:删除了上边刚插入的第五条记录

(3)改

//改动操作
String sql = "UPDATE users SET `NAME`='kuangshen',`email`='22334455@qq.com' WHERE id =1";

改动结果:在上表的基础上,改动了id=1时记录的名字和邮箱

(4)查

//SQL
String sql = "select * from users where id = 1";
//查询,也可以使用execute()方法,但是效率低
rs = st.executeQuery(sql);//查询完毕会返回一个结果集

 查询结果:这里只查到一条记录

console输出:

kuangshen

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值