欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

利用JDBC在java中实现数据库连接查询等操作

程序员文章站 2022-06-18 12:52:18
利用JDBC在java中实现数据库连接查询等操作在数据库软件中建立数据库:#建立数据库CREATE DATABASE TEST1;#建立表CREATE TABLE IF EXISTS dept;$建立表名CREATE TABLE dept (depno int(11) NOT NULL,dname varchar(20) DEFAULT NULL,loc varchar(30) DEFAULT NULL,PRIMARY KEY (depno)) ENGINE=InnoDB DEFAU...

利用JDBC在java中实现数据库连接查询等操作

在数据库软件中建立数据库:
#建立数据库
CREATE DATABASE TEST1;
#建立表
CREATE TABLE IF EXISTS dept;
#建立表名
CREATE TABLE dept (
depno int(11) NOT NULL,
dname varchar(20) DEFAULT NULL,
locvarchar(30) DEFAULT NULL,
PRIMARY KEY (depno)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
#输入数据
insert into dept values (10,‘后勤’,‘房间10’),(20,‘运营’,‘房间20’),(30,‘销售’,‘房间30’);
#查询数据
SELECT *FROM dept;
利用JDBC在java中实现数据库连接查询等操作

Java实现数据库连接:
使用idea软件导入jar包的方法可以参考这位博主的文章IDEA导入jar包的方法

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

public class DBHelper {
//    Mysql5.5及以上版本需要在数据库名称test1后面添加?charart---等解释,5.5以下的版本则不用
    public static final String URL="JDBC:mysql://localhost:3306/test1?characterEncoding=utf8&useSSL=false&serverTimezone=UTC";
//    数据库账号
    public static final String USERNAME="root";
//    账号密码
    public static final String PSW="123456";
    public static Connection Conn;

    public static Connection getConn(){
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            try {
                Conn = DriverManager.getConnection(URL,USERNAME,PSW);
            } catch (SQLException e) {
                e.printStackTrace();
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        return Conn;
    }
//    关闭数据库
    public static void closeconn(Connection conn){
        if (Conn!=null){
            try {
                Conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
//若不为空则代表连接成功
    public static void main(String[] args) {
        System.out.println(DBHelper.getConn());
    }
}

输出结果:
利用JDBC在java中实现数据库连接查询等操作
建立查询所有信息和查询某个部门信息的接口:

public interface UserInfoDao {
//    查询所有信息
    public List<UserInfo> findAllUser();
//    查询某个部门信息
    public UserInfo findUserById(int id);

}

建立数据信息类:

public class UserInfo  {
    private int depno;
    private String dname;
    private String loc;

    public int getDepno() {
        return depno;
    }

    public void setDepno(int depno) {
        this.depno = depno;
    }

    public String getDname() {
        return dname;
    }

    public void setDname(String dname) {
        this.dname = dname;
    }

    public String getLoc() {
        return loc;
    }

    public void setLoc(String loc) {
        this.loc = loc;
    }
    public UserInfo(int depno, String dname, String loc) {
        super();
        this.depno = depno;
        this.dname = dname;
        this.loc = loc;
    }

    public UserInfo() {
        super();
    }

}

实现接口的类:


import cn.zc.Dao.UserInfoDao;
import cn.zc.entity.UserInfo;
import cn.zc.util.DBHelper;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
//查询所有部门信息
public class UserInfoDaoImpl implements UserInfoDao {
    @Override
    public List<UserInfo> findAllUser() {
        List<UserInfo> lists = new ArrayList<UserInfo>();
//        获取数据库连接对象
        Connection conn = DBHelper.getConn();
//        书写SQL语句操作数据库
        String sql = "select *from dept";
//        预编译sql语句
        try {
            PreparedStatement ps = conn.prepareStatement(sql);
//            查询
            ResultSet rs = ps.executeQuery();
//            循环输出
            while (rs.next()) {//有数据则返回ture
                UserInfo ui = new UserInfo();
                ui.setDepno(rs.getInt(1));
                ui.setDname(rs.getString(2));
                ui.setLoc(rs.getString(3));
                lists.add(ui);

            }

        } catch (SQLException e) {
            e.printStackTrace();
        }
        return lists;
    }
//查询某个部门的类
    @Override
    public UserInfo findUserById(int no) {
//        获取数据库连接对象
            UserInfo ui = null;
            Connection conn = DBHelper.getConn();
//        书写SQL语句操作数据库
            String sql = "select *from dept where depno=?";
//        预编译sql语句
            try {
                PreparedStatement ps = conn.prepareStatement(sql);
//                赋值
                ps.setInt(1,no);
//            查询
                ResultSet rs = ps.executeQuery();
//            循环输出
                while (rs.next()) {//有数据则返回ture
                    ui = new UserInfo();
                    ui.setDepno(rs.getInt(1));
                    ui.setDname(rs.getString(2));
                    ui.setLoc(rs.getString(3));
                }

            } catch (SQLException e) {
                e.printStackTrace();
            }
            return ui;
        }
    }

具体实现类:

import cn.zc.Dao.UserInfoDao;
import cn.zc.Impl.UserInfoDaoImpl;
import cn.zc.entity.UserInfo;

import java.util.List;

public class Test {
    public static void main(String[] args) {
    //查询输出所有信息
        UserInfoDao depno = new UserInfoDaoImpl();
        List<UserInfo> list = depno.findAllUser();
        for (UserInfo u : list) {
            System.out.println(u.getDepno()+"\t"+u.getDname()+"\t"+u.getLoc());
        }
//查询部门号为20的数据
        UserInfo ui = depno.findUserById(20);
        if (ui!=null){
            System.out.println("找到部门信息");
            System.out.println(ui.getDepno()+"\t"+ui.getDname()+"\t"+ui.getLoc());
        }else{
            System.out.println("没有这个部门");
        }
    }
}

本文地址:https://blog.csdn.net/CSDN9825/article/details/110673771