JDBC数据库应用开发JDBC技术原理JDBC是Sun公司提出的JavaAPI中的一部分,其含义是用Java语言来访问数据库,是java程序访问数据库的标准接口。在使用JDBC访问不同的数据库时,需要加载数据库的驱动程序,这些驱动程序由数据库厂商提供。下面给出JDBC连接各种主流数据库的连接方式:1、连接Oracle8/8i/9i/10g/11g(thin模式)[html]viewplaincopy1.Class.forName(oracle.JDBC.driver.OracleDriver).newInstance();2.Stringurl=JDBC:oracle:thin:@localhost:1521:orcl//orcl为Oracle数据库的SID3.Stringuser=test;4.Stringpassword=test;5.Connectioncon=DriverManager.getConnection(url,user,password);2、连接DB2数据库[html]viewplaincopy1.Class.forName(com.ibm.db2.jcc.DB2Driver);2.Stringurl=JDBC:db2://localhost:5000/testDb;3.Stringuser=test;Stringpassword=test;4.Connectioncon=DriverManager.getConnection(url,user,password);3、连接MySQL数据库[html]viewplaincopy1.Class.forName(com.mysql.jdbc.Driver);2.Stringurl=JDBC:mysql://localhost:8080/testDB;3.Stringuser=test;Stringpassword=test;4.Connectioncon=DriverManager.getConnection(url,user,password);4、连接SQLServer2000数据库[html]viewplaincopy1.Class.forName(com.microsoft.JDBC.sqlserver.SQLServerDriver);2.Stringurl=JDBC:microsoft:sqlserver://localhost:1433;DatabaseName=testDb;3.Stringuser=test;Stringpassword=test;4.Connectioncon=DriverManager.getConnection(url,user,password);5、连接PostgreSQL数据库[html]viewplaincopy1.Class.forName(org.postgresql.Driver);2.Stringurl=JDBC:postgresql://localhost/testDb;3.Stringuser=test;Stringpassword=test;4.Connectioncon=DriverManager.getConnection(url,user,password);6、连接Access数据库[html]viewplaincopy1.Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);2.Stringurl=JDBC:odbc:Driver={MicrosoftAccessDriver(*.mdb)};DBQ=+application.getRealPath(/Data/testDb/mdb);3.Connectionconn=DriverManager.getConnection(url,,);7、连接Sybase数据库[html]viewplaincopy1.Class.forName(com.sybase.JDBC.SybDriver);2.Stringurl=JDBC:sybase:Tds:localhost:5007/testDb;3.Propertiespro=System.getProperties();4.pro.put(user,userId);5.pro.put(password,user_password);6.Connectioncon=DriverManager.getConnection(url,pro);8、连接informix数据库[html]viewplaincopy1.Class.forName(com.informix.JDBC.ifxDriver);2.Stringurl=JDBC:informix-sqli:localhost:1533/testDb:INFORMIXSERVER=myserveruser=testUser;password=testpassword;Connectioncon=DriverManager.getConnection(url);JDBC连接数据库的过程很简单,以连接MySQL数据库为例,具体步骤如下:(1)加载MySQL数据库连接的驱动程序。可以到MySQL的官网上下载该驱动程序jar包,然后把jar包放到工程项目的WEB-INF/lib目录下。加载数据库驱动程序使用的是Class.forName()方法,调用此方法会将制定的类加载到JVM中,其关键代码如下:[html]viewplaincopy1.Class.forName(com.mysql.jdbc.Driver)(2)设置访问数据库的用户名、密码及连接URL。不同的数据库其连接URL有所不同,但基本格式都是“JDBC协议+数据库的IP地址+数据库端口号+数据库名”。关键代码如下:[html]viewplaincopy1.Stringuser=root;2.Stringpassword=root;3.Stringurl=jdbc:mysql://localhost:3306/database;(3)通过JDBCAPI的DriverManager类的getConnection()方法来创建与数据库之间的连接,getConnection()方法需要接受的参数有URL、用户名和密码,关键代码如下:[html]viewplaincopy1.Connectionconn=DriverManager.getConnction(url,user,password);(4)建立连接之后,使用该连接对象创建用户操作SQL语句的PreparedStatement对象,使用的是prepareStatement()方法,关键代码如下:[html]viewplaincopy1.PreparedStatementps=conn.prepareStatement(sql);(5)关闭数据库连接,释放系统资源,代码如下:[html]viewplaincopy1.conn.close();下面给出一个JDBC连接MySQL数据库的完整代码示例,这个示例采用了MVC设计模式,单例模式。JSP作为表现层,Servlet是业务控制层,Dao是操作实体类的持久层,详细代码如下:User.java----用户实体类[html]viewplaincopy1.packagecom.kj.test;2.3.publicclassUser{4.5.privateLongid;6./**姓名*/7.privateStringname;8./**性别*/9.privateStringsex;10./**年龄*/11.privateStringage;12.13.14.publicLonggetId(){15.returnid;16.}17.18.publicvoidsetId(Longid){19.this.id=id;20.}21.22.publicStringgetName(){23.returnname;24.}25.26.publicvoidsetName(Stringname){27.this.name=name;28.}29.30.publicStringgetSex(){31.returnsex;32.}33.34.publicvoidsetSex(Stringsex){35.this.sex=sex;36.}37.38.publicStringgetAge(){39.returnage;40.}41.42.publicvoidsetAge(Stringage){43.this.age=age;44.}45.46.}DBConn.java----MySQL数据库连接类[html]viewplaincopy1.packagecom.kj.test;2.3.importjava.sql.Connection;4.importjava.sql.DriverManager;5.6.publicclassDBConn{7.8./**加载连接*/9.privatestaticConnectionconn=null;10./**MySQL数据库驱动名*/11.privatestaticfinalStringDRIVERNAME=com.mysql.jdbc.Driver;12./**用户*/13.privatestaticfinalStringUSERNAME=root;14./**密码*/15.privatestaticfinalStringPASSWORD=root;16./**连接URL*/17.privatestaticfinalStringURL=jdbc:mysql://localhost:3306/test;18.19.publicstaticConnectiongetConn(){20.try{21.Class.forName(DRIVERNAME);22.conn=DriverManager.getConnection(URL,USERNAME,PASSWORD);23.}catch(Exceptione){24.e.printStackTrace();25.}26.returnconn;27.}28.29.publicstaticvoidmain(String[]args){30.31.//测试是否已经连接成功32.Connectionconn=DBConn.getConn();33.System.out.println(conn:+conn);34.35.}36.37.}UserDao.java----持久化User模型到数据库[html]viewplaincopy1.packagecom.kj.test;2.3.importjava.sql.Connection;4.importjava.sql.PreparedStatement;5.importjava.sql.ResultSet;6.importjava.util.ArrayList;7.importjava.util.List;8.9.publicclassUserDao{10.11.privatestaticUserDaouserDao=null;12.13./***14.*单例模式获取userDao15.*@return16.*/17.publicstaticUserDaogetInstance(){18.if(userDao==null){19.userDao=newUserDao();20.}21.returnuserDao;22.}23.24./**25.*保存一个user对象到数据库26.*@paramuser27.*@return28.*/29.publicbooleansaveUser(Useruser){30.booleanresult=false;31.Connectionconn=null;32.PreparedStatementps=null;33.try{34.con