JDBC入门
2016-08-07 17:22
375 查看
JDBC
(Java Database Connectivity) Java数据库连接,用java操作数据库的一门技术,一组规范,接口。
五个步骤
1.加载驱动
2.创建连接
3.建立通道
4.执行并返回结果集
5.关闭
一.数据库层
1.创建表
2.创建序列
二.VO(Value Object)实体层
创建category类,实现getter/setter方法
三.连接数据库的工具类 ConnOracle
四.DAO(Data Access Object) 数据访问层
对表的最基本的CRUD
接口:
接口的实现类
(Java Database Connectivity) Java数据库连接,用java操作数据库的一门技术,一组规范,接口。
五个步骤
1.加载驱动
2.创建连接
3.建立通道
4.执行并返回结果集
5.关闭
一.数据库层
1.创建表
create table category( cid number(10) primary key, cname varchar2(100), cdesc varchar2(200) )
2.创建序列
create sequence seq_category minvalue 0 start with 0 increment by 1
二.VO(Value Object)实体层
创建category类,实现getter/setter方法
public class Category { private Integer cid; private String name; private String cdesc; }
三.连接数据库的工具类 ConnOracle
public class ConnOracle2 { private static Connection conn; private static final String className="oracle.jdbc.OracleDriver"; private static final String url="jdbc:oracle:thin:@localhost:1521:ORCL11"; private static final String user="scott"; private static final String password="tiger"; //1,加载驱动(可以静态加载) static{ //oracle.jdbc.OracleDriver.class try { Class.forName(className); } catch (ClassNotFoundException e) { e.printStackTrace(); System.out.println("类没找到"); } } public static Connection getConnection() { //2,创建连接 try { conn = DriverManager.getConnection(url, user, password); } catch (SQLException e) { e.printStackTrace(); System.out.println("数据库连接失败!"); } return conn; } public static void free(Connection conn,Statement statement,ResultSet executeQuery){ try { if (executeQuery != null) { executeQuery.close(); } } catch (SQLException e) { e.printStackTrace(); } finally { try { if (statement!= null) { statement.close(); } } catch (SQLException e) { e.printStackTrace(); } finally { try { if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } } }
四.DAO(Data Access Object) 数据访问层
对表的最基本的CRUD
接口:
public interface CategoryDaoImpl { /** * 添加一条 * @param category */ public void addCategory(Category category); /** * 更新一条 * @param category */ public void updateCategory(Category category); /** * 删除一条 * @param category */ public void deleteCategoryById(int id); /** * 查一条 * @param id * @return */ public Category selecCategoryById(int id); /** * 查所有 * @return */ public List<Category> selecCategory(); }
接口的实现类
public class CategoryDao implements CategoryDaoImpl { Connection conn = null; public CategoryDao() { // 3,建立通道 conn = ConnOracle2.getConnection(); } @Override public void addCategory(Category category) { String sql = "INSERT INTO CATEGORY VALUES(seq_category.nextval,?,?)"; PreparedStatement prepareStatement = null; try { prepareStatement = conn.prepareStatement(sql); prepareStatement.setString(1, category.getName()); prepareStatement.setString(2, category.getCdesc()); // 4,执行sql int count = prepareStatement.executeUpdate(); if (count >= 1) { System.out.println("插入成功!"); } else { System.out.println("插入失败!"); } } catch (SQLException e) { e.printStackTrace(); } finally { // 5.关闭 ConnOracle2.free(conn, prepareStatement, null); } } @Override public void updateCategory(Category category) { // 3,建立通道 String sql = "UPDATE CATEGORY SET cname=?,cdesc=? WHERE cid=?"; PreparedStatement prepareStatement = null; try { prepareStatement = conn.prepareStatement(sql); prepareStatement.setString(1, category.getName()); prepareStatement.setString(2, category.getCdesc()); prepareStatement.setInt(3, category.getCid()); // 4,执行sql int count = prepareStatement.executeUpdate(); if (count >= 1) { System.out.println("更新成功!"); } else { System.out.println("更新失败!"); } } catch (SQLException e) { e.printStackTrace(); } finally { // 5.关闭 ConnOracle2.free(conn, prepareStatement, null); } } @Override public void deleteCategoryById(int id) { String sql = "DELETE FROM CATEGORY WHERE cid=?"; PreparedStatement prepareStatement = null; try { prepareStatement = conn.prepareStatement(sql); prepareStatement.setInt(1, id); // 4,执行sql int count = prepareStatement.executeUpdate(); if (count >= 1) { System.out.println("删除成功!"); } else { System.out.println("删除失败!"); } } catch (SQLException e) { e.printStackTrace(); } finally { // 5.关闭 ConnOracle2.free(conn, prepareStatement, null); } } @Override public Category selecCategoryById(int id) { String sql = "SELECT * FROM CATEGORY WHERE cid=?"; PreparedStatement prepareStatement = null; Category category = null; ResultSet executeQuery = null; try { prepareStatement = conn.prepareStatement(sql); prepareStatement.setInt(1, id); // 4,执行sql executeQuery = prepareStatement.executeQuery(); if (executeQuery.next()) { category = new Category(); category.setCid(executeQuery.getInt("cid")); category.setName(executeQuery.getString("cname")); category.setCdesc(executeQuery.getString("cdesc")); } } catch (SQLException e) { e.printStackTrace(); } finally { // 5.关闭 ConnOracle2.free(conn, prepareStatement, executeQuery); } return category; } @Override public List<Category> selecCategory() { // 3,建立通道 String sql = "SELECT * FROM CATEGORY"; PreparedStatement prepareStatement = null; List<Category> list = new ArrayList<>(); ResultSet executeQuery = null; try { prepareStatement = conn.prepareStatement(sql); // 4,执行sql executeQuery = prepareStatement.executeQuery(); while (executeQuery.next()) { Category category = new Category(); category.setCid(executeQuery.getInt("cid")); category.setName(executeQuery.getString("cname")); category.setCdesc(executeQuery.getString("cdesc")); list.add(category); } } catch (SQLException e) { e.printStackTrace(); } finally { // 5.关闭 ConnOracle2.free(conn, prepareStatement, executeQuery); } return list; } }
相关文章推荐
- Java 包(package)
- Linux服务-SSHD
- 字符串:字符串排序
- sys.stdout.flush()在Linux和Windows系统下的作用
- 数据结构学习笔记8——简单二叉树的实现与遍历
- Linux新手要了解的十个知识点
- 设计模式之抽象工厂模式
- 【回溯法】马拦过河卒_动态规划
- JS 数字转换为大写金额
- jqueryui 拖拽
- HDU 2571 命运
- vim 设置
- c语言运算符的优先级及其结合性
- Licode Install CentOS 7.0
- JSP表单提交中文乱码解决方案
- Mac开机自动启动Interllij注册服
- C++ 类中不同类型成员函数的定义
- 163.You want to access employee details contained in flat files as part of the EMPLOYEE table. You p
- 顺序表基本操作
- 状态压缩小结 + 一周感想