JDBC与数据库连接代码详解_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > JDBC与数据库连接代码详解

JDBC与数据库连接代码详解

 2017/11/13 1:03:39  Java_tj  程序员俱乐部  我要评论(0)
  • 摘要:JDBC与数据库连接代码详解Java实现与数据库的交互:packagecom.tangjiang.crm;importjava.io.Serializable;/***@authorTangJiang2017年10月30日下午8:12:49**/publicclassCustomerimplementsSerializable{/**客户编号*/privatelongcId;/**客户姓名*/privateStringcName;/**客户电话*/privateStringcPhone
  • 标签:详解 代码 数据库 数据 连接

JDBC与数据库连接代码详解

Java实现与数据库的交互:

?

class="java" name="code">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());
		}
	}
}

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

上一篇: 转转两周年数据:年二手交易额破210亿 小程序进前10 下一篇: 没有下一篇了!
发表评论
用户名: 匿名