JDBC总结

                                             JDBC总结

一、使用连接数据库:

 

(1)连接数据库需要的信息

          1、驱动信息 driver

                    确定你要连接哪一种数据库

                    例:在oracle.jar中:

        Driver----> oracle.jdbc.driver.OracleDriver

                    java应用层面的驱动:

                    其实本身就是已经实现的java类,直接使用即可

          2、url网址信息

                    确定你要连接当前种类的哪一个数据库

                    URL----->jdbc:oracle:thin:@localhost:1521:XE

                    localhost:可以换成其他的主机地址

                    1521:代表端口号

                    XE:数据库的名字

                    thin:数据库的连接方式

                    for thin client的意思

                    这种驱动一般用在运行在WEB浏览器中的JAVA程序。

                    它不是通过OCI 而是通过Java sockets进行通信,

                    是纯java实现的驱动,因此不需要在

                    使用JDBC Thin的客户端机器上安装orcale客户端软件,

                    所以有很好的移植性,通常用在web开发中          

          3、user  用户名

          4、password  密码

(2)连接数据库的6大步骤:

1. Registering a driver注册驱动(有三种常用方式)

第一种:反射找到驱动类

Class.forName(driver);

第二种:DriverManager的注册方法

Driver driver=new OracleDriver();

DriverManager.registerDriver(driver);

第三种:添加运行时参数

-Djdbc.drivers=oracle.jdbc.driver.OracleDriver

2. Establishing a connection to thedatabase 获取一个数据库连接

3. Creating a statement创建Statement对象

4. Executing a SQL执行Sql语句

5. Processing the results处理结果集

如果有的话对结果集的处理方式以及返回值的处理

execute,excuteQuery,excuteUpdate的区别

 

6. Closing down JDBC objects关闭数据库连接

重点:

Statement与PreparedStatement区别

            1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程

            2.使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。PreparedStatement 对象的开销比Statement大,对于一次性操作并不会带来额外的好处。          
            3.statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得,   preparedstatement支持批处理。

 二、代码

public class PreparedStatementTest {
   private static String driver="oracle.jdbc.driver.OracleDriver";
   private static String url="jdbc:oracle:thin:@localhost:1521:XE";
   private static String user="briup";
   private static String password="briup";
	
	public static void insertTest(){
		Connection conn=null;
		PreparedStatement pst=null;
		try {
			Class.forName(driver);
			conn=
			DriverManager.getConnection(url, user, password);
		    String sql="insert into t_user values(?,?,?)";
			pst = conn.prepareStatement(sql);
			pst.setInt(1,28);
			pst.setString(2, "tom");
			pst.setString(3, "1340");
			//pst.execute()
			int num = pst.executeUpdate();//
			System.out.println(num);
			//pst.executeQuery()
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			try {
				if(pst!=null)pst.close();
				if(conn!=null)conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}		
	}

	public static void selectTest(){
		Connection conn=null;
		PreparedStatement pst=null;
		ResultSet rs=null;	//返回集
		try {
			Class.forName(driver);
			conn=
			DriverManager.getConnection(url, user, password);
		    String sql="select id,name,salary from t_user where id=?";
		    pst=conn.prepareStatement(sql);
		    pst.setInt(1, 1); 
		    //boolean execute = pst.execute();
		    //System.out.println(execute);
		    rs = pst.executeQuery();//
		    while (rs.next()) {
				System.out.println(rs.getInt("id"));
				System.out.println(rs.getString("name"));
				System.out.println(rs.getInt("salary"));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			try {
				if(pst!=null)pst.close();
				if(conn!=null)conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} 
	}
	public static void main(String[] args) {
		//insertTest();
		selectTest();
	}
}
这是我根据上课的内容总结。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值