详细解析java JDBC实现增删改查

目录

实现java数据库的增删改查基本步骤

包与类的结构。

一,与数据库建立连接,驱动包导入。

​二,创建实体类(与数据库的属性相一致)

三,创建接口 

四,sql语句预编译和执行代码

         五,test测试类

 


实现java数据库的增删改查基本步骤

1, jdbc类数据库链接和驱动导入,test类测试增删改查。

2,Book类编写实体类(与数据库MySQL的属性一至)

3,BookDaoompl接口编写增删改查抽象方法

4,BookDao实现BookDaoompl接口中 的抽象方法

包与类的结构。

一,与数据库建立连接,驱动包导入。

package Util;

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

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

	}

	public static Connection con() throws SQLException {
		String url = "jdbc:mysql://localhost:3306/test?characterEncoding=utf-8";
		Connection con = DriverManager.getConnection(url, "root", "sa");//与数据建立连接
		return con;

	}

	public static void main(String[] args) {
		try {
			Connection con = jdbc.con();
			System.out.println(con);//测试链接是否成功
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

连接测试成功显示地址; 

 二,创建实体类(与数据库的属性相一致)

package Entity;

public class Book {
	private int id;
	private String name;
	private int age;
	private String sex;
	private String dizhi;//设置私有属性
    //get和set得到和设置属性值
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public String getDizhi() {
		return dizhi;
	}

	public void setDizhi(String dizhi) {
		this.dizhi = dizhi;
	}
    //建立有参和无参的构造方法
	public Book(int id, String name, int age, String sex, String dizhi) {
		super();
		this.id = id;
		this.name = name;
		this.age = age;
		this.sex = sex;
		this.dizhi = dizhi;
	}

	public Book() {
		super();
	}
    //建立tostring方法返回string值
	@Override
	public String toString() {
		return "Book [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + ", dizhi=" + dizhi + "]";
	}

}

三,创建接口 

package Dao;

import java.sql.SQLException;
import java.util.List;

import Entity.Book;

public interface BookDaoimpl {
	int insertbook(Book book) throws SQLException;//增

	int delete(int id) throws SQLException;//删

	int update(Book book) throws SQLException;//改

	List<Book> selectBook() throws SQLException;//查

}

四,sql语句预编译和执行代码

package Dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import Entity.Book;
import Util.jdbc;

public class BookDao implements BookDaoimpl {

	@Override
    //增
	public int insertbook(Book book) throws SQLException {
		// TODO Auto-generated method stub
		Connection con = jdbc.con();//连接数据库
        //sql语句的预编译防止sql注入 ,?代表占位符
        //表名和属性要与数据库表明和属性一至
		String sql = "insert into book (name,age,sex,dizhi) values(?,?,?,?)";
        //创建PreparedStatement对象用来执行sql语句
		PreparedStatement per = con.prepareStatement(sql);
        //添加和得到各个属性的值
		per.setString(1, book.getName());
		per.setInt(2, book.getAge());
		per.setString(3, book.getSex());
		per.setString(4, book.getDizhi());
        //执行sql语句,executeUpdate()获取影响的行数并返回
		int rows = per.executeUpdate();
        //返回执行影响的行数
		return rows;
	}
    //删
	@Override
	public int delete(int id) throws SQLException {
		// TODO Auto-generated method stub
        //连接数据库
		Connection con = jdbc.con();
        //删除sql语句预编译
		String sql = "delete from book where id=?";
		PreparedStatement per = con.prepareStatement(sql);
        //获取删除的id
		per.setInt(1, id);
        //执行删除sql语句
		int wors = per.executeUpdate();
        //返回影响行数,executeUpdate()获取影响的行数并返回
		return wors;
	}
    //改
	@Override
	public int update(Book book) throws SQLException {
        //获取连接
		Connection con = jdbc.con();
		// TODO Auto-generated method stub
        //sql语句编译
		String sql = "update book set name=?,age=?,sex=?,dizhi=?where id=?";
		PreparedStatement per = con.prepareStatement(sql);
        //得到修改的数据
		per.setString(1, book.getName());
		per.setInt(2, book.getAge());
		per.setString(3, book.getSex());
		per.setString(4, book.getDizhi());
		per.setInt(5, book.getId());
        //执行修改sql语句,executeUpdate()获取影响的行数并返回
		int wors = per.executeUpdate();
        //返回影响行数
		return wors;
	}
    //查
	@Override
	public List<Book> selectBook() throws SQLException {
		// TODO Auto-generated method stub
        //获取连接
		Connection con = jdbc.con();
        //查询语句编译
		String sql = "select * from book";
		PreparedStatement per = con.prepareStatement(sql);
        //executeQuery()方法查询到数据库的相应结果存放到ResultSet
		ResultSet rest = per.executeQuery();
        //建立list集合存放输出查询结果
		List<Book> book = new ArrayList<Book>();
        //rest.next()方法将指针下移直到没下一行返回FALSE。
		while (rest.next()) {
            //将查询结果依次储存
			int id = rest.getInt("id");
			String name = rest.getString("name");
			int age = rest.getInt("age");
			String sex = rest.getString("sex");
			String dizhi = rest.getString("dizhi");
            //建立一个新对象放置结果
			Book book1 = new Book(id, name, age, sex, dizhi);
			//将结果增加到list集合中
            book.add(book1);
		}
        返回查询结果
		return book;

	}

}

 增删改的执行语句的方法不一致,因为增删改只需要返回执行中影响的正确行数,so我们只要使用executeUpdate()方法,而查询需要返回查询的结果集要用executeQuery()方法进行储存

 五,test测试类

package Test;

import java.sql.SQLException;
import java.util.List;

import Dao.BookDao;
import Dao.BookDaoimpl;
import Entity.Book;

public class test {

	public static void main(String[] args) throws SQLException {
		// TODO Auto-generated method stub
        
		BookDaoimpl dao = new BookDao();
		Book book = new Book();
		List<Book> rows = dao.selectBook();
		System.out.println(rows);

	}

}

 查询结果

  • 26
    点赞
  • 131
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
### 回答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应用程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小明同学`

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值