侧边栏壁纸
  • 累计撰写 781 篇文章
  • 累计创建 1 个标签
  • 累计收到 1 条评论
标签搜索

JDBC

Dettan
2021-04-10 / 0 评论 / 0 点赞 / 107 阅读 / 2,762 字
温馨提示:
本文最后更新于 2022-04-30,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
/ 后端 / JAVA / JDBC

步骤
加载驱动
创建连接
获取statement
执行代码
得到结果

注意:user 和 password

这个java.sql 是java的公司发布的一个接口,各数据库厂商按接口写的功能。所以java里操作不同的数据库用的代码一样
这里用的是执行静态的sql语句的,
//注册驱动
        //不能用DriverManager.registerDriver(new com.mysql.jdbc.Driver());  //由于参数里创建新对象的时候Driver类里有静态代码在类加载是自动执行进行注册驱动,所以这一句会注册两个驱动,多以不用这句
        Class.forName("com.mysql.jdbc.Driver"); 
//这一句是要加载这个类,返回值不知道咋用。
//method 1
//        Connection connection = DriverManager.getConnection("JDBC:Mysql://localhost:3306/ljj","root","root");
//method 2
//        Connection connection = DriverManager.getConnection("JDBC:Mysql://localhost:3306/ljj?user=root&password=root");
//method 3
        Properties pro = new Properties();
//method 3.1
//        pro.setProperty("user","root");
//        pro.setProperty("password","root");
//method 3.2
        pro.load(new FileInputStream("./com/yh/db.properties"));
    Connection connection = DriverMa

nager.getConnection("JDBC:Mysql://localhost:3306/word", pro);

    Statement statement = connection.createStatement();
    ResultSet result = statement.executeQuery("select * from english_words where word = 'aaaaa' limit 4;"); //增用这个方法,删改查用executeUpdate() 返回值是int。

    while (result.next()) {
        System.out.println(result.getString(2) + "\t" + result.getString(3)); //string可以用getInt取,只要内容是数字
    }

    statement.close();
    result.close();
    connection.close();</code></pre></div>            <div style="width: 100%; max-width: 996px; margin-top: 2px;">
            <div style="color: inherit; fill: inherit;">
                <div style="display: flex;">

db.properties文件内容
user=root
password=root


这里用的是connection.prepareStatement 这是一次编译,动态组合,编译时把变的地方留空,用时在填。可以防止sql注入攻击,多次调用提高性能
日期处理:sql包里有一个Date类,用于传入时间。
				Connection c = DriverManager.getConnection(url);
        PreparedStatement statement = c.prepareStatement("insert into stu_score(date) values(?)");
        statement.setString(1, "1994-12-1");
        int count = statement.executeUpdate();
        System.out.println("count = " + count);
    java.util.Date date = new SimpleDateFormat(&quot;yyyy-mm-dd&quot;).parse(&quot;1234-12-21&quot;);

    statement = c.prepareStatement(&quot;insert into stu_score(dateTime) values(?)&quot;);
    statement.setDate(1, new java.sql.Date(date.getTime()));	// 只会存入date 即 yyy-MM-dd 没有时间
    statement.setTime(1, new java.sql.Time(date.getTime()));	// 只会存入time 即 hh:mm:ss  没有日期
    statement.setTimestamp(1, new java.sql.Timestamp(date.getTime()));  //存入日期和时间,yyy-MM-dd hh:mm:ss
    count = statement.executeUpdate();
    System.out.println(&quot;count = &quot; + count);

    statement = c.prepareStatement(&quot;insert into stu_score(time) values(?)&quot;);
    statement.setString(1, &quot;1:21:21&quot;);
    count = statement.executeUpdate();
    System.out.println(&quot;count = &quot; + count);

    statement.close();
    c.close();</code></pre></div></div>
0

评论区