jdbc
来源:互联网 发布:网络安全员考试2017 编辑:程序博客网 时间:2024/06/05 15:28
*jdbc
先创建5包,分别为:
com.bdqn.dao(BaseDao.java DeptDao.java);
com.bdqn.dao.impl(DeptImp.java);
com.bdqn.entity(Dept.java);
com.bdqn.text(Text.java);测试包
com.bdqn.untils(Contants.java)
package com.bdqn.dao;import java.io.IOException;import java.io.InputStream;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;import com.bdqn.utils.Contants;public class BaseDao { private static Connection conn = null; /*private static String driver; // 数据库驱动字符串 private static String url; // 连接URL字符串 private static String user; // 数据库用户名 private static String password; // 用户密码 */ static{ //在项目启动加载 System.out.println("哈哈哈"); init(); } //初始化配置文件 public static void init(){ try { Properties properties = new Properties(); //得到文件的路径 String fileName = "database.properties"; //文件加载到流里面 InputStream is = BaseDao.class.getClassLoader().getResourceAsStream(fileName); //读取配置信息 properties.load(is); Contants.driver= properties.getProperty("driver"); Contants.url= properties.getProperty("url"); Contants.user= properties.getProperty("user"); Contants.pwd= properties.getProperty("password"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //获取连接 public static Connection getConnection(){ //加载驱动 try { Class.forName(Contants.driver); conn = DriverManager.getConnection(Contants.url, Contants.user, Contants.pwd); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return conn; } //关闭资源 public static void close(Connection conn ,Statement st, ResultSet rs){ try { if(rs !=null){ rs.close(); } if(st !=null){ st.close(); } if(conn !=null){ conn.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //增删改的方法 public static int update(String sql,Object[] objects){ int num=0; PreparedStatement ps = null; try { conn = getConnection(); ps =conn.prepareStatement(sql); if(objects !=null && objects.length>0){ for (int i = 0; i < objects.length; i++) { ps.setObject((i+1),objects[i]); } } num= ps.executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ close(conn, ps, null); } return num; } //查询 public static ResultSet getResultSet(String sql,Object[] objects){ PreparedStatement ps = null; ResultSet rs = null; try { conn = getConnection(); ps = conn.prepareStatement(sql); if(objects !=null && objects.length>0){ for (int i = 0; i < objects.length; i++) { ps.setObject((i+1), objects[i]); } } rs= ps.executeQuery(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return rs; }}
接口为以下:
package com.bdqn.dao;import java.util.List;import com.bdqn.entity.Dept;public interface DeptDao { //增加 int insertDept(Dept dept); //修改 int updateDept(Dept dept); //删除 int deleteDept(int did); //全查 List<Dept> selectAllDept(); //根据id查询 List<Dept> selectDept(int did);}
实现方法:
package com.bdqn.dao.impl;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import com.bdqn.dao.BaseDao;import com.bdqn.dao.DeptDao;import com.bdqn.entity.Dept;public class DeptImpl extends BaseDao implements DeptDao { @Override public int insertDept(Dept dept) { String sql = "insert into dept values(?,?,?,?)"; /*Dept dept2 = new Dept();*/ Object [] objects = {dept.getDid(),dept.getDname(),dept.getDage(),dept.getDmesc()}; int num = this.update(sql, objects); return num; } @Override public int updateDept(Dept dept) { String sql = "update dept set dname=? where did=?"; /*Dept dept2 = new Dept();*/ Object [] objects = {dept.getDname(),dept.getDid()}; int num = this.update(sql, objects); return num; } @Override public int deleteDept(int did) { String sql = "delete from dept where did=?"; /*Dept dept2 = new Dept();*/ Object [] objects = {did}; int num = this.update(sql, objects); return num; } @Override public List<Dept> selectAllDept() { String sql = "select * from dept"; List<Dept> list =null; try { ResultSet rs = this.getResultSet(sql, null); list = new ArrayList<Dept>(); while (rs.next()) { Dept dept = new Dept(); int did = rs.getInt("did"); String dname = rs.getString("dname"); int dage = rs.getInt("dage"); String dmesc = rs.getString("dmesc"); dept.setDid(did); dept.setDname(dname); dept.setDage(dage); dept.setDmesc(dmesc); list.add(dept); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } @Override public List<Dept> selectDept(int did) { String sql = "select * from dept where did=?"; List<Dept> list =null; Object[] objects={did}; try { ResultSet rs = this.getResultSet(sql, objects); list = new ArrayList<Dept>(); while (rs.next()) { Dept dept = new Dept(); int did1 = rs.getInt("did"); String dname = rs.getString("dname"); int dage = rs.getInt("dage"); String dmesc = rs.getString("dmesc"); dept.setDid(did1); dept.setDname(dname); dept.setDage(dage); dept.setDmesc(dmesc); list.add(dept); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; }}
在实体类进行封装
package com.bdqn.entity;import java.io.Serializable;public class Dept implements Serializable{ private int did; private String dname; private int dage; private String dmesc; public int getDid() { return did; } public void setDid(int did) { this.did = did; } public String getDname() { return dname; } public void setDname(String dname) { this.dname = dname; } public int getDage() { return dage; } public void setDage(int dage) { this.dage = dage; } public String getDmesc() { return dmesc; } public void setDmesc(String dmesc) { this.dmesc = dmesc; } public Dept(int did, String dname, int dage, String dmesc) { this.did = did; this.dname = dname; this.dage = dage; this.dmesc = dmesc; } public Dept() { } @Override public String toString() { return "Dept [did=" + did + ", dname=" + dname + ", dage=" + dage + ", dmesc=" + dmesc + "]"; }}
服务类中存储配置信息
package com.bdqn.utils;public class Contants { public static String driver; public static String url; public static String user; public static String pwd;}
最后在测试类中测试
package com.bdqn.text;import java.util.List;import com.bdqn.dao.DeptDao;import com.bdqn.dao.impl.DeptImpl;import com.bdqn.entity.Dept;public class Text { public static void main(String[] args) { DeptDao dao = new DeptImpl(); /* Dept dept = new Dept(); dept.setDname("aaa"); dept.setDid(10);*/ List<Dept> list = dao.selectDept(2); for(Dept dept : list){ System.out.println(dept.toString()); } }}
总结:对于jdbc链接数据库,思路大致明白,可是操作不一定能不看打出来,必须要多练,对于增删改查还有不熟悉的地方。
阅读全文
0 0
- jdbc
- JDBC
- jdbc
- JDBC
- jdbc
- JDBC
- JDBC
- JDBC
- JDBC
- JDBC
- JDBC
- JDBC
- JDBC
- JDBC
- jdbc
- JDBC
- JDBC
- jdbc
- VS2013配置OpenCV2.4.13
- java线程安全总结
- mysql ERROR 1045 (28000): (using password: YES)问题解决
- navigator对象
- 导入项目出现
- jdbc
- 121. Best Time to Buy and Sell Stock
- JDBC
- 手把手教你用Hexo+(Coding/GitHub)搭建个人博客及绑定私有域名
- java IO流学习总结
- Javascript中事件对象event和e
- android 6.0版本适配的几个重要方面
- java实现SP00LING假脱机输入输出技术模拟
- 数据透视表 笔记