package cn.mujin; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import org.junit.Test; public class demo_1 { @Test //execute 原始,增删改查都可以,当返回值为true时,有查询结果集。当返回值为false时,没有查询结果集。 //executeBatch 批量执行 //executeUpdate 执行增删改 //executeQuery 执行查询 public void fun1() throws Exception{ //1、导入驱动类库 //2、注册驱动 //DriverManager.registerDriver(new com.mysql.jdbc.Driver()); Class.forName("com.mysql.jdbc.Driver"); //3、建立连接 Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/JDBC","root","123456"); //4、操作数据库 Statement st=conn.createStatement(); String sql="INSERT INTO `t_user` (`id`, `name`, `age`)VALUES (NULL, 'jerry', '18')"; st.execute(sql); //5、关闭资源 st.close(); conn.close(); } @Test public void fun2() throws Exception{ //1、导入驱动类库 //2、注册驱动 //DriverManager.registerDriver(new com.mysql.jdbc.Driver()); Class.forName("com.mysql.jdbc.Driver"); //3、建立连接 Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/JDBC","root","123456"); //4、操作数据库 Statement st=conn.createStatement(); String sql="INSERT INTO `t_user` (`id`, `name`, `age`)VALUES (NULL, 'jerry', '18')"; int row=st.executeUpdate(sql); //返回影响的行数 //5、关闭资源 st.close(); conn.close(); } public void fun3() throws Exception{ //1、导入驱动类库 //2、注册驱动 //DriverManager.registerDriver(new com.mysql.jdbc.Driver()); Class.forName("com.mysql.jdbc.Driver"); //3、建立连接 Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/JDBC","root","123456"); //4、操作数据库 Statement st=conn.createStatement(); String sql="SELECT * FROM t_user"; ResultSet rs=st.executeQuery(sql); //遍历rs System.out.println(rs); //5、关闭资源 st.close(); conn.close(); } }
该对象可以理解为一个 向数据库运送sql语句的 "小车";
方法:
void addBatch(String sql) 向车上添加语句. (用于批量执行sql语句); insert update delete
int[] executeBatch() 将车上的语句 运送给数据库执行. 返回值存放每个语句执行后影响的行数. 因为是多个语句,所以用数组装.
void clearBatch() 清除车上的语句.
----以上3个方法是批量执行sql相关的(下午最后一节课演示)----------------------
boolean execute(String sql) 执行一个sql语句. 如果该语句返回结果集 返回值为true(select). 如果该语句不返回结果集 返回false(insert update delete);
ResultSet executeQuery(String sql) 执行一个有结果集的查询. 会将结果集包装到resultset对象中.(select)
int executeUpdate(String sql) 执行一个没有结果集的语句. 会将语句影响的行数返回.(insert update delete)
结论:
执行查询语句时使用: executeQuery方法
执行增删改等语句时使用: executeUpdate方法
特别注意:
1、 Class.forName("com.mysql.jdbc.Driver"); 要注意这里不是Driver();
2、 在写sql语句时要特别注意:空格问题,严格按照格式来书写。