分别创建  dao包、servlet包、entity实体包、util包

在druid.properties文件中添加如下代码:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/empye
username=root password=root

 

 

创建一个student类 实现数据库表中的方法

package com.hph.entity; public class Student { private Integer id; private String uname; private Integer age; public Student(Integer id, String uname, Integer age) { this.id = id; this.uname = uname; this.age = age; } public Student(){ } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "Student{" +
                "id=" + id +
                ", uname='" + uname + '\'' +
                ", age=" + age +
                '}'; } }

 

在util 中创建 工具类名称叫 DButil

 

package com.hph.util; import com.alibaba.druid.pool.DruidDataSourceFactory; import javax.sql.DataSource; import java.sql.*; import java.util.*; public class DBUtil { /** * 使用druid.properties 文件把连接数据库的地址存放在文件中 * 使用数据源调用druid.properties 中的数据 * */
   private static DataSource ds; static { Properties pro=new Properties(); try { pro.load(DBUtil.class.getClassLoader().getResourceAsStream("druid.properties")); ds = DruidDataSourceFactory.createDataSource(pro); } catch (Exception e) { e.printStackTrace(); } } /**获得连接*/
    public static Connection getConnection(){ try { return ds.getConnection(); } catch (SQLException e) { e.printStackTrace(); } return null; } /** 增删改的通用方法 * @paramString sql 要执行的sql * @paramObject[] obj 对象类型的数组 里面存放着 sql执行的占位符参数 * * Object... 可变参数 * */
    public static boolean executeUpdate(String sql,Object... args){ Connection conn = null; PreparedStatement ps = null; try { /**连接数据库*/ conn =DBUtil.getConnection(); /**调用sql中的语句*/ ps = conn.prepareStatement(sql); /**遍历 sql语句中的数据*/
            for (int i=0;i<args.length;i++){ ps.setObject(i+1,args[i]); } //执行sql语句
            int i = ps.executeUpdate(); if (i>0)return true; } catch (SQLException e) { e.printStackTrace(); } finally { //关闭
            close(conn,ps,null); } return false; } /** * c查询的通用方法 * @param sql * @param args * @return
     */
    public static List<Map<String, Object>> executeQuery(String sql, Object... args){ Connection conn = null; PreparedStatement ps = null; ResultSet set = null; try { conn = DBUtil.getConnection(); ps = conn.prepareStatement(sql); /* 有可能有参数 */
            for (int i=0;i<args.length;i++){ ps.setObject(i+1,args[i]); } /*执行*/ set = ps.executeQuery(); /*需要将所有数据都存放到 List中 每一行 用一个 map存放*/ List<Map<String,Object>> list = new ArrayList<>(); /*获取本次查询结果集有多少列*/
            int count = set.getMetaData().getColumnCount(); while(set.next()){ Map<String, Object> map = new HashMap<>();//一行数据 用一个map 接收
                /**获取本次列的名字*/
                for(int i=0;i<count;i++){ String name = set.getMetaData().getColumnLabel(i+1); map.put(name,set.getObject(name)); } /*将每行的map存放到 List中*/ list.add(map); } return list; } catch (Exception e) { e.printStackTrace(); }finally { close(conn,ps,set); } return null; } /** 关闭的通用方法 * * */
    private static void close(Connection conn,PreparedStatement st,ResultSet set){ try { if(set!=null){ set.close(); } if(st!=null){ st.close(); } if(conn != null){ conn.close(); } }catch (Exception e){ e.printStackTrace(); } } }

 

创建一个学生类的接口

package com.hph.dao; import com.hph.entity.Student; import java.util.List; import java.util.Map; public interface IStudent { /*** 添加一个新的学生信息 * inset into student (name,age)value(?,?); * */
    boolean add(Student stu); /**根据id 删除信息*/
    boolean delete(int id); // C 根据id修改学生
    boolean update( Student stu); // D 根据id查询学生 // E 查询所有学生
List<Map<String,Object>> getAllStudent(); }

实现接口

package com.hph.dao.impl; import com.hph.dao.IStudent; import com.hph.entity.Student; import com.hph.util.DBUtil; import java.util.List; import java.util.Map; public class StudentImpl  implements IStudent { @Override /**添加数据*/
    public boolean add(Student stu) { String sql="insert into student (sname,age)values(?,?)"; return DBUtil.executeUpdate(sql,stu.getUname(),stu.getAge()); } /**删除数据*/ @Override public boolean delete(int id) { String sql="delete from student where id=?"; return DBUtil.executeUpdate(sql,id); } /**更新数据*/ @Override public boolean update(Student stu) { String sql="update student set sname=?,age=? where id=?"; return DBUtil.executeUpdate(sql,stu.getUname(),stu.getAge(),stu.getId()); } /**查询数据*/ @Override public List<Map<String, Object>> getAllStudent() { String sql="select * from student"; return DBUtil.executeQuery(sql); } }

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