JDBC java连接mysql数据库及基本操作

JDBC即Java database connect。

jdbc开发步骤 

  1. 注册驱动
  2. 获得连接
  3. 获得语句执行平台
  4. 执行SQL语句
  5. 处理结果
  6. 释放资源

开局基操————

 

 

 

 

文件右键NEW-> FOLD

建一个文件夹  用于放包 

Lib   专门用来放架包的

mysql-connector-java-5.1.37-bin.jar  可以很容易在网上找到

链接:https://pan.baidu.com/s/1Tm64O4_GtiZTfyNIgaiD_Q 
提取码:lun0

可能失效的比较快吧  还是建议自己上网找

 

找到mysql需要的架包复制到LIb中      ctrl+c        ctrl+v

(mysql-connector-java-5.1.37-bin.jar)

 

在lib里找到架包右键build path

出现Referenced Libraries

Referenced Libraries ->com.mysql.jdbc->Driver.class 右键 copy qualified name (复制全路径)

          //1.注册驱动

Class.forName("com.mysql.jdbc.Driver");

""内为上复制的全路径去掉  .class 

都是一样的   直接记住com.mysql.jdbc.Driver也一样

//1.注册驱动

Class.forName("com.mysql.jdbc.Driver");

//2.获得连接                                                 参数 连接数据库的地址  用户名 密码

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/phone", "root", "123");

System.out.println(conn);

????为你的数据库名    前面应当基本一致 

root是我的用户

123是我该用户的密码

Syso验证是否连接成功

此处应import java.sql.Connection;

容易应用错误  import com.mysql.jdbc.Connection;  这个包此处会报错改成上面的就可以

Syso如果报错权限问题

在数据库下改权限

grant all privileges on *.* to 'root' @'%' identified by '????';

flush privileges;

%内为你的            一般为localhost

????为你数据库密码

//3.获得语句执行平台

String sql ="select * from user";

PreparedStatement pre =   conn.prepareStatement(sql);

此处应用的包为import java.sql.PreparedStatement;

同上 莫出错

//4&&5.执行sql并处理     以查询为例//查询用executeQuery     增删改用 executeUpdate

ResultSet res = pre.executeQuery();

//由于可能不知道有多少条数据用WHILE

while(res.next()) {

int id = res.getInt("id");                  id  为user表内有的属性  NAME  AGE  SEX 同

String name = res.getString("NAME");     

int age = res.getInt("AGE");

String sex = res.getString("SEX");

System.out.println(id+"--"+name+"--"+age+"--"+sex+"--");

}

//释放资源 先开的后关  后开的先关

res.close();

pre.close();

conn.close();

此处应用了import java.sql.ResultSet;

我的user数据库是

 

       增

//获得语句执行平台 

String sql ="insert into user values(?,?,?,?)";

几个数据就几个问号

//预编译对象PreparedStatement

PreparedStatement pre =   conn.prepareStatement(sql);

pre.setInt(1,9);         第一个问号的值

pre.setString(2, "xiaofan");      第二个问号的值

pre.setInt(3,80);             第三个问号的值

pre.setString(4, "nv");               第四个问号的值

int sum = pre.executeUpdate();     返回都是几行受影响 故结果为设一个整形

System.out.println(sum);        有结果表示成功

              改

//获得语句执行平台 

String sql ="update user set NAME=? where id=?";

//预编译对象PreparedStatement

PreparedStatement pre = conn.prepareStatement(sql);

pre.setString(1, "dafan");         第一个问号值

pre.setInt(2,9);                   第二个问号值

int sum = pre.executeUpdate();

System.out.println(sum);

                            理解同增改

//获得语句执行平台 

String sql ="delete from user where id=?";

PreparedStatement pre =   conn.prepareStatement(sql);

pre.setInt(1, 11);

int sum = pre.executeUpdate();

System.out.println(sum);

查    全部代码
// TODO Auto-generated method stub
          //1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获得连接  参数 连接数据库的地址  用户名 密码
Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/phone", "root", "123");
System.out.println(conn);
//获得语句执行平台  
String sql ="select * from user";
PreparedStatement pre =   conn.prepareStatement(sql);

//执行sql并处理
//查询用executeQuery     增删改用 executeUpdate
ResultSet res = pre.executeQuery();
//由于可能不知道有多少条数据
while(res.next()) {
	int id = res.getInt("id");
	String name = res.getString("NAME");
	int age = res.getInt("AGE");
	String sex = res.getString("SEX");
	System.out.println(id+"--"+name+"--"+age+"--"+sex+"--");
}
//释放资源 先开的后关  后开的先关
res.close();
pre.close();
conn.close();
增   全部代码
// TODO Auto-generated method stub
          //1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获得连接  参数 连接数据库的地址  用户名 密码
Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/phone", "root", "123");
System.out.println(conn);
//获得语句执行平台  
String sql ="insert into user values(?,?,?,?)";
//预编译对象PreparedStatement
PreparedStatement pre =   conn.prepareStatement(sql);
pre.setInt(1,9);
pre.setString(2, "xiaofan");
pre.setInt(3,80);
pre.setString(4, "nv");
int sum = pre.executeUpdate();
System.out.println(sum);

pre.close();
conn.close();
 改    全部代码

  //1.注册驱动
		Class.forName("com.mysql.jdbc.Driver");
		//2.获得连接  参数 连接数据库的地址  用户名 密码
		Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/phone", "root", "123");
		System.out.println(conn);
		//获得语句执行平台  
		String sql ="update user set NAME=? where id=?";
		//预编译对象PreparedStatement
		PreparedStatement pre = conn.prepareStatement(sql);
		pre.setString(1, "dafan");
		pre.setInt(2,9);
		int sum = pre.executeUpdate();
		System.out.println(sum);

		pre.close();
		conn.close();

 

删   全部代码
       //1.注册驱动
		Class.forName("com.mysql.jdbc.Driver");
		//2.获得连接  参数 连接数据库的地址  用户名 密码
		Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/phone", "root", "123");
		System.out.println(conn);
		//获得语句执行平台  
		String sql ="delete from user where id=?";
		PreparedStatement pre =   conn.prepareStatement(sql);
		pre.setInt(1, 11);
		int sum = pre.executeUpdate();
		System.out.println(sum);
		
		pre.close();
		conn.close();

 以上代码均是放在主函数便可以

抛出异常   引入包便可以使用

以下为完整的代码

package day0706;

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

public class Demo {
	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		// TODO Auto-generated method stub
          //1.注册驱动
		Class.forName("com.mysql.jdbc.Driver");
		//2.获得连接  参数 连接数据库的地址  用户名 密码
		Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/phone", "root", "123");
		System.out.println(conn);
		//获得语句执行平台  
		String sql ="insert into user values(?,?,?,?)";
		//预编译对象PreparedStatement
		PreparedStatement pre =   conn.prepareStatement(sql);
		pre.setInt(1,20);
		pre.setString(2, "xiaofan");
		pre.setInt(3,80);
		pre.setString(4, "nv");
		int sum = pre.executeUpdate();
		System.out.println(sum);

		pre.close();
		conn.close();
		
	}

}

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值