JDBC连接数据库(二)

JDBC连接数据库

JDBC一般指Java数据库连接。Java数据库连接,(Java Database Connectivity,简称JDBC)

连接数据库操作

创建maven项目,并添加jdbc依赖库,修改pom.xml文件
<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.22</version>
        </dependency>
JDBC连接代码
import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class cityDAO {
    private Connection con;
    private PreparedStatement pstm;
    private ResultSet rs;
    private String sql;
     //数据库连接功能
   
    private void init(String sql,Object...objs) throws SQLException, ClassNotFoundException {
      /**
     *注意:根据数据库的版本不同,语句是不同的,例如mysql5.6版本的 Class.forName("com.mysql.jdbc.Driver");
     而mysql8版本就是 Class.forName("com.mysql.cj.jdbc.Driver");
     */
        Class.forName("com.mysql.cj.jdbc.Driver");
        //根据每个人连接的数据库不同,我在括号中标注出需要改的两处地方
        con= DriverManager.getConnection("jdbc:mysql:/**/192.168.1.xx**(你要连接的数据库所在机器的ip):3306/**mydb**(数据库的名)?     useSSL=false&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT","root","123456");
        pstm=con.prepareStatement(sql);
        if(objs!=null){
            for (int i = 0; i <objs.length ; i++) {
                pstm.setObject(i+1,objs[i]);
            }
        }
    }
//数据库关闭功能
    private void mclose(){
        try {
            if(rs!=null){rs.close();}
            if(pstm!=null){pstm.close();}
            if(con!=null){con.close();}
        } catch ( SQLException e) {
            e.printStackTrace();
        }
    }
    //写的一个查找功能
    public List<Pro> findProv(){
        sql="select * from tprov";
        List<Pro> pli= null;
        try {
            init(sql);
            rs=pstm.executeQuery();
            pli = new ArrayList<> ();
            while (rs.next()){
                Pro pv=new Pro();
                pv.setPid(rs.getInt(1));
                pv.setPname(rs.getString(2));
                pli.add(pv);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } finally {
            mclose();
        }
        return pli;
    }
    //插入功能
    public int savecity (City city){
        sql="insert into tcity values(null,?,?) ";
        int res=0;
        try {
            init(sql,city.getCname(),city.getPro().getPid());
            res=pstm.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } finally {
            mclose();
        }

        return res;
    }
    //查找功能
    public Pro findByID(int pid){
        sql="select * from tprov where pid=?";
        Pro pv=null;
        try {
            init(sql,pid);
            rs=pstm.executeQuery();
            if(rs.next()){
                pv=new Pro();
                pv.setPid(rs.getInt(1));
                pv.setPname(rs.getString(2));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } finally {
            mclose();
        }
        return pv;
    }
   
}
















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值