• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

使用JDBC连接数据库

mysql 搞代码 4年前 (2022-01-09) 22次浏览 已收录 0个评论

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 = Conf<i style="color:transparent">本文来源gaodai$ma#com搞$$代**码)网8</i>igManager.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());	}}

程序正常运行。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:使用JDBC连接数据库

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址