后端连接数据库

1.数据库的连接

1.1. 创造一个数据库连接对象(Connection对象,代表与数据源进行的唯一会话)。
1.2. 创建编译语句对象(Statement对象,建立了到特定数据库的连接之后,就可用该连接发送 SQL 语      					句)。
1.3. 创建预编译语句对象(PreparedStatement对象, 实例包含已编译的 SQL 语句。这就是使语句“准备好”)。
1.4. 创建结果集对象(ResultSet对象, 结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等.)
// 创建一个数据库连接
   Connection connection = null;
// 创建编译语句对象
    Statement stat =null;
// 创建预编译语句对象
    PreparedStatement pstat = null;
// 创建结果集对象
    ResultSet rs1 = null;
    int rs2 ;
1.5. driverName,这个是你驱动的名称。
1.6. URL,你数据库的地址,比如我jdbc:oracle:thin:@localhost:1521:stulibrary中,localhost表示在本机,1521表示数据库的端口号,stulibrary表示数据库的名称。
1.7. userName,表示你的数据库登录名。
1.8. pwd,表示登录名的登录密码
//驱动名称
     private static final String driverName="oracle.jdbc.driver.OracleDriver";
//数据库的地址(通过端口和SID找到对应的数据库)
     private static final String URL="jdbc:oracle:thin:@localhost:1521:stulibrary";
//数据库登录用户名
     private static final String userName="admin"; 
//数据库登录密码
    private static final String pwd="123456";

2. 具体的连接类

  public Connection getConnection(){
          try {
               //加载oracle驱动
               Class.forName(driverName);
               //通过驱动获取数据库的连接
               connection = DriverManager.getConnection(URL,userName,pwd);
               System.out.println("连接成功");
               } catch (Exception e) {
               // TODO Auto-generated catch block
                e.printStackTrace();
               }
               return connection;
            }

3.更新

executeUpdate(sql)可以用来插入,删除和更新值。
其他操作与查询相同
public int update(String sql){
        try {
            connection = getConnection();
            stat = connection.createStatement();
            rs2 = stat.executeUpdate(sql);  
        } 
        catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return rs2;
    }

4.替换

替换类中需要sql语句和一个字符串。
prepareStatement时sql语句可以这样写
UPDATE COFFEES SET SALES = ? WHERE COF_NAME LIKE ?
用问号代替所需要填入的值,然后通过pstat.setString方法再把值赋给它,具体实现是pstat.setString(?的位置),需要替换的字符串值)。
ps:需要注意的是?的位置从第一个开始,不是第0个,比如上条语句需要给第一个?赋值1时就需要这样写pstat.setString(1,“1”);
public void update(String sql, String[] args){
        try {
            connection = getConnection();
            pstat = connection.prepareStatement(sql);
            System.out.println(sql);
            System.out.println(args.length);
            for (int i = 0; i < args.length; i++) {
                pstat.setString(i+1, args[i]);
                System.out.println(pstat);
            }

            pstat.executeUpdate();
            connection.commit();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

5.删除

值得注意的是,这里就是我刚才所讲的,返回的受影响的行数,所以这里人返回的是int类型的rs2。在之后的编写中可以通过这个rs2判断是否删除成功。


public int delete(String sql){
            try {
                connection = getConnection();
                stat = connection.createStatement();
                rs2 = stat.executeUpdate(sql);
                return rs2;
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return 0;
        }

6.关闭数据库连接,释放资源

值得注意的是,这里就是我刚才所讲的,返回的受影响的行数,所以这里人返回的是int类型的rs2。在之后的编写中可以通过这个rs2判断是否删除成功。


public void close(){

        try {
            if(rs1!=null) {
                rs1.close();
            }
            if(stat!=null) {
                rs1.close();
            }
            if(pstat!=null) {
                rs1.close();
            }
            if(connection!=null) {
                rs1.close();
            }

        } catch (SQLException e) {
            // TODO: handle exception
        }
    }
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值