目录

实现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 blocke.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 blocke.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值@Overridepublic 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 stubConnection 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;}//删@Overridepublic 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);//获取删除的idper.setInt(1, id);//执行删除sql语句int wors = per.executeUpdate();//返回影响行数,executeUpdate()获取影响的行数并返回return wors;}//改@Overridepublic 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;}//查@Overridepublic 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()方法查询到数据库的相应结果存放到ResultSetResultSet 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 stubBookDaoimpl dao = new BookDao();Book book = new Book();List<Book> rows = dao.selectBook();System.out.println(rows);}}

查询结果

详细解析java JDBC实现增删改查相关推荐

  1. java jdbc 增删改封装_JAVA JDBC 常规增删改查简单封装

    JAVA JDBC 常规增删改查简单封装,可满足大多基本要求 作用: 1, 查询列表是直接返回List对象,不必再遍历: 2, 单条查询直接返回对象: 3, 执行sql仅需一个方法搞定: packag ...

  2. java jdbc标签jsp_jsp+servlet+javabean+jdbc实现增删改查和分页功能 案例源码

    [实例简介] 客户管理案例 1.目的:总结JDBC,和Servlet JSP结合到一起. 2.开发中的一些小技巧. 3.客户管理平台功能 * 添加客户 * 查询所有的客户的信息 * 修改客户信息 * ...

  3. java jdbctemplate的增删改查的实现

    jdbctemplate终于到你啦,准备了三天的java jdbc的基础知识 准备从建项目中慢慢学习,遇见不知道的就查资料,在回来慢慢的补自己不知道的知识点 1.新建一个项目jdbctemplate ...

  4. Servlet+jdbc+jsp增删改查

    Servlet+jdbc+jsp增删改查 目录 Servlet 1. 新建一个工程名为servletStudy 2. tomcat xml配置 3. servlet类 User类 Function类 ...

  5. 基础的java增删改查,Java基础系列(基础):Java使用Cookie增删改查操作!

    什么是Cookie? Cookie是由W3C组织提出,最早由NetScape社区发展的一种机制. Cookie是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个co ...

  6. java中的数组增删查改操作,java数组实现增删改查

    java 实现动态数组,Java工具类Arrays中不得不知的常用方法,数组实现队列java,java数组实现增删改查 java 增删改查代码 import java.sql.Connection; ...

  7. java简单的增删改查项目 ATM机

    java简单的增删改查项目 login: package atm;import java.util.ArrayList; import java.util.List; import java.util ...

  8. python:pyqt5+mysql=学生信息管理系统(图文并茂,超详细, 附源码)——增删改查篇

    python:pyqt5+mysql=学生信息管理系统(图文并茂,超详细, 附源码)--增删改查篇 前言 一.主界面的样式 二.学生信息的增,删,改,查 1.增加学生信息 2.删除学生信息 3.更改学 ...

  9. Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用

    前面做了一个非常垃圾的小demo,真的无法直面它,菜的抠脚啊,真的菜,好好努力把.菜鸡. --WZY 一.JDBC是什么? Java Data Base Connectivity,java数据库连接, ...

最新文章

  1. Exchange2007中创建和访问公用文件夹
  2. 从内核文件系统看文件读写过程
  3. neo4j 添加属性_Neo4j:动态添加属性/设置动态属性
  4. python日志保存为html文件,用 Python 抓取公号文章保存成 HTML
  5. OpenGL绘制旋转茶壶
  6. HDU1287 破译密码【密码】
  7. innodb启动失败无法重启的处理方法
  8. ZABBIX 监控 JBOSS 7.1.1
  9. ExtJS002Window创建
  10. 利用几何布朗运动模型预测股票价格_20200514_
  11. 怎样建网站?(超详细)
  12. abaqus三点弯曲有限元模拟
  13. IP-guard如何实现远程控制或远程文件传送时,不在客户端弹出授权提示
  14. request_threaded_irq
  15. 计算机房摆放布局,【机房】强弱电机房位置大小及布置(附案例)
  16. 掌握JS中的“this” (一)
  17. 【从AWS亚马逊平台上的s3存储桶上下载文件到win10电脑上】
  18. mobaxterm使用教程
  19. HTML实现TabBar布局
  20. linux系统部署软件流程图,Dia:一款灵巧的流程图软件

热门文章

  1. MySQL整理-基础知识篇1
  2. 微信投票微信刷票的技巧和意义
  3. python 用tushare每日获得每天股票数据
  4. Springboot整合Elasticsearch(High-level-Client)
  5. 罗塞达石碑(Rosetta Stone)V3.3.0-Languages-如师通_免费安卓版
  6. ios不行安卓可以 微信签名_微信支付-支付验证签名失败(iOS)
  7. 随身WIFI刷真Linux(Debian)系统搭配拓展坞做超低功耗服务器
  8. C语言图形编程--俄罗斯方块制作(二)源代码
  9. 圭尔夫大学计算机科学硕士,加拿大硕士生物医学专业介绍:圭尔夫大学
  10. Linux基本指令之网络通信命令