2021-09-12

使用Java连接mysql数据库,并实现增删改,查

Java连接数据库的步骤

1.导入驱动包,加载相应的驱动类
2.与数据库建立连接
3.发送sql,执行(增删改,查)
4.处理结果集(只有查询的时候才用到结果集)

1.导入驱动包,加载相应的驱动类

这里
这里找到你下载的mysql安装包下的lib文件夹,找到上图这个jar包,然后再ecilpse中新建一个Java项目JDBCConnection
在这里插入图片描述
再将刚才的jar包复制到这个项目下
在这里插入图片描述

邮件导入的jar包
在这里插入图片描述
在这里插入图片描述
这样就完成了,驱动包的导入。

2.加载相应的驱动类

//a.导入驱动包,加载相应的驱动类
  Class.forName("com.mysql.cj.jdbc.Driver");
            	  

2.与数据库建立连接

//b.与数据库建立连接
   connection=DriverManager.getConnection(url,name,password);

DriverManager:管理数据库驱动类,通过getconnection() 方法获取管理数据库的对象connection

3.发送sql语句,并执行

在这里插入图片描述
在这里插入图片描述
现在我的userdb数据库中的user表中只有这两条数据,执行下面这条语句

 String sql="insert into user valus(3,'王五','666')";  //将这一表项加入到user表中

在user中添加上这一表象(先上效果图)
在这里插入图片描述

 pstmt=connection.prepareStatement(sql);

通过connection对象获取操作数据的队象connection,再将sql字符串传给prepareStatement()预编译

 int count=  pstmt.executeUpdate();  //返回一个整数值,代表影响的行数

再将其执行,返回的是一个int类型的值,表示影响数据库的行数

下面时删除,修改的代码(只需要将sql语句替换即可)

删除:

 String sql2="delete from user where username='张三'";  //删除张三这一表项

在这里插入图片描述

 String sql3="update user set password='123'where username='李四'";  //将李四对应的password值改为123

在这里插入图片描述
name="root"是本人数据库名,password="123456"是本人的密码,(请使用是修改成自己的数据库名和密码)

private static String url="jdbc:mysql://localhost:3306/userdb";

这里最后的userdb需要修改成自己要访问的数据库名

附上全片代码

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

import com.mysql.cj.xdevapi.Result;

public class CSDNMysql {
	private static String url="jdbc:mysql://localhost:3306/userdb";
	private static String name="root";
	private  static String password="123456";
			
			
         public static void update()
         {
        	 Connection connection=null;
 			//Result rs=null;
 			PreparedStatement pstmt=null;
 			
        	 
        	   try {
        		 //a.导入驱动包,加载相应的驱动类
            	   Class.forName("com.mysql.cj.jdbc.Driver");
            	  
            	   //b.与数据库建立连接
            	   connection=DriverManager.getConnection(url,name,password);
            	   
            	   //c.发送sql语句,并执行
            	   String sql="insert into user values(3,'王五','666')";  //将这一表项加入到user表中
            	   String sql2="delete from user where username='张三'";  //删除张三这一表项
            	   String sql3="update user set password='123'where username='李四'";  //将李四对应的password值改为123
            	   pstmt=connection.prepareStatement(sql3);
            	   int count=  pstmt.executeUpdate();  //返回一个整数值,代表影响的行数
            	   if(count>0)
            	   {
            		   System.out.println("操作成功!!!");
            	   }
            	   
            	   
        	   }catch(ClassNotFoundException e)
        	   {
        		   e.printStackTrace();
        	   }catch(SQLException e)
        	   {
        		   e.printStackTrace();
        	   }catch(Exception e)
        	   {
        		   e.printStackTrace();
        	   }finally {
        		  try {
        			  if(pstmt!=null)  pstmt.close();  //先开后关
        			  if(connection!=null)  connection.close();
        		  }catch(SQLException e)
        		  {
        			  e.printStackTrace();
        		  }
        	   }
         }
         public static void main(String []args)
 		{
 			update();
 		}
}

		





4.查询操作(需要用到ResultSet结果集)

String sql="select * from user";  //查询user表的全部元素
      pstmt=connection.prepareStatement(sql);
      rs = pstmt.executeQuery();  //返回一个整数值,代表影响的行数

只是将这两行的代码修改,然后下面去出数据

while(rs.next())
            	   {
            		   int id =rs.getInt("iduser");  //获取表中的iduser
            		   String username=rs.getString("username");  //获取username
            		   String password=rs.getString("password");  //获取password
            	   }

因为ResultSet里有getXxx();方法,可以获取结果集中的值,但是结果集中的值,不是同一数据类型,所以需要利用循环将其输出

现在先看一下数据库里的数据
在这里插入图片描述
下面运行程序:
在这里插入图片描述
附上代码:

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

import com.mysql.cj.xdevapi.Result;

public class CSDNConnectionQuery {
	private static String url="jdbc:mysql://localhost:3306/userdb";
	private static String name="root";
	private  static String password="123456";
			
			
         public static void query()
         {
        	 Connection connection=null;
 		    ResultSet rs=null;
 			PreparedStatement pstmt=null;
 			
        	 
        	   try {
        		 //a.导入驱动包,加载相应的驱动类
            	   Class.forName("com.mysql.cj.jdbc.Driver");
            	  
            	   //b.与数据库建立连接
            	   connection=DriverManager.getConnection(url,name,password);
            	   
            	   //c.发送sql语句,并执行
            	 String sql="select * from user";  //查询user表的全部元素
            	   pstmt=connection.prepareStatement(sql);
            	   rs = pstmt.executeQuery();  //返回一个整数值,代表影响的行数
            	  
            	   while(rs.next())
            	   {
            		   int id =rs.getInt("iduser");  //获取表中的iduser
            		   String username=rs.getString("username");  //获取username
            		   String password1=rs.getString("password");  //获取password
            		   
            		   //将其输出
            		   System.out.println(id+"  "+username+"  "+password1);
            	   }
            	
            	
            	   
            	   
            	   
        	   }catch(ClassNotFoundException e)
        	   {
        		   e.printStackTrace();
        	   }catch(SQLException e)
        	   {
        		   e.printStackTrace();
        	   }catch(Exception e)
        	   {
        		   e.printStackTrace();
        	   }finally {
        		  try {
        			  if(rs!=null)  rs.close();
        			  if(pstmt!=null)  pstmt.close();  //先开后关
        			  if(connection!=null)  connection.close();
        			  
        		  }catch(SQLException e)
        		  {
        			  e.printStackTrace();
        		  }
        	   }
         }
         public static void main(String []args)
 		{
 			query();
 		}
}

		

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值