Java小白的数据库爱情(一)JDBC连接数据库

Java小白的数据库爱情(一)JDBC连接数据库

JDBC: java database connectivity java 与数据 库的连接

JAVA连接数据库 JDBC

直接连接

步骤:

1.加载驱动 (选择数据库) 驱动jar包是由数据库生产厂商提供 ,数据库的安装目录下寻找
2.建立连接 (与数据库建立连接)
3.封装sql
4.封装处理块(静态处理块,预处理块) (发送执行sql)
5.接口结果集并处理
6.关闭资源

1.加载驱动

Class.forName("oracle.jdbc.driver.OracleDriver")

2.建立连接 (与数据库建立连接)

Connection conn = DriverManager.getConnection
("jdbc:oracle:thin:@localhost:1521:XE","SCOTT","TIGER");

3.封装sql

 String sql = "select * from dept";

4.封装处理块(静态处理块,预处理块) (发送执行sql)

Statement state = conn.createStatement();

5.接口结果集并处理

ResultSet result = state.executeQuery(sql);

处理

while(result.next()){
            int deptno = result.getInt(1);
            String dname = result.getString(2);
            String loc = result.getString(3);
            System.out.println(deptno+"-->"+dname+"-->"+loc);

6.关闭资源

使用配置文件
public class JDBCDemo02 {
    public static void main(String[] args) {
        Properties pro = new Properties();
        //加载
        try {
            pro.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("db.properties"));
        } catch (IOException e) {
            e.printStackTrace();
        }
        //1.加载驱动
        try {
            Class.forName(pro.getProperty("driver"));
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        Connection conn = null;
        Statement state = null;
        ResultSet result = null;
        try {
            //2.获取连接   
            conn = DriverManager.getConnection(
                    pro.getProperty("url"),
                    pro.getProperty("username"),
                    pro.getProperty("password")
            );

            //3.准备sql  
            String sql = "select empno,ename,sal from emp where deptno = 30";
            //4.封装处理块  预处理块
            state = conn.createStatement();
            //5.发送并执行
            result = state.executeQuery(sql);

            //6.操作数据
            while(result.next(){
                System.out.println(result.getObject("empno"));
                System.out.println(result.getObject("ename"));
                System.out.println(result.getObject("sal"));
                System.out.println("--------------------------------------");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally{
            if(result!=null){
                try {
                    result.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(state!=null){
                try {
                    state.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(conn!=null){
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }

    }
}

driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:XE
username=SCOTT   //数据库用户
password=TIGER	//密码
处理块

静态处理块: sql语句有手动拼接,不安全,有可能出现sql注入情况
预处理块: 1.预先编译,提高效率 2.防止sql注入

Connection.createStatement()
//准备sql
String sql = "select password from t_user where username = ? and password = ?";
//3.封装处理块
state = conn.prepareStatement(sql);
//4.为?赋值
state.setString(1,name);//给第一个问号赋值
state.setObject(2,pwd);//给第二个问好赋值
接口结果集并处理
进行增删改操作时,返回以rows 行数操作成功   使用
state.executeUpdate();

​ 进行select语句的查询时,会返回以set 集合 使用

state.executeQuery();
手动提交事务
//设置手动提交事务
conn.setAutoCommit(false);
//提交
conn.commit();
//回滚
conn.rollback();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值