java之jdbc入门笔记2

注意导包:mysql-connector-java-5.1.39-bin.jar

配置文件:jdbc.properties(放在src下)

driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/webstudy
user=root
password=123


jdbc的工具类

package 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 JdbcUtil {
	//用于加载配置文件为properties快速的工具,避免繁杂的IO操作
	 static ResourceBundle bundle;
	 static String url;
	 static String user;
	 static String password;
	static{
		 bundle = ResourceBundle.getBundle("jdbc");
		 url = bundle.getString("url");
		 user= bundle.getString("user");
		 password= bundle.getString("password");
		 
		 try {
			 //加载驱动
			Class.forName(bundle.getString("driverClass"));
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	/**
	 * 获取连接
	 * */
	public static Connection getConnection(){
		try {
			return DriverManager.getConnection(url, user, password);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
	}
	/**
	 * 关闭资源
	 * */
	public static void closeResource(Connection conn,PreparedStatement stm,ResultSet rs){
		if(rs!=null){
			try {
				rs.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				rs=null;
			}
		}
		if(stm!=null){
			try {
				stm.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				stm=null;
			}
		}
		if(conn!=null){
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				conn=null;
			}
		}
	}
	
}




jdbc案例:curd

package jdbc;

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


import java.sql.ResultSet;

import org.junit.After;
import org.junit.Test;
/**
 * 数据库的curd
 * */
public class JdbcTest {
	@Test
	public void read(){
		Connection conn;
		PreparedStatement stm;
		ResultSet rs;
		try {
			conn = JdbcUtil.getConnection();
			String sql = "select * from t_user";
			stm=conn.prepareStatement(sql);
			rs=stm.executeQuery();
			while(rs.next()){
				//通过数据库字段名获取值
				System.out.println("cid:"+rs.getInt("uid")+" username:"+rs.getString("username"));
			}
			JdbcUtil.closeResource(conn, stm, rs);
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}
	@Test
	public void update(){
		Connection conn;
		PreparedStatement stm;
		int rs;
		try {
			conn = JdbcUtil.getConnection();
			String sql = "insert into t_user values(?,?)";
			stm=conn.prepareStatement(sql);
			//设置sql中的参数
			stm.setInt(1, 3);
			stm.setString(2, "芈月");
			rs = stm.executeUpdate();//返回数据执行操作后的影响行数,插入成功返回大于0的数
			if(rs>0){
				System.out.println("success");
			}else{
				System.out.println("false");
			}
			JdbcUtil.closeResource(conn, stm, null);
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}
	@Test
	public void change(){
		Connection conn;
		PreparedStatement stm;
		int rs;
		try {
			conn = JdbcUtil.getConnection();
			String sql = "update t_user set username=? where uid=?";
			stm=conn.prepareStatement(sql);
			stm.setInt(2, 3);
			stm.setString(1, "宫本");
			rs = stm.executeUpdate();//返回数据执行操作后的影响行数。
			if(rs>0){
				System.out.println("success");
			}else{
				System.out.println("false");
			}
			JdbcUtil.closeResource(conn, stm, null);
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}
	@Test
	public void delete(){
		Connection conn;
		PreparedStatement stm;
		int rs;
		try {
			conn = JdbcUtil.getConnection();
			String sql = "delete from t_user where uid=?";
			stm=conn.prepareStatement(sql);
			stm.setInt(1, 3);
			rs = stm.executeUpdate();//返回数据执行操作后的影响行数。
			if(rs>0){
				System.out.println("success");
			}else{
				System.out.println("false");
			}
			JdbcUtil.closeResource(conn, stm, null);
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}
	
}





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值