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

目 录CONTENT

文章目录

JDBC

Dettan
2021-04-10 / 0 评论 / 0 点赞 / 178 阅读 / 611 字
温馨提示:
本文最后更新于 2022-07-23,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
/ 后端 / 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();

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("yyyy-mm-dd").parse("1234-12-21");

        statement = c.prepareStatement("insert into stu_score(dateTime) values(?)");
        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("count = " + count);

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

        statement.close();
        c.close();
0

评论区