JDBC实现增删改查

数据库帮助类DBConnection
CRUD(增删改查)每个方法中都存在加载驱动程序,获得连接对象、关闭资源对象等重复代码,DBConnection帮助类避免了代码重复,实现代码重用和面向对象中的类设计的高内聚。

public class DBConnection {
//	数据库驱动
//	MySQL版本8.0后为com.mysql.cj.jdbc.Driver
//	MySQL版本8.0前为com.mysql.jdbc.Driver
    private static final String driverName = "com.mysql.cj.jdbc.Driver";
    private static final String url = "jdbc:mysql://localhost:3306/testdb";//jdbc:mysql://localhost:端口号/数据库名
    private static final String user = "root";//数据库用户
    private static final String password = "yxj123";//数据库密码
    private DBConnection(){}
    
    //加载驱动程序
    static{
        try{
            Class.forName(driverName);
        }catch (ClassNotFoundException e){
            e.printStackTrace();
        }
    }

    //创建连接对象
    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(url,user,password);
    }
    
    //依次关闭资源对象
    public static void close(ResultSet rs, Statement st,Connection conn){
        try{
            if(rs!=null){
                rs.close();
            }
        }catch (SQLException e){
            e.printStackTrace();
        }finally {
            try{
                if(st!=null){
                    st.close();
                }
            }catch (SQLException e){
                e.printStackTrace();
            }finally {
                if(conn!=null){
                    try{
                        conn.close();
                    }catch (SQLException e){
                        e.printStackTrace();
                    }
                }
            }
        }
    }
}

CURD操作类StudentCURD
对Student表实现插入记录,查询记录、更新记录、删除记录的操作

public class StudentCRUD {

	public static void main(String[] args) throws  ClassNotFoundException, SQLException{
		listAll();//...在该处调用方法
    }
    
    //Student(id,name,sex,age,class)
    //查询student表中的所有记录
	public static void listAll() throws SQLException{
        Connection conn=null;
        PreparedStatement ps=null;
        ResultSet rs=null;
        try{
            conn = DBConnection.getConnection();//创建连接对象
            String query="select * from student";//sql语句           
            ps=conn.prepareStatement(query);//创建prepareStatement对象执行SQl语句        
            rs=ps.executeQuery();//查询后的结果集放在rs里
            //遍历结果集对象并打印
            while (rs.next()){
                long id=rs.getInt("id");
                String name=rs.getString("name");
                String sex=rs.getString("sex");
                String age=rs.getString("age");
                String classInfo=rs.getString("class");
                System.out.println("学号:"+id+";姓名:"+name+";性别:"+sex+";年龄:"+age+";班级:"+classInfo);
            }
        }finally {
            DBConnection.close(rs,ps,conn);
        }
    }

	//插入一条记录
    public static void add() throws SQLException{
        Connection conn=null;
        PreparedStatement ps=null;
        ResultSet rs=null;
        try{
            conn = DBConnection.getConnection();           
            String insert="insert into student(id,name,sex,age,class) values(?,?,?,?,?)";        
            ps=conn.prepareStatement(insert);  
            ps.setString(1,"1");
            ps.setString(2,"李四");
            ps.setString(3,"男");
            ps.setString(4,"20");
            ps.setString(5,"软件192");
            ps.executeUpdate();           
        }finally {
            DBConnection.close(rs,ps,conn);
        }
    }

	//删除一条记录
    public static void delete() throws SQLException{
        Connection conn=null;
        PreparedStatement ps=null;
        ResultSet rs=null;
        try{
            conn = DBConnection.getConnection();           
            String del="delete from student where id=?"; 
            ps=conn.prepareStatement(del);  
            ps.setString(1,"1");
            ps.executeUpdate();           
        }finally {
            DBConnection.close(rs,ps,conn);
        }
    }
    
    //更新一条记录
    public static void update() throws SQLException{
        Connection conn=null;
        PreparedStatement ps=null;
        ResultSet rs=null;
        try{
            conn = DBConnection.getConnection();           
            String update="update student set name=? where id=?";
            ps=conn.prepareStatement(update);  
            ps.setString(2,"1");
            ps.setString(1,"王五");
            ps.executeUpdate();           
        }finally {
            DBConnection.close(rs,ps,conn);
        }
    }
}

