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()); } } }
?配置文件代码就没粘贴上了!!!