jdbc连接数据库 增删改查

这篇博客介绍了如何使用Java JDBC进行数据库的基本操作,包括创建Person类,定义增删改查的方法接口,实现这些接口的类,以及用于测试的工具类。通过这些内容,读者可以学习到Java如何连接数据库并执行CRUD操作。
摘要由CSDN通过智能技术生成

Person类

​package vo;

import java.sql.Date;

public class Person {
   private Integer personid;
   private  String personname;
   private String degree;
    private Date birth;
    private Integer sal;

    public Person() {
    }

    public Person(Integer personid, String personname, String degree, Date birth, Integer sal) {
        this.personid = personid;
        this.personname = personname;
        this.degree = degree;
        this.birth = birth;
        this.sal = sal;
    }

    public void setPersonid(Integer personid) {
        this.personid = personid;
    }

    public void setPersonname(String personname) {
        this.personname = personname;
    }

    public void setDegree(String degree) {
        this.degree = degree;
    }

    public void setBirth(Date birth) {
        this.birth = birth;
    }

    public void setSal(Integer sal) {
        this.sal = sal;
    }

    public Integer getPersonid() {
        return personid;
    }

    public String getPersonname() {
        return personname;
    }

    public String getDegree() {
        return degree;
    }

    public Date getBirth() {
        return birth;
    }

    public Integer getSal() {
        return sal;
    }

    @Override
    public String toString() {
        return "Person{" +
                "personid=" + personid +
                ", personname='" + personname + '\'' +
                ", degree='" + degree + '\'' +
                ", birth=" + birth +
                ", sal=" + sal +
                '}';
    }
}
​

 

方法接口

package dao;


import vo.Person;

import java.util.List;

public interface PersonDao {
    public  void insert(Person person)throws Exception;
    public void update (Person person)throws Exception;
    public void delete(int[] ids)throws Exception;
    public List<Person> getAll()throws Exception;
    public List<Person> getPersonForPage(int pagesize,int pageNumber)throws Exception;
    public Person getPersonById(int id)throws Exception;
    public List<Person> getpersonByLikeWithLimit(String name,Integer startRow,Integer pageSize)throws  Exception;
}

 

实现类

package daoimpl;

import dao.PersonDao;
import util.DBtools;
import vo.Person;


import javax.swing.plaf.synth.SynthOptionPaneUI;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.sql.Date;

