jdbc原理
jdbc即java数据库连接,是java提供的访问关系型数据库的API,它由两部组成:java API和数据库厂商提供的SPI。sun提供一系列的接口让数据库厂商去实现,而java负责调用接口。只要有数据库的驱动程序,java就可以访问这些数据库。
2. 相关的类:
java.sql.Connection,
java.sql.DriverManager,
java.sql.Statement,
java.sql.PrepareStatement,
java.sql.ResultSet
3. 使用
1) 首先加载驱动,Class.forName(数据库驱动),其中数据库驱动要在buildpath中添加进项目中。
2) 在创建于数据库的连接,Connectionconn=DriverManager.getConnection(url,user, pass);//获取与数据库的连接.数据库url包括主机名,端口号,数据库名。如:"jdbc:mysql://localhost:3306/test".主机名为localhost,端口号:3306,test是数据库名。user是用户名,pass是密码。
3) 使用Statement.Statementst=conn. createStatement();ResultSet rs=st. executeQuery(sql)执行查询sql语句。
4) 关闭数据库,数据库是非常紧缺的资源,使用完要及时关闭,coon.close()关闭数据库.
5) 使用PrepareStatement类可以提高程序的可读性和可维护性。
插入:pstmt=con.prepareStatement("insert into userinfo values(?,?)");
pstmt.setString(1, user);
pstmt.setDate(2, dt);
pstmt.executeUpdate();
System.out.println("insert succeed");
con.close();
PrepareStatement使用问号作为待定变量,不用像使用Statement类时那样,多个单引号连接时那么费劲。
ps:在受用setDate方法时,方法第二个参数是java.sql.Date类型的,不是java,util.Date类型的,所以在插入日期时可用如下方法插入。
java.util.Date utilDate=newjava.util.Date();
java.sql.DatesqlDate=new java.sql.Date(utilDate.getTime());
setDate(sqlDate);
java.sql.Date是继承自java.util.Date类的。
6)删除和更新也使类似的写法,不过在在关联具体变量时是
setObject(index,var);这样的写法。
4.jdbc编程步骤
l 加载数据库的驱动
l 创建数据库连接
l 创建会话
l 执行SQL语句,增删改查
l 对查询的结果进行处理
l 关闭连接