MySQL驱动jar包
官网地址:https://dev.mysql.com/downloads/connector/j/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Servlet和JDBCJava Web开发中常用的技术,可以通过Servlet和JDBC实现增删改查操作。 Servlet是Java Web开发中的一个重要组件,可以接收HTTP请求并返回响应。通过Servlet可以实现数据库增删改查操作。在Servlet中,可以使用JDBC连接数据库,执行SQL语句,实现数据库增删改查操作。 JDBCJava数据库连接技术,可以通过JDBC连接数据库,执行SQL语句,实现数据库增删改查操作。在Servlet中,可以使用JDBC连接数据库,执行SQL语句,实现数据库增删改查操作。 通过Servlet和JDBC实现增删改查操作,可以实现数据库的数据进行操作,从而满足Web应用的需求。 ### 回答2: Servlet和JDBCJavaWeb开发中非常重要的两个技术,其中Servlet是用来处理HTTP请求和响应的Java组件,而JDBCJava连接数据库的API。在JavaWeb开发中,通常需要使用Servlet和JDBC实现增删改查操作。 首先,我们需要在Servlet中获取数据库连接对象,并使用JDBC API创建一个Statement对象。然后可以使用Statement对象执行SQL语句,如查询操作的SELECT语句,或者增删改操作的UPDATE、INSERT和DELETE语句。 对于查询操作,我们可以使用Statement对象的executeQuery()方法执行SQL语句,并将查询结果封装为ResultSet对象,然后在Servlet中处理ResultSet对象,获取所需要的数据。例如: ``` String sql = "SELECT * FROM users WHERE username='admin' AND password='123456'"; ResultSet rs = statement.executeQuery(sql); while (rs.next()) { int userId = rs.getInt("id"); String username = rs.getString("username"); String password = rs.getString("password"); System.out.println("id: " + userId + ", username: " + username + ", password: " + password); } ``` 对于增删改操作,我们可以使用Statement对象的executeUpdate()方法执行SQL语句,并得到操作结果。例如: ``` String insertSql = "INSERT INTO users (username, password) VALUES ('admin', '123456')"; int insertCount = statement.executeUpdate(insertSql); System.out.println("插入操作执行结果:" + insertCount); String updateSql = "UPDATE users SET password='654321' WHERE username='admin'"; int updateCount = statement.executeUpdate(updateSql); System.out.println("更新操作执行结果:" + updateCount); String deleteSql = "DELETE FROM users WHERE username='admin'"; int deleteCount = statement.executeUpdate(deleteSql); System.out.println("删除操作执行结果:" + deleteCount); ``` 以上是使用Servlet和JDBC实现增删改查的基本操作,需要注意的是,在使用JDBC连接数据库时,需要及时关闭数据库连接,以避免资源泄漏。另外,在实际开发中,通常会使用连接池管理数据库连接对象,以提高性能和可靠性。 ### 回答3: Servlet是用Java语言编写的Web应用程序,它可以接收HTTP请求并响应HTTP响应。JDBCJava Database Connectivity)是一个标准的Java API,用于处理与关系型数据库的连接和操作。通过将Servlet和JDBC结合使用,可以实现Web应用程序中数据的增删改查功能。 在使用Servlet和JDBC实现增删改查功能之前,需要先连接数据库。通常情况下,连接数据库需要导入相关的JDBC驱动程序,并设置数据库连接的URL、用户名和密码等相关信息。 对于数据库增删改查操作,可以通过执行SQL语句实现。在Servlet程序中,可以使用JDBC的PreparedStatement接口来执行SQL语句并处理输出结果。例如,执行插入操作的代码如下: ```java String sql = "INSERT INTO users (name, email, password) VALUES (?, ?, ?)"; PreparedStatement statement = connection.prepareStatement(sql); statement.setString(1, name); statement.setString(2, email); statement.setString(3, password); int rows = statement.executeUpdate(); ``` 这段代码使用预编译的SQL语句将用户的姓名、邮箱和密码插入到数据库中,并返回受影响的行数。 对于数据库的查询操作,一般需要查询条件和输出字段。查询条件可以通过设置SQL语句中的参数来实现,输出字段则可以通过ResultSet接口中的方法来获取。例如,查询用户信息的代码如下: ```java String sql = "SELECT * FROM users WHERE email=?"; PreparedStatement statement = connection.prepareStatement(sql); statement.setString(1, email); ResultSet resultSet = statement.executeQuery(); while (resultSet.next()) { String name = resultSet.getString("name"); String password = resultSet.getString("password"); // do something with name and password } ``` 这段代码使用预编译的SQL语句查询指定邮箱的用户信息,并将用户名和密码输出到控制台上。 除了查询操作,还可以通过执行UPDATE和DELETE等SQL语句来实现数据库的更新和删除操作。例如,更新密码的代码如下: ```java String sql = "UPDATE users SET password=? WHERE email=?"; PreparedStatement statement = connection.prepareStatement(sql); statement.setString(1, newPassword); statement.setString(2, email); int rows = statement.executeUpdate(); ``` 这段代码使用预编译的SQL语句更新指定邮箱的用户密码,并返回受影响的行数。 综上所述,将Servlet和JDBC结合使用可以实现Web应用程序中的数据增删改查功能。通过连接到数据库并执行SQL语句,我们可以对数据库中的数据进行各种操作,从而实现更加强大的Web应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值