步骤
加载驱动
创建连接
获取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();
评论区