JDBC连接
1、首先是实例化驱动对象 com.mysql.jdbc.Driver类去实例化Driver对象
2、然后获取到我们的DriverMananger.getConnection()去获取数据的连接
(jdbc:mysql//ip:端口/数据库名)
getConncetion(“第一个参数”,“第二个参数”,“第三个参数”);
- 第一个参数:连接配置信息
- 第二个参数:数据库的用户名
- 第三个参数:数据库的密码
通过这三个参数就可以访问到数据库
加载数据库的驱动类
Class.forName(driver);//通过反射去动态加载类对象Driver
创建SQL或Mysql语句,拼接sql并且这个PreparedStatement去调用setxxx()方法传递参数
PreparedStatement stat = con.prepareStatement(sql);
stat.setString(第一个入参,入参的值);
stat.executeQuery();向数据库执行sql语句查询
最后将结果返回给ResultSet集合
ResultSet rs = stat.executeQuery();
创建PreparedStatement对象
PreparedStatement pstmt = null
try{
String sql = “Update Employess
SET age = ? where id =?”;
pstmt = conn.preparedstatement(sql);
pstmt.setString(1,“第一个入参”);//将值绑定到参数 }catch(SQLException e){
} finally{
}
?作为占位符,被称为参数标记。必须为每个参数提供值。
所有Statement对象与数据库交互的方法(a)execute(),(b)executeQuery()和©executeUpdate()也可以用于PreparedStatement对象,这些方法可以被修改为使用输入参数的SQL语句
关闭PreparedStatement对象
简单的调用close()方法将执行关闭,如先关闭Connection对象,它也会关闭PreparedStatement对象。但是,应该始终以显式关闭PreparedStatement对象,确保以正确的顺序清理资源。
stmt.close();
创建CallableStatement对象
1.使用Connection.prepareCall()方法来实例化一个callableSstatement对象。
CallableStatement cstmt = null;
try{
String sql = “{call
getEmpNmae(?,?)
}”
}catch(“SQLException e”){
}
;//java调用存储过程使用的语法:{
call 存储过程的名字(出入参)},那么这里面的出参的顺序和我们数据库里的存储过程出入参顺序保持一致。
cstmt = conn.prepareCall(SQL);//实例化CallableStatement对象
cstmt.setInt(1,入参);// clbstmt.registerOutParamenter(2,Type.varchar);
String totla = clbstmt.getString(2); }catch(SQLException e){ }
使用Callablestatement对象就像使用PreparedStatement对象一样,在执行语句之前,必须将值绑定到所有参数,否则将抛一个SQLException异常。
关闭CallableStatment对象
cstmt.close();
存储过程
create procedure proc_search_repitlte(IN page_index INT,IN page_size
INT,OUT total_count INT,OUT total_page INT)
// IN 输入参数,OUT输出返回结果,INT是输入和输出的数据类型
begin declare begin_no INT; set begin_no =
(page_index-1)*page_size;
分页查询
select * from reptile_info where id >= ( select if from reptile_info order by id asc limit begin_no,1 ) order by id asc limit page_size;计算数据总数
select count(1) into total_count from reptile_inf0;
计算总页数
set total_page = floor((total_count + pagesize -1)/page_size); end;