首先要有oracle的java驱动,已经上传到我的资源,免积分下载.
驱动包不要下解压,复制到webroot的lib目录,这时在webapplibraries下会自动生成对应的驱动库
接下来就是jdbc连接的五个步骤,其他数据库都是大同小异,根据驱动不同改变参数地址就可以了。
1.加载驱动
2.建立连接
3.创建命令对象,执行命令
4.返回执行结果
5.关闭资源
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcTest {
public static void main(String[] args) {
//1.加载数据库驱动
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
//创建数据库连接
Connection conn =null ;
Statement stmt=null;
ResultSet rs=null;
try {
conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.2:1521:orcl",
"jereh_edu", "123456");
//参数一连接地址;参数二,用户名参数三,密码。
//创建命令对象statement 并执行sql命令
stmt =conn.createStatement();
rs =stmt.executeQuery("select *from emp e where e.empno=7499 ");
while (rs.next()){
System.out.println(rs.getRow());
String eno=rs.getString("empno");
String ename =rs.getString("ename");
System.out.println(eno+"姓名"+ename);
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
try {
if(rs!=null){
rs.close();
}
if(stmt!=null){
stmt.close();
}
if (conn!=null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
用statement的效率并不高,因为每次执行这些语句时每次对sql语句进行编译,我们可以应用prepareStatement类提高效率,这个类会对SQL语句进行预编译,省去每次编译的时间
public int addFirstLevelbypapare(FirstLevel fl){
int count =0;
String sql ="INSERT INTO YUPQ_NEWS(ID,TITLE,CREATOR,CREATEDATE) VALUES(?,?,?,TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'))";
//???号是占位符,函数第一次调用时会被编译,再次调用时只把参数代替?直接执行,
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Connection conn =null;
try {
conn=DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.2:1521:orcl","jereh_edu", "123456");
PreparedStatement pstatm= conn.prepareStatement(sql);
//生成PreparedStatement对象
pstatm.setString(1, fl.getId());//把第一个?替换为 fl.getId()的返回值
pstatm.setString(2, fl.getTitle());//把第2个?替换为 fl.getTitle()的返回值
pstatm.setString(3, fl.getCreator());//
pstatm.setString(4 , fl.getCreateDate());//
count= pstatm.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return count;
}
这个地方只是演示 要记住的最后要释放资源向上一个一样关闭连接等,,