您当前的位置: 首页 >  Java

彭世瑜

暂无认证

  • 0浏览

    0关注

    2791博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Java学习路线-43:JDBC数据库开发入门

彭世瑜 发布时间:2020-02-09 16:57:03 ,浏览量:0

5-JDBC数据库开发入门 课时1-2 1.什么是JDBC

JDBC 数据库访问规范

应用程序  JDBC  MySQL驱动  MySQL
                  Oracle驱动  Oracle

导入jar包 加载驱动 Class.forName(‘类名’) 给出url、username、password 使用DriverManager类得到Connection类

maven导入依赖


    
        mysql
        mysql-connector-java
        8.0.18
    

连接示例

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

class Demo {

    // MySQL >= 8.0 配置参数
    private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
    private static final String DB_URL = "jdbc:mysql://localhost:3306/data";
    private static final String USER = "root";
    private static final String PASSWORD = "123456";


    public static void main(String[] args) throws Exception {
        // 注册 JDBC 驱动
        Class.forName(JDBC_DRIVER);

        // 等效于
        // com.mysql.cj.jdbc.Driver driver = new com.mysql.cj.jdbc.Driver();
        // DriverManager.registerDriver(driver);

        // 打开链接
        Connection conn = DriverManager.getConnection(DB_URL, USER, PASSWORD);
        
        // 关闭链接
        conn.close();

    }

}

所有的java.sql.Driver实现类,都提供了static代码块, 块内代码把自己注册到DriverManager中

jdbc4.0之后 每个驱动jar包中,在META-INF/services目录下提供了一个java.sql.Driver文件 内容就是该接口的实现类名称

课时3 3.JDBC完成增、删、改、查

1、增、删、改

// 发送DML, DDL
int Statement.executeUpdate(String sql);

代码示例

// 注册 JDBC 驱动
Class.forName(JDBC_DRIVER);

// 打开链接
Connection conn = DriverManager.getConnection(DB_URL, USER, PASSWORD);
Statement statement = conn.createStatement();

// 增删改
// String sql = "insert into student(sname) values('陆小凤')";
// String sql = "update student set sname='花无缺' where sid=4";
String sql = "delete from student where sid=4";

int ret = statement.executeUpdate(sql);
System.out.println(ret);

// 关闭链接
conn.close();

2、查询

ResultSet executeQuery(String querySql);
boolean ResultSet.next();

// 获取列数据
ResultSet.getString()
ResultSet.getObject()
ResultSet.getInt()
ResultSet.getDouble()

行光标

beforeFirst  java.sql.Data Time -> java.sql.Time Timestamp -> java.sql.Timestamp

领域对象中所有属性不能出现java.sql包内容 继承关系

java.util.Date
    -java.sql.Date

父类转子类:util.Data -> sql.Date、Time、Timestamp

java.util.Date UtilDate = new java.util.Date();
long longDate = UtilDate.getTime();
java.sql.Date sqlData = new java.sql.Date(longDate);

子类转父类:sql.Date、Time、Timestamp -> util.Data

java.util.Date UtilDate = new java.sql.Date(System.currentTimeMillis());
课时14 14.大数据

可以将文件存入MySQL my.ini配置 max_allowed_packet=10485760

课时15 15.批处理

批处理只针对更新(增,删,改) 一次向服务器发送多条sql语句 开启批处理参数 rewriteBatchedStatements=true

dbconfig.properties

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/data?rewriteBatchedStatements=true
username=root
password=123456
import util.JdbcUtils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

class Demo {
    public static void main(String[] args) throws SQLException {
        Connection conn = JdbcUtils.getConnection();
        String sql = "insert into user(username)values(?)";
        PreparedStatement statement = conn.prepareStatement(sql);

        for(int i=0; i            
关注
打赏
1665367115
查看更多评论
0.1604s