Statement:
用于执行SQL语句的对象
通过Connection的createStatement()方法得到一个Statement对象
只有在获得了Statement对象之后才能执行SQL对象
Statement常用的方法:
->ResultSet executeQuery() throws SQLException:用于执行查询语句,并返回查询结果对应的ResultSet,该方法只能用于执行查询语句。
->int executeUpdate(String sql) throws SQLException:用于执行DML语句,返回首影响的行数。
->Boolean execute(String sql) throws SQLException:可以执行任何SQL语句。
在执行结束之后必须要关闭Statement对象
executeUpdate:可以执行的SQL语句,可以是insert,update,delete,不可以是select。
执行SQL一般使用executeUpdate,execute使用的次数相对比较少
现在代码跑起来:
主要用于获取数据库的连接方法:
public Connection getConnection() throws Exception{ Properties properties = new Properties(); InputStream in = getClass().getClassLoader().getResourceAsStream("jdbc.properties"); properties.load(in); String user = properties.getProperty("user"); String password = properties.getProperty("password"); String jdbcUrl = properties.getProperty("jdbcUrl"); String driver = properties.getProperty("driver"); Class.forName(driver); Connection connection = DriverManager.getConnection(jdbcUrl, user, password); System.out.println(connection); return connection; }
执行executeUpdate(sql)方法
@Test public void InsertStatementTestJdbc() throws Exception{ //1.获取数据库的连接 Connection conn = getConnection(); //2.准备的sql语句 String sql = "insert into student(sname,sclass)" + "values('MrChengs','1111')"//3.执行插入操作 //4.获取操作SQL语句的Statement对象 //调用Connection的createStatement()方法来获取 Statement statement = (Statement) conn.createStatement(); //5.调用Statement对象的executeUpdate(sql)执行SQL语句的插入 statement.executeUpdate(sql); //6.关闭Statement对象 statement.close(); //7.关闭连接 conn.close(); }
会发现这个程序有点问题,关闭是不是应该放在finally?
此时程序会更加完美一点
@Test public void StatementTestInSert() throws Exception{ Connection conn = null; Statement statement = null; try { conn = null; conn = getConnection(); String sql = "insert into student(sname,sclass)" + "values('MrChengs','1111');"; statement = null; statement = (Statement) conn.createStatement(); statement.executeUpdate(sql); } catch (Exception e) { e.printStackTrace(); }finally { try { if(statement !=null){ statement.close(); } } catch (Exception e) { e.printStackTrace(); }finally { if(conn != null){ conn.close(); } } } }
一般使用到的insert/delete/update
使用这个方法,我们一般要进行拼串
在拼串的时候,我们需要注意拼串的一些规范
防止在拼串的时候出错
//插入//String sql = "insert into student(sname,sclass)" + "values('MrChengs','1111')";//删除//String sql = "DELETE From student where id=1";//修改String sql = "update student set sname = 'MrChengs' where id = 3";statement = null;
简单的说一下:
execute()方法几乎可以执行所有的SQL语句,但是执行SQL语句时比较麻烦
所以一般不使用该方法。
这里基本上讲完了。