Jdbc的简单增删改查(MYSQL)

Jdbc的简单增删改查(MYSQL)
今天来写一篇简单的jdbc的增删改查的操作,如果还没学jdbc的同学可以看一看。个人认为jdbc的操作比文件简单多了,学会jdbc之后就不用受文件的苦了(反正我没用过文件,哈哈)。而且如果做出的项目的数据能够保存起来,这个项目的逼格立马高了起来啊。
1、工具准备
首先你需要导一个jar文件,如果你的mysql是5.7版本的,可以用我这个
链接:https://pan.baidu.com/s/1wQTkLqd_NniQ9M1hvnIuDw 密码:20t6
如果不是的话在这个网站下载http://dev.mysql.com/downloads/connector/j/
这里给一个怎么在Eclilpse中导入jar包的教程(毕竟这不是重点,看看别人的就行了)
https://jingyan.baidu.com/article/ca41422fc76c4a1eae99ed9f.html

2、创建一个mysql表
CREATE TABLE tb_person (
name varchar(10) DEFAULT NULL,
sex varchar(5) DEFAULT NULL,
age int(11) DEFAULT NULL,
id int(11) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
有这个表,就可以把数据放入数据库了

3、准备工作做完了,就开始进行数据的插入吧

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

public class FirstTest {
	public static final String URL = "jdbc:mysql://localhost:3306/databaseweb";//databaseweb是我创建的数据库名称,前面的东西照着抄就行了
		public static final String USER = "root";//抄下来就行
		public static final String PASS = "gt1010992686";//数据库密码,每个人设置的都不同,要改
	    private static Connection conn = null;//抄下来就行
	
   public static void main(String[] args) throws SQLException  {
	  
			try {
				Class.forName("com.mysql.jdbc.Driver");//抄下来就行
				try {
					conn = DriverManager.getConnection(URL,USER,PASS);//抄下来就行
				} catch (SQLException e) {
					e.printStackTrace();
				}
			} catch (ClassNotFoundException e) {
				e.printStackTrace();
			}
		//下面的都是测试数据,怎么好玩你怎么设置
	   int id = 5;
	   int age = 19;
	   String name = "yangan";
	   String sex = "man";
	   
	   
	   String sql = "insert into tb_person values(?,?,?,?)";//关键sql语句,tb_person是这个表 ?代表要插入的数据,就把这个理解成%d就行了
	   
	   PreparedStatement ptmt = conn.prepareStatement(sql);	//抄下来就行
	   ptmt.setInt(4, id);       //把数据插入到数据库。数字代表第几个?,需要对应
	   ptmt.setString(1, name);
	   ptmt.setString(2, sex);
	   ptmt.setInt(3, age);
	   
	   ptmt.execute();//关闭,抄下来就行
}
}

运行代码(id 1~4是我之前写好了的,主要关注id 5)

4、那些看不懂的玩意
讲解一下那些“抄下来就行”的:URL为数据库地址(含端口号),里面的数据库名字需要自己进行修改,你创建的数据库叫啥名字就写啥。USER就写上root就行了,PASS就写上你的数据库密码。Connection是一个连接对象,Class.forName(“com.mysql.jdbc.Driver”)是注册驱动。
conn = DriverManager.getConnection(URL,USER,PASS)就算是建立了和数据库的连接
用一个String保存sql语句,用PrepareStatement类执行这个sql语句。
再用里面的set方法,把数据一一放进数据库,就行了。
5、删除操作

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

public class Deletesql {
	
	public static final String URL = "jdbc:mysql://localhost:3306/databaseweb";//databaseweb是数据库,前面的东西照着抄就行了
	public static final String USER = "root";//抄下来就行
	public static final String PASS = "gt1010992686";//数据库密码
    private static Connection conn = null;//抄下来就行
	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		
		try {
			Class.forName("com.mysql.jdbc.Driver");//抄下来就行
			try {
				conn = DriverManager.getConnection(URL,USER,PASS);//抄下来就行
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}

		
		String sql = "delete from tb_person where name = ?";//删除的sql语句
		PreparedStatement ptmt = conn.prepareStatement(sql);
		String name1 = "yangan";
		ptmt.setString(1, name1);
		
		ptmt.execute();
	}
}

有木有发现,刚才插入的那个已经被成功删除了。
细心的小伙伴应该能发现,这两段代码是不是有一大堆相同的部分?而且格式都很固定,如果每次都要写这个一大堆不是很累么,程序员要学会偷懒,那么怎么偷懒呢?静态函数可以帮助我们。把相同的部分封装成一个类,再类里写一个静态函数,直接调用这个类里面的静态函数,就可以得到Connection 对象,这样就可以节省一大堆时间啦

封装好的类代码:

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

public class DBUtil {
    
	public static final String URL = "jdbc:mysql://localhost:3306/databaseweb";
	public static final String USER = "root";
	public static final String PASS = "gt1010992686";
	
	private static Connection conn = null;
	static {
		
		try {
			Class.forName("com.mysql.jdbc.Driver");
			try {
				conn = DriverManager.getConnection(URL,USER,PASS);
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	public static Connection getConnection() {
		
		return conn;//关键,其他的都是虚的,上面一大堆,就是为了这个东西
		
	}
	
}

6、用封装好的方法来演示修改数据操作

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

public class Altersql {
     
	
	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		
		Connection conn = DBUtil.getConnection();
	    
	    String sql = "update tb_person set name =? where id = 1";
	    
	    PreparedStatement ptmt = conn.prepareStatement(sql);
	    
	    ptmt.setString(1, "yangan");
	    
	    ptmt.execute();
	}

}

泪流满面有木有,这代码是不是十分简单,只要有了这个类,以后只需要写sql语句就行了

7、查找

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.mysql.jdbc.Connection;


public class Test {
      
	
    public static void main(String[] args) throws SQLException,Exception{
       
    	
    	Connection conn = (Connection) DBUtil.getConnection();
    	Statement stat = conn.createStatement();
        String sql = "SELECT * FROM tb_person";
        ResultSet rs = stat.executeQuery(sql);
        // 输出查询结果
        while(rs.next()){
            System.out.print(rs.getInt("id")+",");
            System.out.print(rs.getString("name")+",");
            System.out.print(rs.getString("sex")+",");
            System.out.print(rs.getInt("age"));
            System.out.print("\n");
        }
        // 关闭
       try {
           if (rs != null) {
               rs.close();
           }
       } catch (SQLException e) {
           e.printStackTrace();
       } finally {
           try {
               if (stat != null) {
                   stat.close();
               }
           } catch (SQLException e) {
               e.printStackTrace();
           } finally {
               try {
                   if (conn != null) {
                       conn.close();
                   }
               } catch (SQLException e) {
                   e.printStackTrace();
               }
           }
       }
     }
}

为啥这里用的和上面的执行数据库语句不同呢?
Statement是一个执行无参数的sql语句的类,既然查找这条语句没有参数,那么就可以使用这个类。
ResultSet是结果集,用来返回在数据库中存放的结果,然后用get方法,把结果取出来。
.next方法可以向后移动。相当于遍历结果集。

8、总结
这就是简单的数据库jdbc操作了,从这里可以看出,其实连接数据库的方法是很固定的,基本上代码可以说都差不多。灵活的地方在与sql语句,知道更多的sql语句可以用更多的方法对数据库进行操作,这才是关键。最后附上java核心技术2的pdf,有兴趣的小伙伴可以下载下来看一下里面的jdbc是怎么讲的,希望对大家能有一点点的帮助。O(∩_∩)O哈哈
链接:https://pan.baidu.com/s/1MpNnDZ64qXhwou6sLeIYjw 密码:9b1b

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
JDBC(Java Database Connectivity)是Java语言中用于数据库编程的标准API。JDBC提供了一组用于访问和操作关系型数据库的接口和类。通过JDBC可以实现对数据库的增删改查操作。 下面是一个简单JDBC数据库增删改查的示例: 1. 加载JDBC驱动程序 ```java Class.forName("com.mysql.jdbc.Driver"); ``` 2. 建立数据库连接 ```java String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "123456"; Connection conn = DriverManager.getConnection(url, user, password); ``` 3. 创建Statement对象 ```java Statement stmt = conn.createStatement(); ``` 4. 执行SQL语句 查询: ```java String sql = "SELECT id, name, age FROM user"; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println("id=" + id + ", name=" + name + ", age=" + age); } ``` 插入: ```java String sql = "INSERT INTO user(id, name, age) VALUES(1, 'Tom', 20)"; int rows = stmt.executeUpdate(sql); System.out.println(rows + " rows affected."); ``` 更新: ```java String sql = "UPDATE user SET age=21 WHERE name='Tom'"; int rows = stmt.executeUpdate(sql); System.out.println(rows + " rows affected."); ``` 删除: ```java String sql = "DELETE FROM user WHERE id=1"; int rows = stmt.executeUpdate(sql); System.out.println(rows + " rows affected."); ``` 5. 关闭资源 ```java rs.close(); stmt.close(); conn.close(); ``` 以上就是一个简单JDBC数据库增删改查的示例。当然,在实际开发中,还需要考虑连接池、事务等问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值