(1)jdbc连接数据库:首先要找到相应的数据库驱动,指定连接的数据库
加载驱动:Class.forName(驱动名);
获得连接:Connection con = DriverManager.getConnection("数据库连接","用户名","密码");
(2) 执行SQL语句:Statement && PreparedStatement
写法:Statement stmt = con.createStatement();
或PreparedStatement pstm = con.preparedStatement(sql);
1>执行查询:返回结果ResultSet集 stmt.executeQuery(sql语句);
2>执行增删改:返回影响行数 int count = stmt.executeUpdate(sql语句);
3>获得游标:rs.next();判断是否有下一个游标 返回一个boolean
4>获得结果类型:rs.get类型名(字段名)
操作完成,关闭顺序,后打开的先关闭。
(3)调用存储过程:CallableStatement csmt =con.prepareCall("{call p(?,?,?,?)}");
创建一个调用存储过程的对象,调用存储过程,存储过程名字叫p,他有4个参数
csmt.registerOutParament(3,Types.INTEGER);
csmt.registerOutParament(4,Types.INTEGER);//设置输出数,并设置类型
csmt.setInt(1,3);
csmt.setInt(2,5);
csmt.setInt(4,7);//设置参数的值
csmt.execute();//执行操作
csmt.getInt(3);
csmt.getInt(4);//获取存储过程的输出值
csmt.close();//关闭执行结果
(4)批处理Batch
Statement stmt = con.createStatement();
stmt.addBatch(SQL语句);
stmt.addBatch(SQL语句);
stmt.addBatch(SQL语句);
stmt.addBatch(SQL语句);
stmt.executeBatch();
或:
PreparedStatement pstm = null;
pstm = con.prepareStatement("insert into aa values(?,?,?)");
pstm.setInt(1, 12);
pstm.setString(2,"李五A");
pstm.setString(3, "中文A");
pstm.addBatch();
pstm.setInt(1, 22);
pstm.setString(2,"李五B");
pstm.setString(3, "中文B");
pstm.addBatch();
pstm.setInt(1, 32);
pstm.setString(2,"李五C");
pstm.setString(3, "中文C");
pstm.addBatch();
//批量执行上面3条语句.
int [] counts = statement.executeBatch();
//Commit it--写入数据库
connection.commit();