Java连接MySQL数据库

JDBC(Java连接MySQL数据库)

  • JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
  • 使用jdbc可以操作本机或局域网中机子上的数据库。
  • 连接好后进而可以创建表,再对表进行增、删、改、查。

JDBC的使用步骤

1导入jar包

导入MySQL-connection-Java-5.1.47.jar项目
1.在项目中新建一个lib文件夹
2.把jar拷贝到文件夹中
3.反键点击jar,点击Build Path 在点击add

2加载驱动(根据数据库不同加载不同驱动)

 //在代码块中加载驱动
static{
    try {
    	Class.forName("com.mysql.jdbc.Driver");
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

3.连接数据库

启动数据库
>mysql -utoot -p123456
//连接信息
private static String user = "root";
private static String password = "123456";
private static Connection connection;
/*
	 * 	数据库连接地址
	 * 		jdbc:mysql:// : 协议名称
	 * 		localhost:3306 : 服务器的地址
	 * 		jdbc_db : 数据库名称
	 * */
private static String url = "jdbc:mysql://localhost:3306/jdbc_db";

public static Connection getConnection() {
		try {
			if(connection == null || connection.isClosed()) {
				try {
					connection = DriverManager.getConnection(url, user, password);
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return connection;
	}

4.获取操作句柄

Statement sta = null;
//通过数据库连接得到操作数据库的句柄
sta = connection.createStatement();

5.执行SQL语句

String sql = "INSERT user(name,password) VALUES ('"+ user.getName() +"','"+user.getPassword()+"')";
//插入
sta.executeUpdate(sql);

增删查改方法的封装

public void insertDept(Dept dept) {
		//1.写SQL语句
		String sql = "INSERT dept VALUES (?,?,?)";
		PreparedStatement ps = null;
		try {
			//2.从数据库连接中得到操作数据库的句柄
			ps = connection.prepareStatement(sql);
			//3.设置参数
			ps.setInt(1, dept.getDeptno());
			ps.setString(2, dept.getDname());
			ps.setString(3, dept.getLoc());
			//执行SQL语句
			int len = ps.executeUpdate();
			System.out.println("插入成功,一共插入了" + len +"行!");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			if(ps != null) {
				try {
					ps.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}

public Dept selectDeptByDeptno(int deptno) {
		//1.写SQL语句
		String sql = "SELECT * FROM dept WHERE deptno = ?";
		PreparedStatement ps = null;
		ResultSet set = null;
		Dept result = null;
		try {
			//2.从数据库连接中得到操作数据库的句柄
			ps = connection.prepareStatement(sql);
			//3.设置参数
			ps.setInt(1, deptno);
			//4.执行SQL语句
			set = ps.executeQuery();
			
			while(set.next()) {
				result = new Dept();
				result.setDeptno(set.getInt("deptno"));
				result.setDname(set.getString("dname"));
				result.setLoc(set.getString("loc"));
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			if(ps != null) {
				try {
					ps.close();
					set.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
    return result;
}
public Dept selectDeptByDeptno(int deptno) {
		//1.写SQL语句
		String sql = "SELECT * FROM dept WHERE deptno = ?";
		PreparedStatement ps = null;
		ResultSet set = null;
		Dept result = null;
		try {
			//2.从数据库连接中得到操作数据库的句柄
			ps = connection.prepareStatement(sql);
			//3.设置参数
			ps.setInt(1, deptno);
			//4.执行SQL语句
			set = ps.executeQuery();
			
			while(set.next()) {
				result = new Dept();
				result.setDeptno(set.getInt("deptno"));
				result.setDname(set.getString("dname"));
				result.setLoc(set.getString("loc"));
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			if(ps != null) {
				try {
					ps.close();
					set.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值