阿里Java学习路线:阶段 2:数据库开发-JDBC数据库开发入门:课时3:JDBC完成增、删、改、查

.\day17\day17_res\dbconfig.properties

#mysql
#url=jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf8&useServerPrepStmts=true&cachePrepStmts=true&prepStmtCacheSize=50&prepStmtCacheSqlLimit=300
#driverClassName=com.mysql.jdbc.Driver

#mssql
#driverClassName=com.microsoft.jdbc.sqlserver.SQLServerDriver
#url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=mydb

#mssql jtds //(2005-2008的数据库)
#driverClassName=net.sourceforge.jtds.jdbc.Driver
#url=jdbc:jtds:sqlserver://127.0.0.1:1433;DatabaseName=mydb

#orcale
#driverClassName=oracle.jdbc.driver.OracleDriver
#url=jdbc:oracle:thin:@localhost:1521:mydb

#access
#driverClassName=sun.jdbc.odbc.JdbcOdbcDriver
#url=jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=mdb\\mydb.mdb  // 文件路径

在这里插入图片描述
在这里插入图片描述

练习表:
CREATE TABLE stu_jdbc(
number CHAR(11),
name VARCHAR(50),
age int(11),
gender VARCHAR(10)
);

SELECT * FROM stu_jdbc;

desc stu_jdbc;

INSERT INTO stu_jdbc VALUES('itcst_0001','zhangSan',28,'male');
INSERT INTO stu_jdbc VALUES('itcst_0002','liSi',82,'female');

package cn.itcast.demo2;

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

import org.junit.Test;

public class Demo2 {
	/*
	 * 连接数据库,得到Connection就算成功
	 * 对数据库做增、删、改
	 */
	@Test
	public void fun1() throws ClassNotFoundException,SQLException {
		/*
		 * 一、得到Connection
		 * 1.准备四大参数
		 * 2.加载驱动类
		 * 3.得到Connection
		 */
		// 准备四大参数
		String driverClassName = "com.mysql.jdbc.Driver";
		// jdbc协议的格式:jdbc:厂商的名称:子协议(由厂商自己来规定)
		//对mysql而言,它的子协议结构://主机:端口号/数据库名称
		String url = "jdbc:mysql://localhost:3306/mydb1?characterEncoding=utf8&useSSL=true";
		String username = "root";
		String password = "1234";
		
		// 加载驱动类
		Class.forName(driverClassName);
		// 使用DriverManager,以及剩下的3个参数,得到Connection
		Connection con = DriverManager.getConnection(url,username,password);
		
        /*
         * 二、怼数据库的增、删、改
         * 1、通过Connection对象创建Statement
         * > Statement语句的发送器,它的功能就是向数据库发送sql语句
         * 2、调用他的int exexuteUpdate(String sql) 他可以发送DML、DDL
         */
        //1.通过Connection 得到Statement对象
        Statement stmt = con.createStatement();
        //2.使用statement发送sql语句
        String sql = "INSERT INTO stu_jdbc VALUES('ITCAST_0003','wangWu',88,'male')";
//        String sql = "UPDATE stu_jdbc SET name='zhaoLiu',age=22,gender='female' WHERE number='ITCAST_0003'";
//        String sql = "DELETE FROM stu_jdbc WHERE number='ITCAST_0003'";
        int r = stmt.executeUpdate(sql);
        System.out.println(r);
//        stmt.close();
//        con.close();
	}
    /**
     * 执行查询
     */
    @Test
    public void fun2() throws ClassNotFoundException,SQLException {
        /*
         * 一、得到Connection
         * 二、得到Statement,发送select语句
         * 三、对查询返回的表格进行解析
         * 四、关闭资源
         */
        /*
         * 一、得到连接
         * 1、准备四大连接参数
         */
		String driverClassName = "com.mysql.jdbc.Driver";
		String url = "jdbc:mysql://localhost:3306/mydb1?characterEncoding=utf8&useSSL=true";
		String username = "root";
		String password = "1234";
        /*
         * 2、加载驱动类
         */
        Class.forName(driverClassName);
        /*
         * 3、通过剩下的3个参数调用DrierManger的getConnection得到连接
         */
        Connection con = DriverManager.getConnection(url,username,password);
        /*
         * 二、获取Statement,执行select语句
         * 1.得到Statement对象:Connection的createStatement())方法
         */
        Statement stmt = con.createStatement();
        /*
         * 2.调用Statement的ResultSet rs = executeQuery(String querySql)
         */
        ResultSet rs = stmt.executeQuery("select * from emp");
        //System.out.println(rs); //结果无意义:com.mysql.jdbc.JDBC42ResultSet@43738a82
        /*
         * 三、解析ResultSet
         * 1.把行光标移动到第一行,可以调用next()方法完成
         */
        while(rs.next()){ // 把光标向下移动一行,并判断下一行是否存在
            int empno = rs.getInt(1);//通过列编号获取值
            String ename = rs.getString("ename");//通过列名称来获取该列的值
            double sal = rs.getDouble("sal");
            System.out.println(empno + ", " + ename  + ", " + sal);
        }
        /*
         * 四、关闭资源
         * 倒关
         */
        rs.close();
        stmt.close();
        con.close();//必须关闭(练习时跑完就结束了,但是真实环境一般项目在一直运行会占用资源,可能引起服务器崩溃)
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值