`
Java_tj
  • 浏览: 5908 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

JDBC与数据库连接代码详解

    博客分类:
  • java
阅读更多

JDBC与数据库连接代码详解

Java实现与数据库的交互:

 

package com.tangjiang.crm;

import java.io.Serializable;

/**
 * @author TangJiang 2017年10月30日 下午8:12:49
 * 
 */
public class Customer implements Serializable {

	/** 客户编号 */
	private long cId;
	/** 客户姓名 */
	private String cName;
	/** 客户电话 */
	private String cPhone;
	/** 客户地址 */
	private String cAddress;

	public Customer() {
		super();
	}

	public Customer(long cId, String cName, String cPhone, String cAddress) {
		super();
		this.cId = cId;
		this.cName = cName;
		this.cPhone = cPhone;
		this.cAddress = cAddress;
	}

	public long getcId() {
		return cId;
	}

	public void setcId(long cId) {
		this.cId = cId;
	}

	public String getcName() {
		return cName;
	}

	public void setcName(String cName) {
		this.cName = cName;
	}

	public String getcPhone() {
		return cPhone;
	}

	public void setcPhone(String cPhone) {
		this.cPhone = cPhone;
	}

	public String getcAddress() {
		return cAddress;
	}

	public void setcAddress(String cAddress) {
		this.cAddress = cAddress;
	}

}

 

package com.tangjiang.crm;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;

/**
 * 数据库操作类
 * @author TangJiang 2017年10月30日 下午8:35:51
 *
 */
public class CustomerDao {

	/**
	 * 将对象保存到数据库中
	 * 
	 * @param 要保存到数据库的对象
	 * @return
	 */
	public void save(Customer c) {
		String sql = "insert into customers values(customer_sq.nextval,?,?,?)";
		// 获得数据库连接
		Connection conn = DbUtil.getCon();
		// 预编译sql语句
		try {
			PreparedStatement ps = conn.prepareStatement(sql);
			// 设置参数的值
			ps.setString(1, c.getcName());
			ps.setString(2, c.getcPhone());
			ps.setString(3, c.getcAddress());
			// 执行sql
			ps.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**
	 * 根据id删除客户信息
	 * 
	 * @param
	 * @return
	 */
	public void remove(long id) {
		String sql = "delete from customers where id=?";
		// 获得数据库连接
		Connection conn = DbUtil.getCon();
		// 获得预编译sql语句
		try {
			PreparedStatement ps = conn.prepareStatement(sql);
			// 设置参数值
			ps.setLong(1, id);
			// 执行sql语句
			ps.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	/**
	 * 根据对象更新数据库
	 * 
	 * @param 对象
	 * @return
	 */
	public void update(Customer c) {
		String sql = "update customers set name=?,phone=?,address=? where id=?";
		// 获得数据库连接
		Connection conn = DbUtil.getCon();
		// 预编译sql语句
		try {
			PreparedStatement ps = conn.prepareStatement(sql);
			// 设置参数值
			ps.setString(1, c.getcName());
			ps.setString(2, c.getcPhone());
			ps.setString(3, c.getcAddress());
			ps.setLong(4, c.getcId());
			// 执行sql
			ps.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**
	 * 查询所有的数据
	 * 
	 * @param
	 * @return 返回数据列表
	 */
	public List<Customer> list() {
		// 设置集合存储结果集数据
		LinkedList<Customer> list = new LinkedList<Customer>();
		String sql = "select *from customers";
		Connection conn = DbUtil.getCon();

		try {
			// 预编译sql语句
			PreparedStatement ps = conn.prepareStatement(sql);
			// 执行获得结果集
			ResultSet rs = ps.executeQuery();
			// 将结果集转换成LinkedList
			while (rs.next()) {
				Customer c = new Customer();
				c.setcId(rs.getInt("id"));
				c.setcName(rs.getString("name"));
				c.setcPhone(rs.getString("phone"));
				c.setcAddress(rs.getString("address"));
				list.add(c);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;
	}

}

 

package com.tangjiang.crm;

import java.io.IOException;
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.util.Properties;

/**
 * 数据库工具类,使用懒汉单例模式,
 * @author TangJiang
 * 2017年10月30日 下午8:18:54
 *
 */
public class DbUtil {
	
    //定义一个Properties对象
	static Properties p=new Properties();
	
	//定义存放获取到的数据属性
	private static String driver;
	private static String url;
	private static String user;
	private static String pwd;
	
	//定义static块实现配置文件加载
	static{
		try {
			p.load(DbUtil.class.getClassLoader()
					.getResourceAsStream("com/tangjiang/crm/jdbc.properties"));
			
			//通过配置文件对象来获得每个key对应的value
			driver=p.getProperty("driver");
			url=p.getProperty("url");
			user=p.getProperty("user");
			pwd=p.getProperty("pwd");
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	
	/**
	 *  数据库连接建立方法(只能有一个地址)
	 * @return
	 */
	public static Connection getCon(){
		/**数据库连接对象,默认为null*/
		Connection con=null;
		
		try {
			// 加载数据库驱动包
			Class.forName(driver);
			//获得数据库连接对象
			con=DriverManager.getConnection(
					url,
					user,
					pwd);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace(); 
		}
		System.out.println("数据库连接成功");
		return con;
	}
	
	
	/**
	 * 定义一个关闭数据库链接对象,释放资源
	 */
	public static void closeCon(Connection con,ResultSet rs,Statement stm,PreparedStatement ps){
		try {
		//实现对象的关闭
		if(rs!=null){
			rs.close();
		} 
		if(stm!=null){
			stm.close();
		}
		if(ps!=null){
			ps.close();
		}
		if(con!=null){
			con.close();
		}
		}catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
}

 

package com.tangjiang.crm;

import java.util.List;

public class Test {
	public static void main(String[] args) {
		CustomerDao cd = new CustomerDao();
		List<Customer>list=cd.list();
		for(Customer c:list){
			System.out.println(c.getcName());
		}
	}
}

 配置文件代码就没粘贴上了!!!

1
0
分享到:
评论

相关推荐

    JDBC连接数据库步骤及代码

    ### JDBC连接数据库步骤详解 #### 一、简介 在Java开发中,经常需要与数据库进行交互,例如查询数据、更新数据等操作。为了方便开发者进行这些操作,Sun公司推出了一套标准的Java访问数据库的API——Java Database...

    java JDBC连接数据库代码大全

    ### Java JDBC连接数据库代码大全详解 #### 一、JDBC基础概述 JDBC(Java Database Connectivity)是一种标准的Java API,允许Java程序连接并操作各种类型的数据库。它为开发人员提供了一种统一的方式,以便使用...

    jdbc-数据库连接和文件配置

    ### JDBC:数据库连接与文件配置详解 #### 一、JDBC概述 JDBC(Java Database Connectivity)是Java中用于执行SQL语句的一种标准应用程序接口,它为开发人员提供了与多种数据库(如Oracle、MySQL、SQL Server等)...

    JDBC连接数据库各种数据库参数大全

    以上介绍了如何使用Java通过JDBC连接不同类型的数据库,并详细解释了各个数据库连接的配置参数。在实际应用中,根据不同的数据库类型选择合适的驱动程序,并正确设置URL、用户名、密码以及其他连接参数是非常重要的...

    jdbc数据库连接代码

    ### JDBC数据库连接代码详解 #### 一、引言 在软件开发过程中,数据库连接是必不可少的一个环节。Java作为主流的编程语言之一,提供了强大的数据库连接工具——Java Database Connectivity(JDBC)。通过JDBC,...

    jdbc连接sqlserver数据库连接代码

    本文详细介绍了如何使用 JDBC 连接 SQL Server 数据库的方法,包括加载 JDBC 驱动、建立数据库连接、执行 SQL 语句(创建表、插入数据)以及查询数据。通过以上步骤,可以实现 Java 应用程序与 SQL Server 数据库的...

    JAVA 数据库 连接 方法详解

    这里我们将详细讲解如何使用Java进行数据库连接,包括JDBC(Java Database Connectivity)驱动的使用、连接代码的编写以及不同数据库的连接方法。 1. **Microsoft SQL Server 和 Sybase** - 对于Microsoft SQL ...

    数据库连接JDBC详解

    ### 数据库连接JDBC详解 #### 一、JDBC基本概念及重要性 JDBC (Java Database Connectivity) 是 Sun 公司(现已被 Oracle 收购)推出的一种标准技术,它属于 JavaSE 范畴,主要用于实现 Java 应用程序与各种不同...

    JDBC连接各种数据库的代码

    Java数据库连接(JDBC)是Java平台中的一个重要组件,它允许Java程序与多种关系型数据库进行交互。通过使用JDBC,开发者可以使用纯Java API来编写数据库应用程序,而无需依赖于特定数据库供应商提供的API。尽管如此...

    JDBC连接数据库详解

    `Class.forName()`用于加载JDBC驱动,然后`DriverManager.getConnection()`方法用于建立实际的数据库连接。 执行SQL查询通常分为三个步骤: 1. **获取数据库连接**:通过`getConnection()`方法。 2. **创建...

    jdbc数据库连接写法

    ### JDBC 数据库连接写法详解 #### 一、引言 在Java开发中,与数据库进行交互是一项非常常见的任务。JDBC(Java Database Connectivity)是Java中用来对关系型数据库进行统一访问的标准API,它为Java应用程序提供...

    JDBC连数据库的步骤

    **JDBC连接数据库的步骤详解** Java Database Connectivity (JDBC) 是Java编程语言中用于与各种类型数据库交互的标准API。了解并熟练掌握JDBC连接数据库的步骤是每个Java开发人员的基础技能之一。以下是一个详尽的...

    jdbc java数据库连接

    ### JDBC:Java数据库连接技术详解 #### 引言 在Java开发中,JDBC(Java Database Connectivity)是一项关键的技术,它允许Java应用程序与各种类型的数据库进行交互,包括但不限于Oracle、DB2、SQL Server、Sybase...

    JDBC数据库连接JAR包

    **JDBC数据库连接JAR包详解** Java Database Connectivity(JDBC)是Java平台中的一个标准API,它允许Java应用程序与各种类型的数据库进行交互。JDBC为开发者提供了统一的接口,使得开发者无需关心底层数据库的具体...

    jdbc+数据库连接池+dbutils

    ### JDBC与数据库交互详解 #### 一、JDBC概述 JDBC(Java Database Connectivity)是Java平台上用于连接数据库的一种标准接口。它允许开发者通过统一的API来访问多种类型的数据库,从而实现了应用程序与不同数据库...

    jdbc各种数据库连接

    ### JDBC与多种数据库连接详解 在Java开发领域中,JDBC(Java Database Connectivity)是一种用于执行SQL语句的标准Java API,它可以为多种关系数据库提供统一访问接口,这使得Java应用程序可以方便地与不同类型的...

    Jdbc连接数据库基本步骤详解

    在以上示例代码中,我们使用了Jdbc连接Oracle数据库,加载了Oracle驱动程序,创建了连接对象,创建了SQL语句的执行对象,执行了SQL语句,对执行结果进行处理,并关闭了相关连接对象。 Jdbc连接数据库的基本步骤非常...

    java_JDBC连接数据库代码大全

    **DriverManager**:是JDBC的核心服务类,用于加载JDBC驱动并获取数据库连接。其关键方法`getConnection()`用于建立数据库连接。 **Connection**:表示与数据库之间的物理连接,是所有数据库操作的基础。通过`...

Global site tag (gtag.js) - Google Analytics