public class PersonDaoImpl implements PersonDao {
    @Override
    //插入一个人员
    public void insert(Person person) throws Exception {
        String src ="insert into p(personid,personname,degree,birth,sal)values ("+person.getPersonid()+",'"+person.getPersonname()+"','"+person.getDegree()+"',"+person.getBirth()+","+person.getSal()+")";
        Statement getsta = DBtools.getsta(DBtools.getconnection());
        getsta.executeUpdate(src);
        System.out.println("插入数据执行成功");
    }
    //修改一个人员
    @Override
    public void update(Person person) throws Exception {
        String src ="update  p set personname='"+person.getPersonname()+"' where personid="+person.getPersonid()+"";
        Statement sta =DBtools.getsta(DBtools.getconnection());
        sta.executeUpdate(src);
        System.out.println("修改人员执行成功");
    }
    //根据人员编号删除多个人员
    @Override
    public void delete(int[] ids) throws Exception {
        for(int i=0;i<ids.length;i++){
            String src ="delete  from p where personid="+ids[i]+"";
            Statement sta =DBtools.getsta(DBtools.getconnection());
            sta.executeUpdate(src);
            System.out.println("删除成功");
        }
    }
    //查询所有的人员,将查询的人员存储在List
    @Override
    public List<Person> getAll() throws Exception {

        List<Person> list =new ArrayList<>();
        String src = "select * from p";
        Statement statement =DBtools.getsta(DBtools.getconnection());
        ResultSet resultSet = statement.executeQuery(src);
        while(resultSet.next()){
            Person person =new Person();
            person.setPersonid(resultSet.getInt("personid"));
            person.setPersonname( resultSet.getString("personname"));
            person.setDegree(resultSet.getString("degree"));
            person.setBirth(resultSet.getDate("birth"));
            person.setSal(resultSet.getInt("sal"));
            list.add(person);
        }
        return list;
    }
    //查询某一页的人员
    @Override
    public List<Person> getPersonForPage(int pagesize, int pageNumber) throws Exception {
        List<Person> list =new ArrayList<>();
        int v =(pageNumber-1)*pagesize;
        String src ="select * from p limit "+v+","+pagesize+"";
        Statement sta =DBtools.getsta(DBtools.getconnection());
        ResultSet resultSet = sta.executeQuery(src);
        while(resultSet.next()){
            Person person=new Person();
            person.setPersonid(resultSet.getInt("personid"));
            person.setPersonname(resultSet.getString("personname"));
           person.setDegree(resultSet.getString("degree"));
           person.setBirth(resultSet.getDate("birth"));
            person.setSal(resultSet.getInt("sal"));
            list.add(person);
        }
        return list;
    }
    //根据人员编号,查询出此编号对应的人员
    @Override
    public Person getPersonById(int id) throws Exception {
        Person person =new Person();
        String str ="select * from p where personid="+id+"";
        Statement sta =DBtools.getsta(DBtools.getconnection());
        ResultSet resultSet = sta.executeQuery(str);
        while(resultSet.next()) {
            person.setPersonname(resultSet.getString("personname"));
            person.setDegree(resultSet.getString("degree"));
            person.setBirth(resultSet.getDate("birth"));
            person.setSal(resultSet.getInt("sal"));
        }
        return person;
    }
    //模糊查询带分页
    @Override
    public List<Person> getpersonByLikeWithLimit(String name, Integer startRow, Integer pageSize) throws Exception {
        List<Person> list =new ArrayList<>();
        String src ="select * from p where personname like '"+name+"%"+"' limit "+startRow+","+pageSize+"";
        Statement statement =DBtools.getsta(DBtools.getconnection());
        ResultSet resultSet = statement.executeQuery(src);
        while(resultSet.next()){
            Person person=new Person();
            person.setPersonid(resultSet.getInt("personid"));
            person.setPersonname(resultSet.getString("personname"));
            person.setDegree(resultSet.getString("degree"));
            person.setBirth(resultSet.getDate("birth"));
            person.setSal(resultSet.getInt("sal"));
            list.add(person);
        }
        return list;
    }
}

工具类

package util;

import java.sql.*;

public class DBtools {
    private static final String conn="jdbc:mysql://localhost:3306/java2008";
    private static final String user="root";
    private static final String password="999222";
    static{
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    public static Connection getconnection()throws Exception{
        Connection connection = DriverManager.getConnection(conn, user, password);
        return connection;
    }
    public static Statement getsta(Connection connection)throws Exception{
        Statement statement= connection.createStatement();
        return statement;
    }
    public void closeconn(Connection conn, Statement sta){
        if(conn!=null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }if(sta!=null) {
            try {
                sta.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

测试类

package Test;

import daoimpl.PersonDaoImpl;
import vo.Person;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.List;

public class Test1 {
    public static void main(String[] args) throws Exception{
        Person person =new Person();
        PersonDaoImpl d =new PersonDaoImpl();
       person.setPersonid(8);
        person.setPersonname("孙悟空");
        //DateFormat df =new SimpleDateFormat("yyyy-MM-dd");
       // String birthday =df.format("1920-20-15");
         person.setDegree("本科");
         person.setBirth(null);
        person.setSal(12);
       // d.insert(person);//插入成功
        //int [ ] a ={2,3};
        //d.delete(a);//删除成功
        //d.update(person);//修改成功
        //List<Person> list = d.getAll();//查询成功
        //for (Person person1:list) {
            //System.out.println(person1);
        //}
        //List<Person> list =d.getPersonForPage(3,2);//分页查询成功
        /*for (Person person2:list) {
            System.out.println(person2);
        }*/
      // Person person2= d.getPersonById(3);//按id查询成功
       //System.out.println(person2);

       List<Person> list2= d.getpersonByLikeWithLimit("孙",0,1);
        for (Person person4:list2
             ) {
            System.out.println( person4);
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

孤鹤儿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值