首页 > 代码库 > Hibernate ORM框架——续第一章:Java增删改查与Hibernate的增删改查的对比
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("对不起,删除失败!"); } } }
/*以上个人整理笔记,如果有误或者有不懂的地方,欢迎评论与指出*/
Hibernate ORM框架——续第一章:Java增删改查与Hibernate的增删改查的对比
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。