zoukankan      html  css  js  c++  java
  • Hibernate ORM框架——续第一章:Java增删改查与Hibernate的增删改查的对比

    一、

    1)项目结构

    2)SQL server 2008数据库的编写

    create database Emp
    use Emp
    
    create table emp
    (
        eno varchar(10),
        ename varchar(50),
        salary float
    )
    
    insert into emp values('1','zss1',2000);
    insert into emp values('2','zss2',2000);
    
    update emp set ename='sss',salary=2200 where eno='1';
    
    
    delete emp where eno='1'
    
    
    select * from emp;

    二、代码

    1)DBUtil

    package com.emp.util;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    /**
     * 1)获取连接对象 2)关闭对象,释放资源
     * 
     * @author Administrator
     * 
     */
    public class DBUtil {
    
        private static final String url = "jdbc:sqlserver://localhost:1433;databaseName=emp";
        private static final String user = "sa";
        private static final String pass = "";
        private static Connection conn;
    
        // 1)获取连接对象
        public static Connection getConnection() {
            // 第一:加载驱动程序
            try {
                Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    
                // 第二:通过驱动程序获取连接对象
                conn = DriverManager.getConnection(url, user, pass);
    
            } catch (ClassNotFoundException e) {
                System.out.println("加载驱动程序失败!");
                e.printStackTrace();
            } catch (SQLException e) {
                System.out.println("获取连接对象失败!");
                e.printStackTrace();
            }
    
            // 第三:返回
            return conn;
        }
    
        // 2)关闭对象,释放资源
        public static void close(Connection conn, Statement stmt,ResultSet rst) {
            if(rst!=null) {
                try {
                    rst.close() ;
                } catch (SQLException e) {
                    System.out.println("关闭结果集对象失败!");
                    e.printStackTrace();
                }
            }
            
            
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    System.out.println("关闭语句对象失败!");
                    e.printStackTrace();
                }
            }
    
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    System.out.println("关闭连接对象失败");
                    e.printStackTrace();
                }
            }
    
        }
    
    }

    2)实体对象

    package com.emp.entity;
    
    public class Emp {
        private String eno;
        private String ename;
        private Double salary;
        
        public String getEno() {
            return eno;
        }
        public void setEno(String eno) {
            this.eno = eno;
        }
        public String getEname() {
            return ename;
        }
        public void setEname(String ename) {
            this.ename = ename;
        }
        public Double getSalary() {
            return salary;
        }
        public void setSalary(Double salary) {
            this.salary = salary;
        }
    }

    3)dao接口

    package com.emp.dao;
    
    import java.util.List;
    
    import com.emp.entity.Emp;
    
    public interface EmpDao {
        
        /*添加*/
        public abstract int add(Emp emp);
        
        /*修改*/
        public abstract int udate(Emp emp);
        
        /*查询*/
        public abstract List<Emp> queryAll();
        
        /*删除*/
        public abstract int delete(String eno);
    }

    4)dao接口实现

    package com.emp.dao.impl;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
    
    import com.emp.dao.EmpDao;
    import com.emp.entity.Emp;
    import com.emp.util.DBUtil;
    
    public class EmpDaoImpl implements EmpDao{
    
        /*添加*/
        @Override
        public int add(Emp emp) {
            int r = 0;
    
            Connection conn = DBUtil.getConnection();
    
            String sql = "insert into emp values(?,?,?);";
    
            PreparedStatement psmts = null;
    
            try {
                psmts = conn.prepareStatement(sql);
    
                psmts.setString(1, emp.getEno());
                psmts.setString(2, emp.getEname());
                psmts.setDouble(3, emp.getSalary());
    
                r = psmts.executeUpdate();
    
            } catch (SQLException e) {
                System.out.println("预编译出错!");
                e.printStackTrace();
            } finally {
                DBUtil.close(conn, psmts, null);
            }
            return r;
        }
    
        /*修改*/
        @Override
        public int udate(Emp emp) {
            int r = 0;
            // 第一:获取连接对象
            Connection conn = DBUtil.getConnection();
    
            // 第二:定义操作数据库的SQL语句
            String sql = "update emp set ename=?,salary=? where eno=?;";
    
            // 第三:获取语句对象
            PreparedStatement pstmt = null;
    
            try {
                pstmt = conn.prepareStatement(sql);
    
                // 第四:设置数据
                pstmt.setString(1, emp.getEname());
                pstmt.setDouble(2, emp.getSalary());
                pstmt.setString(3, emp.getEno());
    
                // 第五:执行SQL语句
                r = pstmt.executeUpdate();
    
            } catch (SQLException e) {
                System.out.println("预编译失败!");
                e.printStackTrace();
            } finally {
                // 第六:关闭对象
                DBUtil.close(conn, pstmt, null);
            }
    
            return r;
        }
    
        /*查询全部*/
        @Override
        public List<Emp> queryAll() {
            List<Emp> list = new ArrayList<Emp>();
            String sql="select * from emp;";
            
            Connection conn = DBUtil.getConnection();
            
            PreparedStatement psmts = null;
            ResultSet rst = null;
            try {
                psmts = conn.prepareStatement(sql);
                rst = psmts.executeQuery();
                
                while(rst.next()){
                    Emp emp = new Emp();
                    emp.setEno(rst.getString(1));
                    emp.setEname(rst.getString(2));
                    emp.setSalary(rst.getDouble(3));
                    
                    list.add(emp);
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } finally {
                DBUtil.close(conn, psmts, rst);
                
            }
            
            return list;
        }
    
        /*删除*/
        @Override
        public int delete(String eno) {
            int r = 0;
            // 第一:获取连接对象
            Connection conn = DBUtil.getConnection();
    
            // 第二:定义操作数据库的SQL语句
            String sql = "delete from emp where eno=?";
    
            // 第三:获取语句对象
            PreparedStatement pstmt = null;
    
            try {
                pstmt = conn.prepareStatement(sql);
    
                // 第四:设置数据
                pstmt.setString(1, eno);
    
                // 第五:执行SQL语句
                r = pstmt.executeUpdate();
    
            } catch (SQLException e) {
                System.out.println("预编译失败!");
                e.printStackTrace();
            } finally {
                // 第六:关闭对象
                DBUtil.close(conn, pstmt, null);
            }
    
            return r;
        }
    
        
    }

     5)test测试

    package com.emp.test;
    
    import java.util.List;
    
    import com.emp.dao.EmpDao;
    import com.emp.dao.impl.EmpDaoImpl;
    import com.emp.entity.Emp;
    
    public class Main {
    
        public static void main(String[] args) {
            /*查询所有*/
            query();
            
            /*添加*/
            //add();
            
            /*修改*/
            //update();
            
            /*删除*/
            /*delete();*/
            
        }
    
        /*查询所有*/
        public static void query(){
            
            System.out.println("查询所有的数据:");
            EmpDao edao = new EmpDaoImpl();
            List<Emp> list = edao.queryAll();
            for (Emp e : list) {
                System.out.println(e.getEno()+","+e.getEname()+","+e.getSalary());
            }
            System.out.println("——————————————————————————————————————————");
        
        }
        
    
        /*添加*/
        public static void add() {
            
            Emp emp = new Emp();
            emp.setEno("5");
            emp.setEname("lby");
            emp.setSalary((double) 80000);
            
            EmpDao edao = new EmpDaoImpl();
            int r = edao.add(emp);
    
            if(r==1){
                System.out.println("添加"+emp.getEno()+","+emp.getEname()+","+emp.getSalary()+"数据成功!");
                System.out.println("——————————————————————————————————————————");
                query();
            } else {
                System.out.println("对不起,添加失败!");
            }
        }
        
        
        /*修改*/
        public static void update() {
            Emp emp = new Emp();
            emp.setEno("3");
            emp.setEname("zzlalazzz");
            emp.setSalary((double) 1062);
            
            EmpDao edao = new EmpDaoImpl();
            int r = edao.udate(emp);
            
            if(r==1){
                System.out.println("数据修改成功!");
                System.out.println("编号为:"+emp.getEno()+",修改后的数据为:"+emp.getEno()+","+emp.getEname()+","+emp.getSalary());
                System.out.println("——————————————————————————————————————————");
                query();
            } else {
                System.out.println("对不起,修改失败!");
            }
        }
        
        
        /*删除*/
        public static void delete() {
            EmpDao edao = new EmpDaoImpl();
            int r = edao.delete("5");
            
            if(r>0){//原因没有给编号设置成主键:可有多个
                System.out.println("数据删除成功!");
                System.out.println("——————————————————————————————————————————");
                query();
            } else {
                System.out.println("对不起,删除失败!");
            }
        }
        
    }

    /*以上个人整理笔记,如果有误或者有不懂的地方,欢迎评论与指出*/

  • 相关阅读:
    TLB原理
    64寄存器位查看器
    araxis Merge
    start_KERNEL
    python 动态支持方案
    https://wenku.baidu.com/view/6142875b804d2b160b4ec06b.html 编译原理课件
    有无符号数的区别
    vim工具的路径
    edraw软件破解密钥已经上传,见文件目录
    https://tieba.baidu.com/p/2248070024
  • 原文地址:https://www.cnblogs.com/Sunny-lby/p/7350483.html
Copyright © 2011-2022 走看看