1、JDBC实现数据库访问的步骤[都使用本机]
首先各种定义
· private User user;//实体
· private Connection conn=null;
· /**连接数据库的URL*/
· private final String url="";
· /**指定数据的用户名和密码*/
· private final String username="";
· private final String password="";
· /**定义一个结果集 用于放回查询结果*/
· private ResultSet resultSet=null;
· private Statement stmt=null;/PreparedStatement psm=null; [仅用mysql举两例]
a) 注册驱动,获取连接 //ckx为数据库名[习惯]
i. Class.forName(driver);
1. Oracle: driver=oracle.jdbc.driver.OracleDriver
2. sqlServer: driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
3. Mysql: driver=com.mysql.jdbc.Driver
ii. conn=DriverManager.getConnection(url,name,pwd);
1. Oracle: url=jdbc:oracle:thin:@localhost:1521:ckx
2. Sqlserver: url=jdbc:sqlserver://localhost:1433;DatabaseName=ckx
3. Mysql: url=jdbc:mysql://localhost:3306/ckx
b)通过获得的Connection对象生成Statement对象
1. Oracle: stmt=conn.createStatement();
2. sqlServer: stmt=conn.createStatement();
3. Mysql: stmt=conn.createStatement();/psm=conn.prepareStatement(sql);
c)使用Statemet对象对数据进行增删改查的操作执行数据库语句:Statement提供了executeQuery、executeUpdate和execute三个方法,分别用于查询语句、插入删除修 改语句和通用语句(既可查询又可增删改)
1. Oracle: resultSet=statement.excuteQuery(sql);
2. sqlServer: resultSet=statement.excuteQuery(sql);
3. Mysql: resultSet=statement.excuteQuery(sql);/statement.excuteQuery();
取值[User案例]
While(resultSet.next()){
user=new User();
user.setId(ResultSet.getInt(1));
//省略其他赋值方法
}
d)关闭Statement对象和conn对象,其中需要对SQLException进行捕获和处理
提一点:存储过程CallableStatement csm=conn.prepareCall("{call validate(?,?)}");其中,validate是储存过程名。
总结:其实都是一样的,只是数据库驱动和url不同