JDBC基础操作

别人是从删库到跑路

我是从删库到毁注册表。磁盘受损,无法修复。。

次日,吾乃到某想客后服务询之。只见得那人二话不说,以报告单示之。

声称要我一百六十大洋啊。。乃翁一气之下将系统盘还原之。当然是在询问之后才敢有的操作。。

回来装了下mysql,几次未果。最后我又去删注册表,成功。。

后来各种姿势都可测试。气人不



/**
 * 
 * 主操作类
 * 
 */

package sxtopc.hello;

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

import org.junit.Test;

import com.utils.JdbcUtils2;

public class Hello {
	@Test
	public void l1() {
		System.out.println("Hello World !!! ");
	}
	@Test
	public void l2() throws Exception {
		//注册驱动
		Class.forName("com.mysql.jdbc.Driver");
		
		//获取连接
		Connection conn;
		conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day07","root","123");
		
		//编写sql
		String sql = "select * from category" ;
		
		//创建语句执行者
		PreparedStatement st;
		st = conn.prepareStatement(sql);
		
		//设置参数
		
		
		//执行sql
		ResultSet rs = st.executeQuery() ;
		
		//处理结果 
		while(rs.next()) {
			System.out.println(rs.getString("cid")+"::"+rs.getString("cname"));
		}
		
		//释放资源
		rs.close();
		st.close();
		conn.close();
	}
	
	/** 输出:
	 * 	c001::电器
		c002::服饰
		c003::化妆品
		c004::书籍
	**/
	
	// 插入一条数据
	@Test
	public void l3() {
		
		Connection conn = null ;
		ResultSet rs = null ;
		PreparedStatement st = null ;
		
		
		try {
			// 获取连接
			conn = JdbcUtils2.getConnection() ;
			
			//编写sql
			String sql = "insert into category values(?,?)" ;
			
			//获取语句执行者
			st = conn.prepareStatement(sql) ;
			
			//设置参数
			st.setString(1,"c006") ;
			st.setString(2,"Kindle") ;
 			
			//执行sql
			int i = st.executeUpdate() ;
			
			// 处理结果
			if(i == 1) {
				System.out.println("success");
			}
			else {
				System.out.println("fail");
			}
			
			
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			// 释放资源
			JdbcUtils2.closeResource(conn, st, rs);
		}
		
	}
}

/** 输出:
 * 
 *  success
 */





/**
 * 
 * 工具类
 * 
 */

package sxtopc.utils;

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

public class JdbcUtils2 {
	static final String DRIVERCLASS;
	static final String URL;
	static final String USER;
	static final String PASSWORD;
	static{
		ResourceBundle bundle = ResourceBundle.getBundle("jdbc") ;
		DRIVERCLASS = bundle.getString("driverClass") ;
		URL = bundle.getString("url") ;
		USER = bundle.getString("user") ;
		PASSWORD = bundle.getString("password") ;
	}
	
	//注册驱动
	static {
		try {
			Class.forName(DRIVERCLASS);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	
	public static Connection getConnection() throws SQLException {
		//获取连接
		return DriverManager.getConnection(URL,USER,PASSWORD) ;
	}
	
	
	/**
	 * 释放资源
	 * @param conn
	 * @param st
	 * @param rs
	 */
	public static void closeResource(Connection conn,Statement st,ResultSet rs) {
		
		closeRs(rs) ;
		closeSt(st) ;
		closeConn(conn) ;
	}
	
	/**
	 *  释放连接
	 * @param conn
	 */
	public static void closeConn(Connection conn) {
		if(conn != null)  {
			try {
				conn.close() ;
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			conn = null ;
		}
	}
	/**
	 *  释放语句执行者
	 * @param st
	 */
	public static void closeSt(Statement st) {
		if(st != null)  {
			try {
				st.close() ;
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			st = null ;
		}
	}
	
	/**
	 *  释放结果集
	 * @param rs
	 */
	public static void closeRs(ResultSet rs) {
		if(rs != null)  {
			try {
				rs.close() ;
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			rs = null ;
		}
	}
}




/**
 * 
 * 配置文件 (.properties)
 * 不要把它放在工具类的包下面
 * 要放在src列表下和包并列
 * 
 */
driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/day07
user=root
password=123





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值