目录
实现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();
}
}
}
连接测试成功显示地址; 文章来源:https://www.toymoban.com/news/detail-472541.html
二,创建实体类(与数据库的属性相一致)
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()方法进行储存文章来源地址https://www.toymoban.com/news/detail-472541.html
五,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);
}
}
查询结果
到了这里,关于详细解析java JDBC实现增删改查的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!