您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

使用JDBC连接数据库

2025/12/21 23:53:39发布12次查看
jdbc是java数据库连接技术,他能实现java程序对各种数据库的访问。由一组使用java语言编写的类和接口组成,他们位于java.sql和javax.sql中。 jdbc是一种用于执行sql语句的java api,jdbc并不能直接访问数据库,需要依赖于数据库厂商提供的jdbc驱动程序。 jdb
jdbc是java数据库连接技术,他能实现java程序对各种数据库的访问。由一组使用java语言编写的类和接口组成,他们位于java.sql和javax.sql中。
jdbc是一种用于执行sql语句的java api,jdbc并不能直接访问数据库,需要依赖于数据库厂商提供的jdbc驱动程序。
jdbc的编程步骤如下:
1、通过class.forname();注册驱动。
2、通过drivermanager类的getconnection()方法获得数据库连接。需要给出连接数据库的url和数据库用户名和密码。
3、用数据库连接对象获得statement对象,他可以用来执行sql语句。
4、用statement对象执行sql语句。实质上sql语句是数据库执行的,statement只是负责发送sql和接受结果。
5、处理执行结果。查询结果为resultset。
6、释放数据库的连接。
因为在开发和部署时可能用到不同的数据库,因此我们可以讲数据库信息写在配置文件中,让程序通过读取配置文件来获得这些信息。
下面看一个示例:
首先看数据库(这里使用oracle数据库):
该数据库公有7个字段,id字段是主键,代表新闻编号;title字段表示新闻标题;summary字段代表新闻摘要,content代表新闻内容;createdate表示新闻创建时间;mindifydate代表新闻最终修改时间。
然后在看java项目中的配置文件。在此之前需要在项目中导入oracle数据库的驱动包ojdbc14.jar。
jdbc.driver_class=oracle.jdbc.driver.oracledriverjdbc.connection.url=jdbc\:oracle\:thin\:@localhost\:1521\:orcljdbc.connection.username=myhrjdbc.connection.password=myhr
然后看读取数据库配置文件的工具类。
import java.io.ioexception;import java.io.inputstream;import java.util.properties;public class configmanager { private static configmanager configmanager;//声明configmanager对象 private static properties properties;//声明properties对象 private configmanager(){ string configpath = database.properties; properties = new properties(); inputstream in = configmanager.class.getresourceasstream(configpath); try { properties.load(in); } catch (ioexception e) { e.printstacktrace(); } } private static configmanager getinstance(){ if(configmanager == null){ configmanager = new configmanager(); } return configmanager; } public string getstring(string key){ return properties.getproperty(key); }}
然后看数据库操作代码,看jdbc如何具体操作数据库
import java.sql.connection;import java.sql.drivermanager;import java.sql.preparedstatement;import java.sql.resultset;import java.sql.sqlexception;import java.sql.statement;import java.sql.timestamp;import java.util.date;public class newsdao { connection connection = null; statement statement = null; preparedstatement pstmt = null; resultset rs = null; //建立与数据库之间的连接 public void getconnection(){ //调用工具类的相应方法,得到配置文件中的信息 string driver = configmanager.getinstance().getstring(jdbc.driver_class); string url = configmanager.getinstance().getstring(jdbc.connection.url); string username = configmanager.getinstance().getstring(jdbc.connection.username); string password = configmanager.getinstance().getstring(jdbc.connection.password); try { //使用class.froname方法加载驱动类 class.forname(driver); //drivermanager类的getconnection方法建立于数据库连接 connection = drivermanager.getconnection(url, username, password); } catch (classnotfoundexception e) { e.printstacktrace(); } catch (sqlexception e) { e.printstacktrace(); } } //查询新闻 public void getnewslist(){ getconnection(); string sql = select * from news; try { //获得statement对象 statement = connection.createstatement(); //执行sql语句并得到resultset rs = statement.executequery(sql); //处理执行结果 while(rs.next()){ int id = rs.getint(id); string title = rs.getstring(title); string summary = rs.getstring(summary); string content = rs.getstring(content); string author = rs.getstring(author); timestamp time = rs.gettimestamp(createdate); timestamp last = rs.gettimestamp(midifydate); system.out.println(新闻id:+id+ 标题:+title+ 摘要:+summary + 内容:+content+ 作者:+author+ 创建时间:+time+ 修改时间:+last); } } catch (sqlexception e) { e.printstacktrace(); }finally{ try { rs.close(); statement.close(); connection.close(); } catch (sqlexception e) { e.printstacktrace(); } } } //添加新闻信息 public void add(int id,string title,string summary,string content, string author,date createdate,date last){ getconnection(); string sql = insert into news values(?,?,?,?,?,?,?); try { pstmt = connection.preparestatement(sql); pstmt.setint(1, id); pstmt.setstring(2, title); pstmt.setstring(3, summary); pstmt.setstring(4, content); pstmt.setstring(5, author); pstmt.settimestamp(6, new java.sql.timestamp(createdate.gettime())); pstmt.settimestamp(7, new java.sql.timestamp(last.gettime())); int i = pstmt.executeupdate();//i表示插入的行数 if(i>0) system.out.println(插入成功!); else system.out.println(插入失败!); } catch (sqlexception e) { e.printstacktrace(); }finally{ try { pstmt.close(); connection.close(); } catch (sqlexception e) { e.printstacktrace(); } } } }
然后看测试类
import java.util.date;public class test { public static void main(string[] args) { newsdao nd = new newsdao(); nd.getnewslist(); nd.add(2, 有蚊子, 今天竟然有蚊子, 今天竟然真的有蚊子,咬了我好几口!, admin, new date(), new date()); }}
程序正常运行。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product